(SKU:TEL0107) WifiBee-MT7681 无线模块

来自DFRobot Product Wiki
跳转至: 导航搜索
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指令去配置参数。

产品参数

  • 微控制器:MT7681
  • 协议标准:IEEE802.11b/g/n
  • Wi-Fi半径:180m(环境情况不同,传输的距离不同)
  • 信道数:1-14
  • 频率范围:2.4-2.4835G
  • 发射功率:15-18dbm
  • 加密方式:WEP/WPA-PSK/WPA2-PSK/TKIP/AES
  • 工作模式:STA模式/AP模式(不支持STA & AP混合模式,AP模式下只能连接一台设备)
  • 支持SmartLink智能联网功能,可以用APP控制模块连接普通无线路由器
  • TCP 1000端口:TCP<->UART 数据透传端口
  • TCP 1001端口:AT指令端口
  • UDP 3333端口:广播端口
  • 工作电压:3.3V
  • 推荐输入电压:3.3V
  • 功耗:75 mA
  • UART串口:1个
  • 波特率:9600bps、14400、19200、38400、57600、115200bps(默认)
  • 尺寸:32 * 24 mm
  • 重量:3.5g


引脚说明

name

标号 名称 功能描述
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次 运行模式,已经连上路由器
长亮 配置中,稍等片刻


SmartLink Android App一键接入WiFi

安装软件完成











  • 使用SmartLink功能将模块连入wifi网络
  • 等待一段时间,当led灯变为2秒闪烁一次的慢速闪烁状态后,即为已经连入了WiFi网络,新连入的设备将出现在上图设备列表中
  • 由于篇幅有限,更多APP操作请参考 (SKU: TEL0107) WiFiBee 进阶使用指南


通过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模式。

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

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

准备

实验过程

  • 将下面的代码下载到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());
  }
}
  • 将WiFiBee-MT7681插到IO扩展板上,将IO扩展板插在UNO上,调节IO扩展板开关至 "RUN"上。
  • 为UNO上电,打开串口监视器,观察LED灯变化

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


实验结果

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

AT指令

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

使用AT指令配置模块

AT 指令 描述
+++ 进入AT模式
AT+SSID <CR><LF> AT+SSID=? 查询SSID名称

AT+SSID=SSIDName 设置SSID名称

AT+PASSWORD <CR><LF> AT+PASSWORD=? 查询当前已存储的WiFi密码

AT+PASSWORD=PASSWORD 设置WiFi密码

AT+CONNECT <CR><LF> 连接WiFi(热连接状态下)
AT+DISCONNECT <CR><LF> 断开连接


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

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

串口无线透传实验

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

准备

  • 硬件
    • USB转Xbee适配器,或者Leonardo with xbee 主板,(能实现USB转TTL的其他工具同样可行) x1
    • WifiBee-MT7681 x1
  • 软件


步骤及过程

  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。

准备

  • 硬件
    • UNO或者Mega2560 x1(这里使用的是Mega2560,UNO同理)
    • WifBee-MT7681 x1
    • IO扩展板V7.1 x1
    • MEGA Sensor Shield V2.4
  • 软件


步骤及过程

  • 将WiFiBee模块插入UNO或MEGA2560扩展板的xbee插槽中(注意COM0口支持无线下载)
Wifibee mt7681 mega2560 connect.png


WiFiBee-MT7681 Wireless BurnTool

  • 打开下载工具,软件会自动搜索局域网内的设备,选择 "Use Default File"缓存文件夹,这里会存储您最后一次编译的Hex文件。当然也可以选择手动导入指定的Hex文件,"Manual Assign File",选择HEX文件(如果不知道如何让Arduino IDE导出HEX文件的童鞋,请点这里:Arduino IDE 导出HEX文件(选自:百度文库))


Arduino IDE
  • 打开arduino IDE,选择一个代码,点击“Verify(编译)”,编译一个代码,这里假设是blink.


  • 选择要下载的平台,UNO或者MEGA2560,或者M0,点击Update
  • 下载过程中Progress栏会出现下载百分百,下载完成显示Success,下载失败显示Fail
  • 注意:WiFiBee必须要选择115200 bps,其他波特率无法支持无线下载
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。
其他的AT指令请参见《WifiIO AT指令一览表》。
  • AP模式下手机APP控制WifiBee
假设WifiBee工作在AP模式,且WifiBee的SSID是jansion1,密码是a12345678。打开手机wifi设置,将手机连接到WifiBee上。等连接成功后,打开手机app,此时app界面会出现一个设备,该你设备的IP地址就是192.168.81.1,如图所示:
Ap.jpg


这样就可以对WifiBee进行操作控制,关于如何使用DFRobot-IoT手机app控制WifiBee,请参见快速入门
  • AP模式下如何使用arduino控制WifiBee
在AP模式下,arduino控制WifiBee与在STA模式下的方式是一致的。请参见(SKU: TEL0107) WiFiBee 进阶使用指南
  • AP模式下如何使用arduino控制WifiBee
无线烧录等其他操作和STA模式相同

串口更新MT7681固件教程

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


准备

步骤及过程

  • 将WiFiBee插到适配器上(如果插在 Leonardo上需要烧录最面那个调试代码)
  • 升级过程中对应的串口下面会出现已完成百分比
  • 当百分比达到100%时,升级完成
第四步:升级完成



疑难解答

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

答: 首先,mt7681会先进入bootloader(此时以4HZ左右的频率闪烁4s)。然后mt7681启动,连接之前设置的ssid,此时以1HZ的频率闪烁。如果连接不上,芯片进入smartlink模式,芯片以5HZ左右的频率快闪,当你使用手机发送smartlink广播后,芯片连接到了路由器,此时芯片以0.25HZ的速度超慢闪烁。

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

答: 请尝试按一下板载的 WiFiRST LED应当进入快速闪烁状态。倘若工作过一段时间后,依旧出现这个问题,请尝试重新插拔WiFiBee,以免出现接触不良导致供电不足的问题(WiFiBee的功耗较大)。

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

答: 由于Arduino UNO 和 Mega2560下载程序时的波特率是115200,请确保保持这一波特率不变

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

答: 局域网内通过端口1001就可以实现无线控制,网外可以尝试用路由器端口映射来达到远程控制的效果,但是当前不支持主动连接外网端口


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

答: 使用at指令,将需要连接的ssid名字设置为一个不存在的名字(例如:AT+SSID=jfasdjfasde)。然后重启,芯片3次寻找jfasdjfasde这个ssid找不到或连不上,就自动进入了smartlink模式。


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

答: 可能是使用环境电磁环境太复杂或路由器不支持,可使用at指令设置ssid和password进行连接,如果还不行可升级最新固件

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

答: 支持


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


更多


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱