Microduino mcookie 201和301套装都含有wifi模块,这个wifi模块是ESP8266构成的,官方提供的是4m flash的版本,刷入的是AT命令固件。就此固件而言,可以使用AT命令来实现,单连接 TCP Client ,udp传输,透传 ,多连接 TCP Server 等丰富的链接方式,实现数据的实时传输,完成智能化控制的需求。本节就结合app inventor 2来制作一个app,来控制led的开关。全部文件已经上传分享地址为:
http://pan.baidu.com/s/1jH8cdZg
材料准备coreusb,wifi,hub,led,一个笔记本电脑,一部安卓系统手机。大家把文件下载好,首先解压。Microduino_esp8266_control_LED.ino用arduino ide烧写入coreusb,烧写前,把程序里面的username,password改成你家的wifi用户名和密码。led接第13脚。程序用at命令来写的,这样可以使大家比较清楚的看到单片机的运行步骤。这个程序的目的是设置esp8266为多连接 TCP Server(服务端),手机作为Client(客户端)发送命令,esp8266接受到信号后,传递给coreusb再解析出来,从而实现led的开关。 下面解释一下程序的要点。
1,设置esp8266为多连接 TCP Server(服务端)
(1)AT+CWMODE=3 ESP8266 仅支持建⽴一个 TCP 服务器,且必须使能多连接,即可连接多个 TCP client。 本例 ESP8266 作为 station,接入家庭wifi网络,可在连接路由后,建立服务器。
(2)AT+CWJAP=username,password 链接到你的wifi路由器
(3)AT+RST 重启一下。
(4)AT+CIPMUX=1 使能多连接。
(5) AT+CIPSERVER=1,8089 建⽴TCP server(服务器),端口为8089。如果不指定端口,默认值为333。
(6) AT+CIFSR 查询设备 IP 地址。调试的时候大家要看下路由器分配给esp8266的ip地址,后面在app inventor 2里面要填写的。调试结束Serial的都可以注释掉。
(7)AT+CIPCLOSE=0 断开 TCP 连接。
(8)使用String的state.endsWith()函数来解析手机发送的字符串。
在手机上安装好MIT AI2 伴侣apk文件,在电脑上安装好谷歌浏览器(Google Chrome)。链接
http://app.gzjkw.net/login/?locale=zh_CN 服务器在线编辑app,把我的Microduino_esp8266_control_LED.aia文件导入。
在TextBox1的文字框输入你的esp8266的ip地址和端口,形式如10.0.0.9:8089,web组件发送GET命令给esp8266,那么esp8266收到后再传给coreusb解析,串口的效果如下:
+IPD, 0, 170: xxxxxxxxxx 0表示网络连接 ID (0~4),用于多连接的情况 。收到170 bytes, 数据为xxxxxxxxxx 。 我用的是小米5,安卓6.0.1版本。