TEL0107 WifiBee-MT7681 无线模块

简介

WiFiBee-MT7681是一块基于MT7681开发的串口WiFi模块,兼容Xbee通用接口,支持Arduino Wi-Fi无线下载程序,是一块面向物联网(IOT),智能家居等无线控制领域的产品。 WiFiBee支持主流的IEEE802.11b/g/n协议标准,2.4G WiFi频段,拥有14个信道。支持WEP/WPA-PSK/WPA2-PSK/TKIP/AES多种加密协议,兼容主流路由器,拥有STA和AP两种工作模式,可自由切换,并且都支持TCP/IP通信。此外WiFiBee还支持SmartLink智能联网功能,无需繁琐的操作步骤,只要通过手机APP (Android),就可以直连无线路由器。 WiFiBee兼容Xbee接口,可直插在任意支持Xbee的设备上,让其拥有联网功能。对于Arduino UNO和Arduino Mega2560,WiFiBee还可以作为无线下载器,不需要数据线,直接通过WiFi,完成无线下载。这在调试机器人或者移动平台时就显得非常方便了。此外模块外扩了3个IO口,可以通过WiFi实现远程控制,每个IO支持软件PWM输出。可以通过串口AT指令去配置参数。

产品参数

引脚说明



标号 名称 功能描述
VCC3.3V 电源正 只能接3.3V
IO0 通用IO0 可用过软件控制,控制方详见AT指令表和手机软件控制部分
IO1 通用IO1 可用过软件控制,控制方详见AT指令表和手机软件控制部分
IO2 通用IO2 可用过软件控制,控制方详见AT指令表和手机软件控制部分
GND GND 接地
RESET RESET 为Arduino提供复位功能,与IO0复用,中间通过电容引到RESET
WifiReset WifiReset 只复位WifiBee

WiFiBee 无线网络配置过程

WiFiBee-MT7681支持AP与STA模式两种模式,这边先介绍STA模式下的无线网络配置过程,总共有三种方式:

  1. SmartLink Android App一键接入WiFi
  2. 通过AT指令配置无线网络参数
  3. 通过Arduino UNO 代码配置无线网络参数

LED状态指示:

LED状态 模式
1秒2次 boot模式,smartlink模式
1秒1次 运行模式,还没连上路由器
2秒1次 运行模式,已经连上路由器
长亮 配置中,稍等片刻

mt7681_smartlink_0.png

通过AT指令配置无线网络参数

除了上述通过APP去设置网络参数外,还可以使用AT命令的方式去设置网络参数,您可以使用USB转Xbee适配器连接WiFiBee;如果您手上有我们的 DFRduino Leonardo with Xbee主板,也可以通过烧录以下代码来实现板载调试。(注:由于Uno只有一个串口,所以并不支持这种方式,但可以参考下一章节)

//功能描述:交换Serial和Serial1收到数据
void setup() {  // put your setup code here, to run once:
    Serial.begin(115200);
    Serial1.begin(115200);
    while(!Serial);
 }
void loop() {   // put your main code here, to run repeatedly:
    while(Serial.available())
        Serial1.write(Serial.read());
    while(Serial1.available())
        Serial.write(Serial1.read());
 }

插上WiFiBee后,打开Arduino IDE 串口监视器(串口调试助手),输入“+++”,进入AT模式。

  1. 选择 no line ending,波特率 115200bps, 8/n/1 ,输入“+++”进入AT模式
  2. 数据返回 OK
  3. 选择 Both NL & CR,输入AT指令 AT+SSID=你的路由器SSID(WiFi的名字)
  4. 命令正确,数据返回 OK
  5. 输入AT指令 AT+PASSWORD=你的WiFi密码(WiFi的密码)
  6. 命令正确,数据返回 OK
  7. 输入AT指令 AT+CONNECT(WiFi热链接)
  8. 命令正确,数据返回 OK

重启模块(按Reset,插拔电源都可以),等待一段时间后,当led灯变为2秒闪烁一次的慢速闪烁状态后,即为已经连入了WiFi网络。见上图,WiFiBee分配到的IP地址为 192.168.1.3 (由于网络环境的不同,分配的IP地址也不同) 更多AT指令请参考下方章节 《WiFiBee AT指令》

通过Arduino UNO 代码配置无线网络参数

准备

实验过程

const char ssid[] = {
  "AT+SSID=ouki"
};   // WiFi 名称
const char passwd[] = {
  "AT+PASSWORD=88888888"
}; // WiFi 密码

void setup()
{
  Serial.begin(115200);

  delay(100);
  while (!Serial);
  Serial.print("+++");
  delay(1000);
  Serial.println(ssid);
  delay(100);
  Serial.println(passwd);
  delay(100);
  Serial.println("AT+REBOOT");
  delay(100);
}

void loop()
{
  while (Serial.available())
  {
    Serial.write(Serial.read());
  }
}

注意:扩展板的开关是串口开关,当使用USB下载时,需要调节到”PROG“端,当使用无线下载时,需要调节到”RUN“端。

实验结果

串口监视器打印设备IP地址

AT指令

AT指令即Attention指令,AT指令一般应用于终端设备与PC应用之间的连接与通信。在这里,我们采用AT指令的方式配置网络参数。

使用AT指令配置模块

AT 指令 描述
+++ 进入AT模式
AT+SSID AT+SSID=? 查询SSID名称
AT+SSID=SSIDName 设置SSID名称
AT+PASSWORD AT+PASSWORD=? 查询当前已存储的WiFi密码
AT+PASSWORD=PASSWORD 设置WiFi密码
AT+CONNECT 连接WiFi(热连接状态下)
AT+DISCONNECT 断开连接

注意:除了“+++”外,其他指令都需要添加回车与换行符号,所以在上一章节中,输入"+++"时需要切换到 "no line ending",而输入其他命令时需要切换到 "both CR & LF"。

更多指令集,请参考AT指令表下载

串口无线透传实验

本教程实现局域网内串口到PC机的无线透传

准备

步骤及过程

  1. 将WiFiBee插到适配器上(如果插在 Leonardo上需要烧录最面那个调试代码)
  2. 下一个Putty或者类似的网络调试助手(这边以Putty举例)
  3. 配置网络参数:"WiFiBee的IP地址",端口号"1000"。(端口1000 是WiFiBee内置默认的服务器端口号,作为Client客户端时,需要另外设置远程服务器的端口号,参见AT指令表)
  4. 设置完毕,点击 "Open",打开端口

无线烧录实验

WiFIBee支持通过WiFi实现无线烧录功能,只需要把WiFiBee接入PC的网络中,即可实现下载烧录。当前支持Arduino UNO, Mega2560, DFRduino M0。

准备

步骤及过程



WiFiBee-MT7681 Wireless BurnTool

Arduino IDE


wifibee_mt7681_mega2560_upload_success.png

结果

观看板子的 D13 管脚的LED灯,在以1秒一次的频率闪烁

WifiBee AP模式

WifiBee既可以工作在STA模式也可以工作在AP模式,AP模式下只能连接一台设备。当工作在AP模式时,用户可以用wifi设备连接WifiBee,这样就组成局域网。在AP模式下,WifiBee的控制和数据转发功能和STA模式下是一样的。不同的是AP模式下WifiBee的IP地址固定为:192.168.81.1。

AP模式下的一些AT指令

1_ STA切换到AP模式:

AT指令 描述
AT+ROLE=ROLE_AP 如果配置成功则返回OK
AT+REBOOT 重启WifiBee后进入AP模式

2_ AP切换到STA模式:

AT指令 描述
AT+ROLE=ROLE_STA 如果配置成功则返回OK
AT+REBOOT 重启WifiBee后进入STA模式

3_ 查询或设置当前AP模式下的SSID和密码:

AT指令 描述
AT+SOFTAPCONF=? 返回当前WifiBee的热点名称和密码
AT+SOFTAPCONF=jansion1,a12345678 把AP的SSID和密码分别配置为了jansion1和a12345678。


串口更新MT7681固件教程

当MT7681固件需要更新的时候,用户可以自行更新,使用DF提供的最新功能。

准备

步骤及过程

  1. 将WiFiBee插到适配器上(如果插在 Leonardo上需要烧录最面那个调试代码)
  2. 打开MT7681 Update Tool
  3. 打开要升级的最新固件
  4. 选中串口,点击Update按钮
    • 升级过程中对应的串口下面会出现已完成百分比
    • 当百分比达到100%时,升级完成
      第四步:升级完成
  5. 升级完成

疑难解答

问: 看到led以各种频率闪烁,WiFiBee的启动流程是什么样子的

问: LED指示灯,上电没有闪烁,比较暗淡

问: 上位机无法下载代码,怎么办?

问: 如何实现通过外网控制WiFIBee的GPIO引脚?

问: 如何让芯片进入smartlink模式

问: smartlink软件无法配置连接到网络

问: 手机开的wifi热点是否支持smartlink?

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

更多

DFshopping_car1.png DFRobot商城购买链接