主页 > 硬件 > 玩转ESP8266测试板(三):远程控制测试板

玩转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点亮。

085701d3n87qq07d8nonkd

如果想远程控制测试板,我们需要将测试板连接至家里的无线路由器,手机通过无线路由器远程来控制测试板:
090946rnzcknpac5mm33u5

如上图所示,首先需将ESP8266设置成AP+STA模式(mode=3)或STA模式(mode=1),ESP8266的STA连上无线路由器,获取到IP地址,比如是192.168.1.187;再在AP和STA的5000端口都开启TCP服务器,接收TCP连接。然后需要在无线路由器上设置端口映射,将无线路由器收到的TCP信息转发到ESP8266的STA地址:
091348no9kcyzg373jwjbg

上面是我的路由器配置,其他路由器请参见相应的端口映射说明。
最后手机开启3G网络,打开APK控制程序,将TCP服务器地址填写成无线路由器的公网IP,即可在全球任何可以上网的地方控制你家中的测试板了:
091743en9enk6akkakj0ai



下面我们Step by Step来实现它:
1、修改MCU程序,用编译器编译,并烧写至MCU:
092102lgg883g3fj39gf3l

源码见附件,我还加了一些ADC的验证代码,可无视,里面的无线路由器的SSID和密码需改成你自己的。

MCU1


2、验证MCU的正确性,将手机连接至无线路由器(注意不是测试板),然后手机上启动控制APK,里面的TCP服务器地址填ESP8266 STA的IP地址(如192.168.1.187,可通过AT+CIFSR查询或在无线路由器上查询),看是否能正常控制测试板
092947t9asbfepee93bx2a



3、在无线路由器上增加到STA IP地址的端口映射


4、手机通过3G上网,手机上启动控制APK,里面的TCP服务器地址填无线路由器的IP地址,看是否能正常控制测试板

如一切正常,你就实现了第一个物联网设备了

 

参考:
玩转ESP8266测试板(一):基本操作
玩转ESP8266测试板(二):程序烧写
玩转ESP8266测试板(三):远程控制测试板
玩转ESP8266测试板(四):SDK编程
关于ESP8266稳定性问题及规避方法

评论:2

  1. 郭閔翔 回复
    2016年6月14日 于 下午5:45

    您好!!
    向您請教一下您說的
    "获取到IP地址,比如是192.168.1.187;再在AP和STA的5000端口都开启TCP服务器"
    這該怎麼做,是用
    "AT+CIPMUX=1 设置成多连接
    AT+CIPSERVER=1,5000 开启TCP服务端口"
    這兩行指令就可以了嘛??
    那我用電腦要連接到tcp 我該連接哪一個ip??
    麻煩您了!!感謝您的教導

    • ywb 回复
      2016年8月5日 于 下午10:47

      远程电脑连接是连无线路由器的公网IP;本地电脑无线连接用AP的IP地址

发表评论

新用户的评论需审核后才会显示;

电子邮件地址不会被公开;
必填项已用*标注