WifiIO-MT7681模块

产品名称(300px)

目录

1 简介
2 产品参数
3 引脚说明
4 快速入门

4.1 准备
4.2 智能连接及控制

5 Arduino控制WifiIO

5.1 用Uno控制WifiIO的gpio等基础资源
5.2 用Uno通过WifiIO与远程tcp客服端进行无线传输

6 WifiIO 工作方式详解
7 WifiIO AP模式
8 WifiIO固件升级
9 疑难解答
10 更多

简介
WiFiIO模块是一款面向物联网,智能家居等无线控制领域的产品。WiFiIO具有4个gpio口,4个软件pwm和一个uart口,用户可以使用这些外部资源轻松地实现无线控制灯的亮灭,低速电机的旋转,串口输出等。当然WiFiIO既可以工作在STA模式下,也可以工作在AP模式下(默认为STA模式),这两种模式下都具有TCP/IP通信能力。我们为WifiIO提供了多种控制方案,其中包括android app,网络AT指令、uart串口AT指令。用户只要将手机和WifiIO连接起来就可以通过app随心所欲的控制WiFiIO的所有资源了。

产品参数
工作电压: 外接电源电压范围7-23V或者5V供电
功耗:电流约为70mA(5V供电)
硬件资源:
4个单独的GPIO口(可做软件PWM)
4个I/O口扩展成3P接口,直插3P传感器模块
1个UART(支持AT指令配置)
一个复位引脚
一个电源指示灯,一个状态指示灯(连接到GPIO4)

尺寸:59mm*38mm
重量
wifi信号有效覆盖半径(无外接天线):180m(环境情况不同,传输的距离不同)
支持外接天线(IPEX接口)
信道数:1-14
频率范围:2.4-2.4835G
发射功率:15-18dbm
串口支持传输速率:9600bps、14400、19200、38400、57600、115200bps(默认波特率为115200)
完美支持802.11 b/g/n协议
支持WIFI加密方式WEP/WPA-PSK/WPA2-PSK/TKIP/AES等
支持AP(热点)/STA(WIFI节点)
支持SmartLink智能联网功能,可以用APP控制模块连接普通无线路由器

引脚说明

name

标号
名称
功能描述

1
3Pin接口
可直插3Pin传感器模块

2
电源接口
7-23V

3
复位按键

4
串口和复位引脚

5
IPEX天线座子
用外接天线,能增加传输的距离

6
4个I/O口
与传感器3pin接口的I/O口相通

快速入门
本教程的目的是快速教会用户如何使用MT7681-IoT手机app实现对WifiIO基本操作,当然要想完全使用WifiIO的功能还需要补充后面章节的知识。

准备

硬件
WifiIO x1
7-25v电源适配器 x1
杜邦线 若干

软件
MT7681-IoT.apk 点击下载

智能连接及控制

用7-25v电源适配器给WifiIO通电,此时WifiIO指示灯会不停闪烁,然后将安卓手机连接至wifi路由,打开MT7681-IoT安卓手机app,界面如图所示:

Iot appmanager1.png
在ssid下拉框中选择您期望将WifiIO连接至的ssid,并在Password输入框中输入正确的wifi密码,点击Smart Connection按钮,这样WifiIO会进入智能连接状态。
如果WifiIO连接到了指定的无线路由器,那么此时MT7681-IOT软件界面会显示该WifiIO的ip地址信息以及一些可用操作按钮,这您就可以对WifiIO进行操作。如图所示:

Iot appmanagdevice.png
一、点击Basic按钮进入基本操作界面

Basic 按钮的作用是为WifiIO 启动一个基本操作的界面,在这个界面中我们主要操控
gpio pwm,界面如下图所示:

蓝色矩形框用于输出WifiIO 传过来的反馈信息。
黄色矩形框内有个输入框和一个Send按钮,这个主要用于给WifiIO的uart外设写数据。
红色矩形框中是用于控制gpio输入/输出以及PWM 输出控制。

Basic.jpg
1、控制gpio输入/输出

在这个界面可以控制4个gpio输入/输出高低电平,譬如点击GPIO0对应的High按钮这样WifiIO对应的gpio0就会被设置为高电平,同时app上的该按钮编程了Low按钮,当用户点击一下gpio0对应的Low按钮时,gpio0输出低电平。
用户如果想配置gpio0为输入模式,那么点击gpio0对应的input按钮即可,并且WifiIO的gpio0管脚的高低状态也反应到了这个input按钮上,如果此时显示的是input/High表示此时gpio0当前输入一个高电平,如果为input/Low,
则表示gpio0当前输入一个低电平。其他同理。

2、控制gpio的pwm输出

在这个界面里可以控制4个gpio输出pwm波形,但由于它的pwm只能输出低频率的pwm波形,频率范围为1~500Hz,且频率最好与1000Hz是倍数关系。占空比必须满足 (1000 / 频率) * 占空比 >= 1的关系。比如我将gpio2配置为
输出200Hz,占空比为%60的pwm波形。那么只需要在PWM2所对应的第一个输入框输入200Hz,第二个输入框输入60然后点击SET按钮即可。其他同理。

二、点击At按钮AT指令发送界面
1、AT指令控制gpio3输出高电平

ATmode.png
当进入该界面时app会打印出connect server successful,表示用户可以对WifiIO发送AT指令了。在AT Cmd输入框中输入AT+GPIO3=1,然后点击send按钮,此时WifiIO会返回OK,表示gpio3已经配置为输出模式且输出高电平。

2、AT控制WifiIO连接其他无线路由器

比如用户想让WifiIO连接到SSID为jansion,password为12345678的无线路由器上,用户只需要一次发送以下指令即可:
AT+SSID=jansion;
AT+PASSWORD=12345678;
AT+CONNECT.

此时WifiIO就会连接上这个无线路由器上,
把手机wifi也切换到该无线路由上后,就又可以通过手机app控制WifiIO了。
当然还有更多AT指令可用《WifiIO AT指令一览表》点击下载

三、点击Uart按钮进入数据透传操作界面

在该界面中,您可以把数据发送到WifiIO的串口上,WifiIO的数据也可以发送到该界面中。比如在UART输入框中输入hello world,然后点击send按钮此时"hello world"就会立即传输到WifiIO,WifiIO在通过uart的Tx脚发送出去。如果此时把电脑和WifiIO通过串口连接起来,打开串口助手就可以看到如下图所示的内容:

Uart 2.jpg
Uart 1.png
注意:默认波特率为115200,UART的波特率可以通过AT+BAUDRTATE=?查看。

Arduino控制WifiIO
在上一章中简单介绍了如何通过手机app快速控制WifiIO的gpio,pwm,数据透传功能。那么在这一章中将详细介绍如何使用Uno控制WifiIO的gpio等基础资源、Uno如何通过WifiIO获取远程网络数据。

用Uno控制WifiIO的gpio等基础资源

1、Uno与WifiIO接线

把Uno的Serial的Rx与WifiIO的Tx相连接,把Uno的Serial的Tx与WifiIO的Rx相连接。把Uno的GND和WifiIO的GND相连接,即共地。值得注意的时,应该在arduino IDE中把Uno的串口波特率设置为115200,这样Uno的波特率就和WifiIO的一致了。

如果不知道当前WifiIO的波特率可以通过DFRobot_IoT手机app的AT控制界面发送AT+BAUDRATE=?就可以查询得到。

2、配置wifiIO

Uno控制WifiIO的GPIO口的本质是Uno通过Uart发送AT指令给WifiIO,WifiIO根据不同的AT指令做出不同的反应。比如控制WifiIO的gpio0输出低电平,那么您需要Uno通过串口发送如下指令:

第一步:发送+++使WifiIO进入串口AT指令模式。
第二步:周期性的发送AT指令拉高和拉低D0口即可,而用到的AT指令就是AT+GPIO0=1(拉高)和AT+GPIO0=0(拉低),AT指令说明请参考《WifiIO AT指令一览表》。
3、编程实现

/* *description:
*This demo shows how to control the WifiIO gpio0 blink through arduino such as Uno,Bluno and so on.
*author: jansion
*date:2015.11.16
*version:1.0.0
*note:
*detail desciption:
*when the program is running, the D0 of WifiIO will last high state for 2s and low state for 2s.
*/

//define a buffer name info for receiving the data for WifiIO. const short info_size = 256; char info[info_size];

void setup() {
//set Serial for communication with the WifiIO
Serial.begin(115200);
delay(300);
//send the AT command +++ to WifiIO for force the WifiIO into AT command mode
Serial.print("+++");
//delay 1s for WifiIO dealing
delay(1000);
}

void loop() {
//pull up the pin of WifiIO D0 to high.
Serial.println("AT+GPIO0=1");
//last high state for 2s
delay(2000);
//draw down the pin of WifiIO D0 to low.
Serial.println("AT+GPIO0=0");
//last low state for 2s
delay(2000);
}

4、实验现象

把程序download到Uno中运行,这样可以看到WifiIO的gpio0每隔2S亮灭一次。

5、扩展

如果想控制GPIO0输出50Hz、占空比40%的话,可以发送AT+PWM0=F50D40即可。当然WifiIO有很多AT指令可用,具体参见《WifiIO AT指令一览表》

用Uno通过WifiIO与远程tcp客服端进行无线传输

在这一节中我们将把WifiIO从远程tcp客服端的数据转发给Uno,或者Uno把数据通过WifiIO转发到远程tcp客服端。

1、环境搭建

先进入DFRobot_IoT的Uart数据传输界面(如果不知道如何进入该界面可以参考快速入门中的相关描述),并把WifiIO与Uno串口连接好即可。

2、配置WifiIO

我们需要达到的配置效果是:Uno可以通过uart从WifiIO获取到DFRobot_IoT发送过来的数据;Uno也可以通过uart发送数据到DFRobot_IoT界面中。由于DFRobot_IoT在连接WifiIO过程中已经对WifiIO进行了配置,因此不需要Uno对它进行任何配置。

3、编程实现

/* *description:
*this demo shows how Uno to get the data from the remote tcp server var WifiIO and send the data back immediately when data received by Uno.
*author: jansion
*date:2015.11.16
*version:1.0.0
*note:
detail desciption:/

//define a buffer name info for receiving the data for WifiIO.
const short info_size = 256;
char info[info_size];
int readlen = 0;

void setup() {
//set Serial for communication with the WifiIO
Serial.begin(115200);
}

void loop() {
//loop read the data wich received by WifiIO from the DFRobot_IOT .
if ((readlen = Serial.available()) > 0){
Serial.readBytes(info, readlen);
//output the data read form WifiIO to
Serial.print(info);
}
}

4、实验现象

AT指令模式.png.lnk.png
Uart 3.png

WifiIO 工作方式详解

本节全面的介绍WifiIO的工作方式,当然对于初级用户,可以不用了解这些。下面是工作框图:

Work mean.png

下面是对上图的详细说明:
1、每次WifiIO启动后,UART默认处于串口回环模式即WifiIO接收到的串口数据立刻通过串口转发回去。
2、在这个框图中,蓝色箭头表示的是通过串口发送AT指令的控制模型,黑色箭头表示的是通过wifi发送AT指令的控制模型.
3、红色箭头表示数据传输模型,该模型中数据通过WifiIO转发,让arduino具有访问远程tcp 服务器或客服端能力。数据通路可以是1<-->2, 1<-->3。

a、假设用户刚刚启动WifiIO且接入无线路由器成功。用户想将wifiIO接收到的数据发送到远程客服端,那么用户只需要让远程客服端连接到WifiIO的1000端口,此时WifiIO会将接收到的串口数据转发到远程客服端。断开连接后,接收到的串口数据通过串口发送出去。
b、假设用户刚刚启动WifiIO且接入无线路由器成功。用户想将wifiIO接收到的数据发送到远程服务器,那么用户只需要只用AT+TCPCLICONN指令将WifiIO的连接到远程服务器,如果连接成功,此时WifiIO会将接收到的串口数据转发到远程服务器。
c、假设用户刚刚启动WifiIO且接入无线路由器成功,且此时WifiIO同时连接了远程客服端和服务器。当用户想将串口数据发送到远程客服端或者服务器时,用户需要手动使用AT+U2W=SERVER或者AT+U2W=CLIENT指定数据流向。(注意:如果不使用AT指定的话,默认原则
是哪个谁先建立连接就转发给谁。)当任意一个连接断开时WifiIO会自动将数据转发到未断开连接的远程客服端或者服务器。当两个连接都断开后,接收到的串口数据通过串口发送出去。

4、当WifiIO的1000端口与远程tcp客服端连接或者WifiIO连接了一个远程的tcp服务器时。UART会配置为纯数据模式,此时WifiIO会自动将接收到的串口数据转发到远程的tcp客服端或者远程的tcp服务器,

且WifiIO将自动把接收到的远程tcp客服端或者远程tcp服务器的数据通过UART转发出去。
在上面的应用场景中,如果想让WifiIO把接收到的数据串口数据马上通过UART转发出去而不是转发到远程tcp客服端或者远程tcp服务器。那么可以通过AT+U2U指令配置WifiIO达到此目的。
此时想再次希望WifiIO把接收到的串口数据发送到远程tcp客服端或者远程tcp服务器,那么用户必须显示地使用AT+U2W指定WifiIO的数据到底转发到何处。

5、当WifiIO的1000端口与远程tcp客服端相连并且WifiIO连接了一个远程的tcp服务器时。这时候uart的数据流流向必须用过AT+U2W指令来显式指定。当然也可以通过AT+U2U指令配置WifiIO已达到

将UART接收到的数据再通过UART发送出去。

6、UART使用的AT指令和TCP使用的AT指令均来自《WifiIO AT指令一览表》格式有点细小的差别。比如UART发送AT指令之前,必须先发+++(没有’\r’,’\n’)进入AT模式,然后发送具体的AT指令,

比如”AT+GPIO0=1\r\n”(必须要\r\n)以拉高WifiIO 第0脚)。发送AT+EXITAT退出AT指令模式,进入纯数据模式(此时WifiIO接收到的串口数据会马上通过UART转发出去)。
而TCP方式下可以直接发送具体的AT指令,比如”AT+GPIO0=1”(不用实现发送+++,也不用发送”\r\n”)。

WifiIO AP模式

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

发送AT+ROLE=ROLE_AP ---->如果配置成功则返回OK。
发送AT+REBOOT ---->重启WifiIO后进入AP模式。

2、AP切换到STA模式:

发送AT+ROLE=ROLE_STA ---->如果配置成功则返回OK。
发送AT+REBOOT ---->重启WifiIO后进入STA模式。

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

发送AT+SOFTAPCONF=? ---->返回当前WifiIO的热点名称和密码。
AT+SOFTAPCONF=jansion1,a12345678 ---->把AP的SSID和密码分别配置为了jansion1和a12345678。

其他的AT指令请参见《WifiIO AT指令一览表》。

二、AP模式下手机APP控制WifiIO

假设WifiIO工作在AP模式,且WifiIO的SSID是jansion1,密码是a12345678。打开手机wifi设置,将手机连接到WifiIO上。等连接成功后,打开手机app,此时app界面会出现一个设备,该你设备的IP地址就是192.168.81.1,如图所示:

Ap.jpg

这样就可以对WifiIO进行操作控制,关于如何使用DFRobot-IoT手机app控制WifiIO,请参见快速入门。

三、AP模式下如何使用arduino控制WifiIO

在AP模式下,arduino控制WifiIO与在STA模式下的方式是一致的。请参见Arduino控制WifiIO

WifiIO固件升级
此升级软件只能对APP进行升级,分正常升级和异常升级两种形式,工具包中有详细的升级说明。点击下载

疑难解答

问:

答:

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

更多

Shopping car.png [Link ]
|}

标签: Arduino传感器