_SKU_TEL0079_WIFI_Shield_V3_RPSMA_WIFI扩展板_V3_PRSMA接口 - jimaobian/DFRobotWikiCn GitHub Wiki

简介

这款wifi扩展板支持AP+STA双模式,非常方便将wifi模块连接到路由器wifi网络上面。 例如你购买了一个用这个模块生产的空调,回家后只需要用手机或者平板电脑连接模块的AP网络,类似登录路由器的方式登录模块。 登录后可将模块设置连接到自家的WIFI网络里面实现控制。(不需要通过串口AT命令来进行设置,这往往是非常麻烦的)

模块利用动态电源管理达至低功耗(待机:<80.0μA;正常模式平均:8mA; 峰值:200mA)。如果用来设计产品,其功耗也相对较低,而且可以设置待机模式。

无线模块提供TTL电平串口到IEEE802.11b/g/n无线通信的桥接。IEEE802.11n是IEEE最新批准的无线传输标准协议,具备更高传输速度,更广网络覆盖,更强兼容性,更加安全的特点。目前许多无线电子设备厂商已经在大量产品中应用这一标准。如果你想兼容更多最新设备,通过模块,任何具有TTL串口的设备都可以很容易地建立起无线网络,实现远程管理和控制。

产品参数

  1. 标准Arduino叠层设计,可轻松插接到标准Arduino、MEGA、Romeo等控制器上
  2. 模块通讯距离:两个模块对传外置天线版本400米,内置天线150米。测试条件:开阔地视距,两个模块自行组网,57600波特率双向互传不丢包,轻松穿三层混泥土墙。内置PA信号强度高,亲测视距通讯距离可以到四五百米(3dbi天线,用更好的天线可以更远)。
  3. 支持IEEE 802.11 b/g/n,用来做远距离覆盖的大功率AP多使用802.11 n协议,本模块也完美支持。
  4. 支持访问接入点(AP)、客户端、网关以及串口到WLAN等模式
  5. 支持DHCP自动获取IP,支持工作在AP模式时为从设备分配IP
  6. 支持协议:支持网络协议:TCP/UDP/ARP/ICMP/HTTP/DNS/DHCP
  7. 可选TCP Server/TCP Client/UDP 工作模式,TCP Server模式时可支持多达32个Client连接
  8. 支持绝大多数WIFI加密方式和算法,WEP/WAP-PSK/WAP2-PSK/WAPI,加密类型 WEP64/WEP128/TKIP/AES
  9. 支持UART透明/协议数据传输模式,高达1M缓存空间,最高支持波特率460800bps
  10. 支持TTL串口到无线的应用
  11. 通过拉低Reload IO口一秒即可恢复出厂设置,不用担心设置错
  12. 支持无线工作在AP模式和节点(Station)模式,真正的硬件AP,安卓系统可以直接访问
  13. 可选内置板载(WIFI Shield V3 PCB Antenna)或者外置天线(WIFI Shield V3 PRSMA)
  14. 提供AT+指令集配置
  15. 提供友好的Web配置页面,通过网页配置
  16. 串口分帧延迟和数据量可以设置
  17. 支持路由/桥接模式网络构架
  18. 工作电压:5V,功耗<200Ma
  19. 频率范围: 2.4 - 2.497 GHz
  20. 输出功率:16dBm
  21. 数据速率:54Mbps-1Mbps
  22. 尺寸:长55× 宽53 × 高11mm
  23. 重量:约40g

引脚说明

Led指示灯说明:

  • Power: 亮 - 模块电源正常
  • Link : 亮 - 模块连接到WIFI AP网络
  • Ready: 亮 - 模块启动完成

板载按钮说明:

  • RST: 复位按钮,按下模块复位
  • Reload: 按下3秒以上松开,模块恢复出厂设置,如果配置错误可以通过这个按键来修复

板载切换开关说明:

  • arduino :WIFI模块和arduino通信
  • Programme:WIFI模块和arduino通信断开,arduino主板编程时拨到这个位置。(arduino Leonardo 主板串口不用于下载程序,不需要拨到这个位置在编程)
  • USB :WIFI模块和arduino的USB接口建立通信,可以直接从USB发送数据。(arduino Leonardo 主板不适用)

板载跳针说明:

  • D11 Sleep_RQ :跳接到D11引脚,WiFi模块休眠控制输入,正常工作状态下将其置为低电平,5秒后将其置为高电平,该模块进入休眠状态;反之,在休眠状态下,唤醒方式支持Sleep_RQ唤醒,将其置为低电平,2秒后将其置为高电平,该模块被唤醒,进入工作状态。不用时可以将跳针跳到D11字体的另外一边。
  • D12 Sleep_ON :跳接到D12引脚,WiFi模块休眠状态指示输出管脚,该管脚用以指示模块是处于休眠状态还是处于工作状态,低电平表示模块处于休眠模式,而高电平则表示模块处于正常工作。不用时可以将跳针跳到D12字体另外一边。

使用教程

重启TEL0078之后,对于某些版本,搜索WIFI之后,名字将会由DFROBOT_WIFI_SHIELD_V3变成其他,用户可以自己在设置中修改。

:"AP+STA"模式下作为TCP-Client

这个模块本身可以建立一个AP网络,用户可以通过电脑或手机随时访问该AP网络对模块进行设置,让模块加入到其他路由器的WIFI AP网络。相比于其他wifi模块的AT指令设置模式,本模块的设置方式是最方便快捷的。

注意:本模块建立的AP网络只能允许一个设备登录,不能多个设备登录。例如手机登录到模块的AP网络后,电脑再登录就不能访问了,切记!

1.将usb线插到可以连接无线网的电脑上,连接上Arduino。将wifi shield插到arduino板子上。

2.拨动开关拨动到PROGRAMME端,Arduino板子需要烧写一个和串口无关的程序,比如Blink。烧写完毕后,拨动到USB端。

3.在电脑上搜索无线网络,会看到有一个名字为DFROBOT_WIFI_SHIELD_V3的无线网络,然后连接上去。

AP%2BSTA1_new.png

打开网站,在地址栏里输入10.10.100.254,会出现: AP%2BSTA_1_n.png 本模块AP的出厂配置: SSID :DFROBOT_WIFI_SHIELD_V3

IP地址  :10.10.100.254 子网掩码:255.255.255.0 用户名  :admin 密码    :admin

此时你可以使用浏览器登录10.10.100.254访问TEL0078的设置界面,如下图:

frisrpage1_new.png

4.在模式设置栏选择 AT+STA

注意:每次设置都需要点击保存。如果还需要其他设置,请点击返回后再进行。最后重启模块,使设置生效。

AP%2BSTA_3_new.png

5.在STA设置栏点击搜索,即可搜索路由器的可用网络。

AP%2BSTA_5_new.png

6.选择一个可用的网络。(这里以连接DFRobot_New为例)并输入无线网络的密码。

AP%2BSTA_4_new.png

7.7.在网络设置栏设置模块端口参数及网络参数。其中"服务器地址"为主机PC的IP地址。

wifiup_new.png wifiupcomaddress_new.png

8.重启模块。

AP%2BSTA7_new.png

9.刷新网页10.10.100.254,确定是否连接到WIFI路由器。如果连接到了WIFI路由器,则可以在STA模式那一栏看到SSID、IP地址、MAC地址等信息,如下图所示

AP%2BSTA_8_new.png 这时,意味着你可以通过路由器访问它了,这将在第十步之后测试。

10.断开电脑与“DFROBOT_WIFI_SHIELD_V3”的连接,并连接到TEL0078所连接的路由器网络上(这里是“DFRobot_New”)。

AP%2BSTA_9_new.png

11.打开软件“USR-TCP232-Test”(在本页末下载),如下图配置串口收发界面网络收发界面,(wifi模块的串口也可以使用Arduino IDE的Serial Monitor打开)

注意:请关闭电脑的防火墙,否则可能会导致网络端口无法监听!

配置及其结果如下图所示:

AP%testcess_new.png

二:"AP+STA"模式下作为TCP-Server

由于在上一种模式中我们已经可以通过路由访问TEL0078,即在浏览器地址栏输入“192.168.0.112/”即可访问。我们现在可以通过这种方式进行设置。如果你没有做“一”中的步骤,请做“一”中的 1 到 6 步,以及 8 到 10步,然后从 本节的 第 2 步开始做。

1.打开浏览器输入“192.168.0.112/”,前往。输入“用户名:admin 密码:admin”,即可登录到系统信息页面。

AP+STAthroughwifi_3.png

2.在其他设置中,设置参数如下图所示:

wifiuotherwifip.png

3.重启模块。 restartservermode.png

4.打开软件“USR-TCP232-Test”(在本页末下载),如下图配置串口收发界面网络收发界面,(wifi模块的串口也可以使用Arduino IDE的Serial Monitor打开)

注意:请关闭电脑的防火墙,否则可能会导致网络端口无法监听!

AP%testcess_2.png

三:AP模式

1.将wifi shield插到arduino板子上面,拨动开关需要拨到中间的Programme!将usb与arduino连接,并插到可以连接无线网的电脑上,烧写测试代码进Arduino板子。烧写代码完毕后,拨动到Arduino端。 2.在电脑上搜索无线网络,会看到有一个名字为DFROBOT_WIFI_SHIELD_V3的,连接上去。 本模块AP的出厂配置:

 SSID    :DFROBOT_WIFI_SHIELD_V3  IP地址  :10.10.100.254  子网掩码:255.255.255.0  用户名  :admin  密码    :admin

此时你可以使用IE浏览器登录10.10.100.254访问AP的设置界面,如下图:

AP_modon1.png 3.配置模块模式AP

AP_mod.png

4.配置AP参数

AP_1.png

5.配置其他参数

 波特率    :115200BPS  网络协议  :TCP-Server  端口      :8899  服务器地址:10.10.100.254

AP_SET.png

6.设置完后,重启wifi模块。让电脑重新连接到wifi模块创建的AP网络。 7.打开软件“USR-TCP232-Test”。如下图配置网络收发界面,配置完后打开监听界面,即可收到Arduino通过串口发过来的数据。(如果没有成功,可尝试按一下Arduino板子的复位键或者关闭串口软件重新打开。) wifiup2.png

测试代码

库安装

#define Sleep_RQ  11  //sleep control input pin of the WIFI shield
#define Sleep_ON  12  //sleep state output pin of the WIFI shield
unsigned char flag;  //Sleep state

void setup()
{
  Serial.begin(115200);    //Baudrate
  pinMode(Sleep_ON,INPUT);
  pinMode(Sleep_RQ,OUTPUT);
  digitalWrite(Sleep_RQ,HIGH);  //Running
  delay(100);

  Serial.println("Start!");         //Test start
  for(unsigned char i = 0;i<10;i++)  //output the state of the shield lasts 20 seconds
  {
    flag = digitalRead(Sleep_ON);
    if(0 == flag)
      Serial.println("D12=0 Sleep");
    else
      Serial.println("D12=1 Active");
    delay(1000);
  }

  Serial.println("Sleep after five second!");    //Sleep after five second
  digitalWrite(Sleep_RQ,LOW);                     //set the shield to sleep mode
  delay(5000);
  digitalWrite(Sleep_RQ,HIGH);
  delay(100);
  Serial.println("Sleep Now!");

  for(unsigned char i = 0;i<10;i++)      //output the state of the shield lasts 20 seconds
  {
    flag = digitalRead(Sleep_ON);
    if(0 == flag)
      Serial.println("D12=0 Sleep");
    else
      Serial.println("D12=1 Active");
    delay(1000);
  }

  Serial.println("Weak up  Now!");
  digitalWrite(Sleep_RQ,LOW);         //set the shield to normal working state
  delay(2000);
  digitalWrite(Sleep_RQ,HIGH);
  delay(100);

  for(unsigned char i = 0;i<10;i++)   //output the state of the shield lasts 20 seconds
  {
    flag = digitalRead(12);
    if(0 == flag)
      Serial.println("D12=0 Sleep");
    else
      Serial.println("D12=1 Active");
    delay(1000);
  }
  Serial.println("Test RX and TX!");
}

void loop()
{
  if(Serial.available()>0)     //Print what serial received.
  {
    char inbyte=Serial.read();
    Serial.print(inbyte);
  }
}

疑难解答

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!

更多

File:nextredirectltr.pngDFRobot商城购买链接