玩转ESP8266测试板(三):远程控制测试板
目前我们只能手机本地连接测试板,控制LED的开关,下面来试试怎么在远程任何地方控制测试板。
首先来看看软件的控制流程:
上电启动后,MCU对ESP8266进行配置:
AT+CWMODE=2 设置成路由模式
AT+CWSAP="ESP8266","0123456789",11,0 设置路由
AT+RST 重启
AT+CIPMUX=1 设置成多连接
AT+CIPSERVER=1,5000 开启TCP服务端口
ESP8266被配置成了AP模式,并开启了TCP服务器。
在手机侧的APK其实就是一个TCP客户端,当用户在手机上点开灯按钮时,会发送相应的TCP数据(如ESPKLED1)给ESP8266上的服务器,ESP8266收到TCP数据后,会在串口进行转发(如+IPD,0,10:ESPKLED1 ),MCU的串口收到ESP8266串口的信息后,分析其内容并控制相应的LED点亮。
如果想远程控制测试板,我们需要将测试板连接至家里的无线路由器,手机通过无线路由器远程来控制测试板:
如上图所示,首先需将ESP8266设置成AP+STA模式(mode=3)或STA模式(mode=1),ESP8266的STA连上无线路由器,获取到IP地址,比如是192.168.1.187;再在AP和STA的5000端口都开启TCP服务器,接收TCP连接。然后需要在无线路由器上设置端口映射,将无线路由器收到的TCP信息转发到ESP8266的STA地址:
上面是我的路由器配置,其他路由器请参见相应的端口映射说明。
最后手机开启3G网络,打开APK控制程序,将TCP服务器地址填写成无线路由器的公网IP,即可在全球任何可以上网的地方控制你家中的测试板了:
下面我们Step by Step来实现它:
1、修改MCU程序,用编译器编译,并烧写至MCU:
源码见附件,我还加了一些ADC的验证代码,可无视,里面的无线路由器的SSID和密码需改成你自己的。
MCU1
2、验证MCU的正确性,将手机连接至无线路由器(注意不是测试板),然后手机上启动控制APK,里面的TCP服务器地址填ESP8266 STA的IP地址(如192.168.1.187,可通过AT+CIFSR查询或在无线路由器上查询),看是否能正常控制测试板
3、在无线路由器上增加到STA IP地址的端口映射
4、手机通过3G上网,手机上启动控制APK,里面的TCP服务器地址填无线路由器的IP地址,看是否能正常控制测试板
如一切正常,你就实现了第一个物联网设备了。
参考:
玩转ESP8266测试板(一):基本操作
玩转ESP8266测试板(二):程序烧写
玩转ESP8266测试板(三):远程控制测试板
玩转ESP8266测试板(四):SDK编程
关于ESP8266稳定性问题及规避方法
评论:2