zoukankan      html  css  js  c++  java
  • 31-STM32+ESP8266+AIR202基本控制篇-功能优化-APP使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制(SSL单向认证连接通信)

     说明

    为了是通信安全,修改Android 和 单片机程序,以SSL的方式连接MQTT

    程序说明(Android)

    1.程序在以前的基础上做了些修改,详细修改如下:

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

    3.增加代码如下
    <ignore_js_op>

    ① 证书验证回调(直接返回true)
    ② 开启SSL


    4.连接方式修改为:SSL
    <ignore_js_op>



    修改说明(单片机)
    1.提示
    <ignore_js_op>

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

    使用上面的 AT+CIPSTART指令连接TCP以后发送和接收数据是如下方式
      1.发送数据,假设发送66个数据
      1.1 首先发送 AT+CIPSEND=66     66:为要发送的数据个数
      1.2 等待模块返回 >
      1.3 发送要发送的数据给模块
      1.4 模块返回 Recv 66 bytes  
      1.5 模块发送完成返回 SEND OK
      2.接收数据
      2.1 接收数据格式: +IPD,XXXX:真实数据    XXXX 为接收的数据个数
      3.意外断开
      3.1 和TCP服务器断开:CLOSED
      3.1 和路由器断开:WIFI DISCONNECT



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

    <ignore_js_op>

    3.修改连接指令
    <ignore_js_op>

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

    <ignore_js_op>

    <ignore_js_op>

    5.发送MQTT连接协议
    <ignore_js_op>

    <ignore_js_op>


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

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


    <ignore_js_op>

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


    <ignore_js_op>

    提示:
    所有的超时时间变量如果大于0 ,在定时器里面每1Ms隔减一,
    如果在发送完AT+CIPSEND=XXXX ,超出了设定时间没有返回 >
    会执行发送真实数据.
    如果在发送完真实数据以后,超出了设定时间没有返回 SEND OK
    会执行AT+CIPSEND=XXXX发送下一条数据



    8.接收数据格式: +IPD,XXXX:真实数据
    程序判断是否接收到 +IPD,XXXX:真实数据
    如果是这种数据,剔除+IPD,XXXX:
    然后清零串口接收,让串口只接收真实数据
    <ignore_js_op>



    测试(功能和以前一样但是内部为SSL通信)
    1.打开APP,点击右上角菜单,选择添加设备 "APUConfig"


    2.手机连接自家的路由器,输入自家路由器密码


    3.长按开发板上面的 pb5引脚大约3S

    直至图示上面的指示灯快闪




    4.点击 APP 绑定设备按钮
    开始绑定设备







    5.绑定成功以后,自动跳转到主页面,并添加了一个设备
    设备显示的信息为ESP8266的MAC地址信息



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


    7.控制继电器吸合




    8.控制继电器断开



  • 相关阅读:
    POJ 1754 Splay
    POJ 3481Double Queue Splay
    前缀表达式求值
    Treap(树堆):随机平衡二叉树实现
    Tarjian算法求强联通分量
    (转)priority_queue的用法
    001Angular2环境准备
    9.富客户端应用程序的线程
    8.信号
    7.线程的优先级
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/13208426.html
Copyright © 2011-2022 走看看