当前位置:   article > 正文

一种STM32F1系列+ESP8266使用MQTT连接阿里云的方法_stm32中at+mqtt

stm32中at+mqtt

摘要:本文讲述一种使用STM32F103C8T6控制器+ESP8266使用MATT连接阿里云的方法,可以搭配这篇文章中的云Web或移动开发,实现物联网功能并在电脑网页或手机网页让硬件的数据可视化,实验时间2022年5月21日。

【1】MQTT连接指令如下,使用串口助手电脑直接连接ESP8266发送一下代码可以连接到阿里云上面,这次我们要用STM32F103C8T6控制器对ESP8266发出一下指令,这些指令的内容阿里云中已经给出了,具体解释请见下面链接:一种ESP8266使用MQTT连接阿里云和云Web方法_@于千的博客-CSDN博客_esp8266 mqtt连接

  1. AT+RST
  2. AT+CWMODE=1
  3. AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
  4. AT+CWJAP="HONOR30Pro","123456789"
  5. AT+MQTTUSERCFG=0,1,"NULL","esp8266A&a12YPHONE7S","642715e19fdbedec9b88dc2d50800a9c10cbd7d7145a54d0755373305d",0,0,""
  6. AT+MQTTCLIENTID=0,"a12YPHONE7S.esp8266A|securemode=2\,signmethod=hmacsha256\,timestamp=1649410494149|"
  7. AT+MQTTCONN=0,"a12YPHONE7S.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
  8. AT+MQTTSUB=0,"/sys/a12YPHONE7S/esp8266A/thing/service/property/set",1
  9. AT+MQTTPUB=0,"/sys/a12YPHONE7S/esp8266A/thing/event/property/post","{\"id\":1649429569996\,\"params\":{\"CurrentTemperature\":41}\,\"version\":\"1.0\"\,\"method\":\"thing.event.property.post\"}",1,0
  10. AT+MQTTPUB=0,"/sys/a12YPHONE7S/esp8266A/thing/event/property/post","{\"id\":1649475904347\,\"params\":{\"AirConPowerConsumption\":50\,\"AirConVolt\":80\,\"RunTimes\":100}\,\"version\":\"1.0\"\,\"method\":\"thing.event.property.post\"}",1,0

但是我们在STM32中放入的串口指令并不能直接COPY上面的代码,因为C语言在字符串中的一些特殊字符需要改变比如"  变为\" ,\变为\\。所以在工程代码中发送的指令已经更改。

【2】下面介绍我的工程代码如何移植其他工程中,首先把esp8266.c、esp8266.h、mqtt.c、mqtt.h添加到你的工程里面,如下图:

 

【3】接下来,连接参数我设置在mqtt.h中,打开如下图。按照按时修改,把WiFi换成你的,把MQTT连接参数换成你的,还有你的MQTT订阅主题的地址。

【4】修改好以后就可以在main函数中初始化ESP8266了,把ESP8266_Init(115200);添加到main函数中去,事实上这是串口2的初始化。

【5】下一步,添加ESP8266_STA_MQTTClient_Test();函数到main函数中,这个函数的执行就是把上面的MQTT连接指令从串口2中发送出去,如果上面的修改是严格按照规定操作的,这个函数运行完ESP8266就已经连接到阿里云了。

【6】阿里云的设备已经在线,这时候来使用ESP8266_MQTTPUB_ME(A,B,C,D,E,F,G);函数,其中入口参数为char型,一种int型、float型转char型以及回转方法_@于千的博客-CSDN博客,所以无论想要发送什么数据都要转为char型来发送,而在阿里云添加的物模型数据可以是任意格式,这之间没有冲突,如下图:

 通常先int、float一个变量,当控制器检测到数据时,赋值给它,再把它转换为char型的字符串A、B、C等等,在执行ESP8266_MQTTPUB_ME(A,B,C,D,E,F,G);函数,数据就被发送到阿里云上啦!

链接:mqtt.c mqtt.h
提取码:0723

链接:esp8266.c esp8266.h
提取码:0723

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/806702
推荐阅读
相关标签
  

闽ICP备14008679号