z_esp32

作者: N_8291 | 来源:发表于2019-03-31 00:18 被阅读0次

    开发环境

    开发工具
    arduino

    1.先安装好ArduinoIDE(如果已安装,直接跳到第二步)
        https://www.arduino.cc/en/Main/Software
    2.下载社区打包的esp32安装包,直接运行并解压即可。
       我的百度云---arduino开发---esp32
    如果安装过其他版本的esp32 sdk,请先删除,再使用本安装包
    解压完成后,再打开Arduino IDE,即可在 菜单栏>工具>开发板 中找到你使用的esp32开发板
    

    配置信息

    配置.png

    功能

    蓝牙配网
    蓝牙分包接送避免苹果手机各种错误
    写配置存FLASH
    wifi连接网络
    网络掉线自动重新连接
    有网络自动连接mqtt
    mqtt掉线重新连接

    mqtt控制所有io口
    mqtt控制开关蓝牙

    蓝牙设置wifi信息mqtt信息

    固件到qq群214161428下载


    消息功能


    • 蓝牙消息
      功能
      配置wifi
      配置mqtt

    蓝牙发送配置信息

    //第一包  
      11111数据长度
    //数据包
       {"device_name":"设备名QQ547176052","mqtt_id":"","mqtt_Server":"qq547176052.mqtt.iot.gz.baidubce.com","mqtt_Port":1883,"mqtt_User":"qq547176052/u_1552915000950","mqtt_Password":"mqtt密码","mqtt_topic_device":"u_1552915000950","wifi_ssid":"FAST_C9E0","wifi_password":"ab13417665005ab"}
    //最后一包
      22222
    //必须先发第一包 再发数据包 最后再发22222
    //每包长度  设备没有限制  但是有些手机最长只能发20个字节
    
    //接收消息格式正确判断  除  mqtt_id  mqtt_Port  wifi_ssid  外 每个参数长度大于2则判断为参数正确
    //如果  mqtt_id  为空则自动随机生成一个长度为 10 的 mqtt_id  
    //wifi_ssid  这个参数没判断
    
    //收到数据后会存入  esp32_FLASH  连接wifi  连接mqtt  订阅  mqtt_topic_device  发送一条消息  "Hello 我是 ESP32"
    
    
    

    错误返回

    
    json数据错误
    
    

    正确返回
    json数据正确


    • mqtt消息

    功能
    控制开关蓝牙
    控制全部io口高低电平
    删除ini配置
    返回各种消息

    
    //写io
      //收
      {"my_topic":"s_1553067131819","ml":"xio","io":[{"pin":2,"v":0}]}
      //返回
      {'Message':'ok','ml':'xio'}
    
    //读io状态
      //收
      {"my_topic":"s_1553067131819","ml":"dio","io":[{"pin":2}]}
      //返回
      {"my_topic":"s_1553067131819","ml":"dio","io":[{"pin":2,"v":0}]}
    
    //关闭蓝牙
      //设备收
      {"my_topic":"s_1553067131819","ml":"qbly","qbly":false}
      //设备回
      {'Message':'ok','ml':'qbly',"qbly":false}
    //打开蓝牙
      //设备收
      {"my_topic":"s_1553067131819","ml":"qbly","qbly":true}
      //设备回
      {'Message':'ok','ml':'qbly',"qbly":true}
    
    

    (还没测试)
    如果 mqtt_topic_device my_topic 一样则置空 my_topic

    my_topic为空 不回复

    
        if(strcmp(mqtt_topic_device,(const char*)myArray["my_topic"]) == 0){
            Serial.println("设备topic == my_topic    my_topic置空");
            myArray["my_topic"] = "";
        }
    
    

    • 删除ini配置
    {"my_topic":"","ml":"delete_ini"}
    //删除配置后esp32重启
    

    相关文章

      网友评论

          本文标题:z_esp32

          本文链接:https://www.haomeiwen.com/subject/tgiebqtx.html