32-STM32+ESP8266+AIR202基本控制篇-功能优化-微信小程序使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制(SSL单向认证连接通信)

2020-07-01 11:12:16 浏览数 (1)

说明 为了是通信安全,修改单片机程序,以SSL的方式连接MQTT 这节的微信小程序和以前一样,未做改动! 微信小程序本身就是使用SSL连接通信,无需改动! 用户使用原先的微信小程序即可! 修改说明(单片机) 1.提示

连接指令: "AT CIPSTART="SSL","%s",%srn",IP,Por

使用上面的 AT CIPSTART指令连接TCP以后发送和接收数据是如下方式

  1.发送数据,假设发送66个数据

  1.1 首先发送 AT CIPSEND=66rn    66:为要发送的数据个数

  1.2 等待模块返回 >

  1.3 发送要发送的数据给模块

  1.4 模块返回 Recv 66 bytes  

  1.5 模块发送完成返回 SEND OK

  2.接收数据

  2.1 接收数据格式: IPD,XXXX:真实数据    XXXX 为接收的数据个数

  3.意外断开

  3.1 和TCP服务器断开:CLOSEDrn

  3.1 和路由器断开:WIFI DISCONNECTrn

2.端口号改为 8883  (域名/IP,用户名,密码根据自己的修改)

3.修改连接指令

4.连接MQTT,先打包发送 AT CIPSEND=XXX,等待收到> ,执行下一条

5.发送MQTT连接协议

6.有数据需要发送先发送AT CIPSEND=XXXX

设置下接收超时3S,接收超时变量清零以后再发送实际的数据

发送实际的数据以后设置个发送超时,发送数据超时变量清零以后又重新开始

7.串口中断函数里面收到 > 清零接收超时

收到SEND OK 清零发送超时

提示:

所有的超时时间变量如果大于0 ,在定时器里面每1Ms隔减一,

如果在发送完AT CIPSEND=XXXX ,超出了设定时间没有返回 >

会执行发送真实数据.

如果在发送完真实数据以后,超出了设定时间没有返回 SEND OK

会执行AT CIPSEND=XXXX发送下一条数据

8.接收数据格式: IPD,XXXX:真实数据

程序判断是否接收到 IPD,XXXX:真实数据

如果是这种数据,剔除 IPD,XXXX:

然后清零串口接收,让串口只接收真实数据

下载这节的单片机程序到开发板.

测试(功能和以前一样但是内部为SSL通信)

1.点击小程序下方的添加设备按钮

2.选择添加Wi-Fi设备

3.输入路由器密码(注:Wi-Fi名称自动获取,也可自己填写)

4.长按开发板上面的 pb5引脚大约3S 直至图示上面的指示灯快闪

5.点击小程序上的 "绑定设备"按钮,开始搜索设备,绑定成功,将自动跳转到主页面,显示绑定的Wi-Fi设备

5.1 正在尝试连接Wi-Fi模块的热点

5.2 连接上热点,正在和模块通信

5.3 成功绑定设备

6.点击设备进入设备控制页面

7.控制继电器吸合

8.控制继电器断开

0 人点赞