_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串口的设备都可以很容易地建立起无线网络,实现远程管理和控制。
产品参数
- 标准Arduino叠层设计,可轻松插接到标准Arduino、MEGA、Romeo等控制器上
- 模块通讯距离:两个模块对传外置天线版本400米,内置天线150米。测试条件:开阔地视距,两个模块自行组网,57600波特率双向互传不丢包,轻松穿三层混泥土墙。内置PA信号强度高,亲测视距通讯距离可以到四五百米(3dbi天线,用更好的天线可以更远)。
- 支持IEEE 802.11 b/g/n,用来做远距离覆盖的大功率AP多使用802.11 n协议,本模块也完美支持。
- 支持访问接入点(AP)、客户端、网关以及串口到WLAN等模式
- 支持DHCP自动获取IP,支持工作在AP模式时为从设备分配IP
- 支持协议:支持网络协议:TCP/UDP/ARP/ICMP/HTTP/DNS/DHCP
- 可选TCP Server/TCP Client/UDP 工作模式,TCP Server模式时可支持多达32个Client连接
- 支持绝大多数WIFI加密方式和算法,WEP/WAP-PSK/WAP2-PSK/WAPI,加密类型 WEP64/WEP128/TKIP/AES
- 支持UART透明/协议数据传输模式,高达1M缓存空间,最高支持波特率460800bps
- 支持TTL串口到无线的应用
- 通过拉低Reload IO口一秒即可恢复出厂设置,不用担心设置错
- 支持无线工作在AP模式和节点(Station)模式,真正的硬件AP,安卓系统可以直接访问
- 可选内置板载(WIFI Shield V3 PCB Antenna)或者外置天线(WIFI Shield V3 PRSMA)
- 提供AT+指令集配置
- 提供友好的Web配置页面,通过网页配置
- 串口分帧延迟和数据量可以设置
- 支持路由/桥接模式网络构架
- 工作电压:5V,功耗<200Ma
- 频率范围: 2.4 - 2.497 GHz
- 输出功率:16dBm
- 数据速率:54Mbps-1Mbps
- 尺寸:长55× 宽53 × 高11mm
- 重量:约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的无线网络,然后连接上去。
打开网站,在地址栏里输入10.10.100.254,会出现: 本模块AP的出厂配置: SSID :DFROBOT_WIFI_SHIELD_V3
IP地址 :10.10.100.254
子网掩码:255.255.255.0
用户名 :admin
密码 :admin
此时你可以使用浏览器登录10.10.100.254访问TEL0078的设置界面,如下图:
4.在模式设置栏选择 AT+STA
注意:每次设置都需要点击保存。如果还需要其他设置,请点击返回后再进行。最后重启模块,使设置生效。 |
5.在STA设置栏点击搜索,即可搜索路由器的可用网络。
6.选择一个可用的网络。(这里以连接DFRobot_New为例)并输入无线网络的密码。
7.7.在网络设置栏设置模块端口参数及网络参数。其中"服务器地址"为主机PC的IP地址。
8.重启模块。
9.刷新网页10.10.100.254,确定是否连接到WIFI路由器。如果连接到了WIFI路由器,则可以在STA模式那一栏看到SSID、IP地址、MAC地址等信息,如下图所示
这时,意味着你可以通过路由器访问它了,这将在第十步之后测试。
10.断开电脑与“DFROBOT_WIFI_SHIELD_V3”的连接,并连接到TEL0078所连接的路由器网络上(这里是“DFRobot_New”)。
11.打开软件“USR-TCP232-Test”(在本页末下载),如下图配置串口收发界面和网络收发界面,(wifi模块的串口也可以使用Arduino IDE的Serial Monitor打开)
注意:请关闭电脑的防火墙,否则可能会导致网络端口无法监听! |
配置及其结果如下图所示:
二:"AP+STA"模式下作为TCP-Server
由于在上一种模式中我们已经可以通过路由访问TEL0078,即在浏览器地址栏输入“192.168.0.112/”即可访问。我们现在可以通过这种方式进行设置。如果你没有做“一”中的步骤,请做“一”中的 1 到 6 步,以及 8 到 10步,然后从 本节的 第 2 步开始做。
1.打开浏览器输入“192.168.0.112/”,前往。输入“用户名:admin 密码:admin”,即可登录到系统信息页面。
2.在其他设置中,设置参数如下图所示:
3.重启模块。
4.打开软件“USR-TCP232-Test”(在本页末下载),如下图配置串口收发界面和网络收发界面,(wifi模块的串口也可以使用Arduino IDE的Serial Monitor打开)
注意:请关闭电脑的防火墙,否则可能会导致网络端口无法监听! |
三: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的设置界面,如下图:
3.配置模块模式为AP
4.配置AP参数:
5.配置其他参数:
波特率 :115200BPS
网络协议 :TCP-Server
端口 :8899
服务器地址:10.10.100.254
6.设置完后,重启wifi模块。让电脑重新连接到wifi模块创建的AP网络。 7.打开软件“USR-TCP232-Test”。如下图配置网络收发界面,配置完后打开监听界面,即可收到Arduino通过串口发过来的数据。(如果没有成功,可尝试按一下Arduino板子的复位键或者关闭串口软件重新打开。)
测试代码
#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);
}
}
疑难解答
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!