ESP8266上传阿里云平台超详解附带stm32代码

 

一、开发工具准备

  1. esp8266

  2. MQTT固件

  3. 安信可串口调试助手

  4. wifi烧录工具

安信可官网:

https://docs.ai-thinker.com/

开发工具下载:

https://docs.ai-thinker.com/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B72

  • 固件烧录工具

  • 串口调试助手

  • 22fcc57a4e014728a0a056d8a8aa3ecf.png

    AT指令使用事例

    https://docs.ai-thinker.com/esp8266/examples/at_demo

    二、固件烧录

    需要下载mqtt固件才能连接阿里云

    mqtt固件下载:

    https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB

    809aed0945034ce5a6478d7c62a4f927.png

    87bb09f9c9e745aebe5127d63accfed9.png

    b50ae6e7b2f54151aa02d908ce927c35.png

  • 硬件接线

  • ESP8266-01S USB转TTL
    VCC VCC
    RXD TXD
    TXD RXD
    GND GND
    IO0 GND

    三、AT指令

  • 初始配置和验证

  • ESP-01s出厂波特率正常是115200, 注意:AT指令,控制类都要加回车,数据传输时不加回车 上电后,通过串口输出一串系统开机信息,购买的部分模块可能电压不稳,导致乱码,以准ready

    72456660addb4e639cb2d0e8566714fd.png

  • 测试通信及模块功能是否正常

  • 上电后发送AT指令

    发送AT指令,返回结果一般都是AT指令加+返回状态

    //指令
    AT   
    
    //结果
    AT 
                
    OK       
  • 配置成115200波特率

  • //指令
    AT+UART=115200,8,1,0,0
    
    //结果
    AT+UART=115200,8,1,0,0
    
    OK

    入网设置

  • 设置工作模式

  • //指令
    AT+CWMODE=3    //1. 是station(设备)模式  
                   //2. 是AP(路由)模式 
                   //3. 是双模 
    OK             //结果
    
    //结果
    AT+CWMODE=3
    
    OK          
  • 以设备模式接入家中路由器配置

  • //指令 
    AT+CWJAP="iQOO","88888888"    
    
    //结果
    AT+CWJAP="iQOO","88888888"
    WIFI CONNECTED                
    WIFI GOT IP                   
    
    OK                            
  • 使能上电自动连接AP

  • //指令 
    AT+CWAUTOCONN=1   
    
    //结果
    AT+CWAUTOCONN=1  
    
    OK 
  • 查询IP地址

  • //指令 
    AT+CIFSR           
    
    //结果 
    AT+CIFSR
    +CIFSR:STAIP,"192.168.93.223"
    +CIFSR:STAMAC,"34:94:54:8a:b6:83"
    
    OK        
  • 连接TCP server

  • //指令,注意双引号逗号都要半角(英文)输入 
    AT+CIPSTART="TCP","api.seniverse.com",80 
    
    //结果
    AT+CIPSTART="TCP","api.seniverse.com",80
    CONNECT
    
    OK
  • 发送数据

  • AT+CIPSEND=4         // 设置即将发送数据的长度 (这里是4个字节) 
    >CLCA                // 看到大于号后,输入消息,CLCA,不要带回车 
    Response :SEND OK    //结果:成功 
    //注意,这种情况下,每次发送前都要先发送AT+CIPSEND=长度 的指令,再发数据!
  • 透传

  • 如果设置成透传,就有点像蓝牙模块的玩法

    //指令开启透传模式
    AT+CIPMODE=1  
    
    //结果
    AT+CIPMODE=1
    
    OK
    
    //指令
    AT+CIPSEND
    //结果
    AT+CIPSEND
    
    OK
    
    >
  • 退出透传模式

  • +++     //在透传发送数据过程中,若识别到单独的⼀包数据 “+++”,则退出透传发送
  • GET请求

  • GET https://api.seniverse.com/v3/weather/daily.json?key=SaOaDLqgZPYeZREfM&location=beijing&language=zh-Hans&unit=c&start=0&days=5

    四、生活物联网平台(飞燕平台)

    1.创建产品和设备

    eaf8a8bb4d4c4edea08acfa6c9e718a1.png

    创建项目名称

    d796dbd5c2dd4b69af4b2d9986fa6d1a.png

    选择网关设备

    7c7957ac132d43a19de07960cf3cae6c.png

    选择蜂窝连接

    7e10120ecf9945a5943e05bec1326adf.png

    添加定义功能

    742091c47de145b5901de23c85d6fbdc.png

    人机交互选择云智能APP

    f6b5fce6b1e3422997685e9e99ad1660.png

    选择产品品牌

    42151c1fea8c47c59845c8db76600655.png

    设备平板创建空白面板

    7535e78c7b12475cb3c6f5e9cd5ce529.png

    创建ui界面,保存后退出

    e13f192c59c447b1b6a39f93525a2a5c.png

    回到设备面板,选择刚刚创建界面

    2d4af385d9a14b6e84e49fabb3fe6b96.png

    先获取模板

    223dfb70da6d4f0987dd0bb5579df564.png

    选择一个模板下载后上传说明书

    068dbfcaf201487db1bbf7e25ff2d41b.png

    在设备调试菜单新增测试设备ESP8266

    589f03136e144511b706afaf16914a22.png

    找到物联网平台页面,可以看到创建了新的设备ESP8266,此时还没有激活,需要配置mqtt连接

    6c3617c5fd2c4eebb448c33b5b69a287.png

    2.配置mqtt连接

    1.复位模块

    发送AT+RST

    注意还需要连接wifi

    AT+CWMODE=1

    AT+CWJAP="wifi","passward"

    2.设置MQTT属性

    发送AT+MQTTUSERCFG=0,1,"NULL","username","passward",0,0,""

    664fd6eb21f94d6785fec168e63ca95e.png

    //指令
    AT+MQTTUSERCFG=0,1,"NULL","ESP8266&a18lHeoVMqB","30c793918d51850dc8d26af2f1fff03b03d96c1e0e9a7268fd1428fbf8564e49",0,0,""
    
    //结果
    AT+MQTTUSERCFG=0,1,"NULL","ESP8266&a18lHeoVMqB","30c793918d51850dc8d26af2f1fff03b03d96c1e0e9a7268fd1428fbf8564e49",0,0,""
    
    OK

    3.设置MQTT 客户端ID

    上图客户端ID

    发送AT+MQTTCLIENTID=0,"ClienID"

    注意!!要在ID信息每一个”,“前加”\“进行转义!!!

    //指令
    AT+MQTTCLIENTID=0,"a18lHeoVMqB.ESP8266|securemode=2\,signmethod=hmacsha256\,timestamp=1735974385152|"
    
    //结果
    AT+MQTTCLIENTID=0,"a18lHeoVMqB.ESP8266|securemode=2\,signmethod=hmacsha256\,timestamp=1735974385152|"
    
    OK
    

    单片机发送还需对'\'进行转义

    4.设置域名

    上图域名

    AT+MQTTCONN=0,"域名",1883,1

    //指令
    AT+MQTTCONN=0,"a18lHeoVMqB.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
    
    //结果
    AT+MQTTCONN=0,"a18lHeoVMqB.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
    +MQTTCONNECTED:0,1,"a18lHeoVMqB.iot-as-mqtt.cn-shanghai.aliyuncs.com","1883","",1
    
    OK

    注意输出结果可能错误,

    AT+MQTTCONN=0,"a18lHeoVMqB.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
    +MQTTDISCONNECTED:0
    
    ERROR

    这个界面可能会刷新,重新前面配置

    e30b6f55044141ec82b3bf8e48f3562f.png

    5.数据上报

    发送AT+MQTTPUB=0,"发布topic","Json格式内容",1,0

    json数据格式:{\"params\":{\"标识符\":你想要设置的数值}}

    //指令
    AT+MQTTPUB=0,"/sys/a18lHeoVMqB/ESP8266/thing/event/property/post","{\"params\":{\"humidity\":10}}",1,0
    
    //结果
    AT+MQTTPUB=0,"/sys/a18lHeoVMqB/ESP8266/thing/event/property/post","{\"params\":{\"humidity\":10}}",1,0
    
    OK

    如果多个属性,用逗号分隔,并且需要对','进行转义; 如:

    AT+MQTTPUB=0,"/sys/a18lHeoVMqB/ESP8266/thing/event/property/post","{\"params\":{\"humidity\":100\,\"temperature\":17}}",1,0

    7192a568a0d74a959d3be629294417c7.png

    stm32发送注意加"\"进行转义,注意3个'\\\'

    printf("AT+MQTTPUB=0,\"/sys/a1b9cm1kjYq/esp8266/thing/event/property/post\",\"{\\\"params\\\":{\\\"LEDSwitch\\\":1}}\",1,0\r\n");
    printf("AT+MQTTPUB=0,\"/sys/a1b9cm1kjYq/esp8266/thing/event/property/post\",\"{\\\"params\\\":{\\\"humidity\\\":%.1f\\\,\\\"temperature\\\":%.1f}}\",1,0\r\n", humidity, temperature);

    3.连接APP

    回到人机交互页面下载配网二维码,智能云APP扫描二维码

    4e3bf05ec7584f9494a47d3d8a809ea8.png

    f9f92a9c5b904d6fbedadb6bd7f89aca.png

    点击云智能APP开关,可以收到消息

    9795b94372e041b2b20b0e7296bf476e.png

    4.运行效果

    05f960e0633f40a082a2a50a7afdefd5.png

    9b435e04108943108a5b317c986d0427.png

    9f67473ae71344709e26101f239e58e4.png五、资料获取

    代码部分展示

    采用面向对象编程,移植性强,采用串口空闲中断+DMA进行数据接受效率高

    5e8ff699521f4758a8a7b3df545d8cb8.png

    https://m.tb.cn/h.T7p93MW?tk=nlFwebfRE22 MF3543

     

     

     

     

     

    作者:ryh~

    物联沃分享整理
    物联沃-IOTWORD物联网 » ESP8266上传阿里云平台超详解附带stm32代码

    发表回复