stm32+esp8266+阿里云平台的连接的全流程(手把手教学,附上优质资料和源码)

636 阅读6分钟

前言

本篇文章会详细介绍MQTT协议,esp8266通过stm32单片机发送AT指令连接上阿里云平台,并有搭建阿里云平台的全部过程,以及收发平台数据的stm32工程源码。

一、本篇文章所用的硬件软件

1.esp8266(MQTT固件),这个一定要买带有MQTT固件的,有些不支持MQTT固件烧录,
    因为其FLASH太小了。
2.stm32vet6野火指南者
3.阿里云平台
4.MQTT.fx软件
5.串口助手和串口CH340

esp8266淘宝购买链接:【淘宝】m.tb.cn/h.g5zFnpM?t… HU0854 「WiFi模块 ESP8266串口转WiFi/无线透传/DIP封装/安信可/ESP-01S」 点击链接直接打开 或者 淘宝搜索直接打开

二、MQTT协议

这里引荐太极创客的官网教学了解一下MQTT协议的传输数据的方式。 【太极创客】零基础入门学用物联网 - MQTT篇 1-2 MQTT基本原理_哔哩哔哩_bilibili
可以大致了解到MQTT通过客户端,服务器端通过发布订阅的消息模式进行通信的。而其中的"主题"就是连接两节点的方式。发布主题,订阅主题来达到传输数据的目的。

三、esp8266进行测试

首先要确定esp8266(MQTT固件)是否带有MQTT固件,若无固件,去百度搜索下载烧录。然后通过串口助手,输入AT进行测试。串口助手一定要勾选发送新行配置。

image.png

四、esp8266+串口助手连接到公网EMQ,并用MQTT.fx软件模拟另一个客户端也连接到公网进行与esp8266通信(熟悉整个连接过程和MQTT协议进行通信过程)

可以用手机的wifi热点使得esp8266联网。然后引荐下面的文章使完成连接公共服务器操作
ESP8266-01S连接MQTT服务器_at+mqttpub=0-CSDN博客
MQTT AT 命令集 - ESP32 - — ESP-AT 用户指南 latest 文档 (espressif.com)
这一段为连接公共服务器的过程 image.png

  • 4.进行通信测试

1.esp8266进行发送(AT+MQTTSUB=0,“esp8266_topictest”,0)(Subscription_Topic为主题,填写主题名称)。订阅主题

2.MQTT.fx发布消息 image.png

即可在串口助手接收到“你好,esp8266”的内容

3.还可以进行MQTT订阅主题,esp8266发布消息,这个可以自行测试

总结:这样我们即就完成了esp8266和公共服务器的连接,并了解了MQTT协议的订阅发布的消息模式。

五、MQTT连接阿里云服务器和搭建阿里云服务器

阿里云MQTT服务器搭建与测试(全图文,非常详细)-CSDN博客
总结:通过这一过程,可以了解到连接公共服务器和私立服务器的差别。了解阿里云平台是如何作为服务器的,且知道了其中的设备名,设备密码的获取流程,还有其中订阅发布上传到平台的数据是通过JSON格式发送数据接收数据的。\ 该文章只讲了上传平台,和平台下发给客户端进行通信的过程,其原理也是MQTT。阿里云也是一个服务器,也可以作为两个客服端连接的过程,客户端之间发送数据也是MQTT。

六、stm32+esp8266+AT+阿里云平台(含源码)

这里由于平台的数据格式符合JSON格式。stm32将JSON格式的数据上传给平台,对于平台下发的JSON格式的数据也要回解析。所以这里了解一下json格式和c语言的json包
cJSON库使用_cjson_createobject-CSDN博客
STM32使用cJSON库,处理json格式数据_stm32 cjson-CSDN博客

附上源代码。工程可以同时接收平台数据,和上传数据给平台
链接:pan.baidu.com/s/1Xq6OPZzF…
提取码:zxcv

七、引荐的文章汇总

【太极创客】零基础入门学用物联网 - MQTT篇 1-2 MQTT基本原理_哔哩哔哩_bilibili

mqtt.fx | 一款超级好用的Mqtt客户端软件(下载、安装、使用详解)-CSDN博客

ESP8266-01S连接MQTT服务器_at+mqttpub=0-CSDN博客

MQTT AT 命令集 - ESP32 - — ESP-AT 用户指南 latest 文档 (espressif.com)

阿里云MQTT服务器搭建与测试(全图文,非常详细)-CSDN博客

cJSON库使用_cjson_createobject-CSDN博客

STM32使用cJSON库,处理json格式数据_stm32 cjson-CSDN博客

可参考文章

【物联网】手把手完整实现STM32+ESP8266+MQTT+阿里云+APP应用——第1节-阿里云配置+MQTT.fx模拟与使用AT命令发布订阅消息_stm32接esp8266-CSDN博客

番外篇:让阿里云只作为服务器媒介,两个设备均接入服务器,然后两者通讯

1.明白产品和设备的意义。首先一个产品可以由多个设备组成(多个模块组成),一个设备只为某一个物理设备服务(就是说一个设备只能接入一个客户端)。
2.那要两个客户端进行通讯,借助阿里云服务器的话。
    信息就是如下的流转流程:
cilent1(发布)->topic1->servic1->流转->servic2->topic2->cilent2(订阅)

3.阿里云上传平台数据的几种形式:
    1.物模型通讯
    2.自定义topic
    3.基础通信topic

(24新版)使用MQTT协议在阿里云上模拟两个设备的通信(小白手把手教程)_模拟mqtt通讯-CSDN博客

image.png

python 连接阿里云服务器

首先需要下载两个包:

pip install aliyun-iot-linkkit
pip install paho-mqtt==1.4.0

注意:这样下载aliyun-iot-linkkit是最新版,但不要下载高版本paho-mqtt,会有问题

然后参考下列文章就可以实现连接阿里云并且可以互相通信了
用python通过MQTT协议去连接阿里云来实现数据的上下交互(并将得到的云上数据发送到某人的QQ邮箱中)_硬件设备通过mqtt协议将数据存储到阿里云服务器,我怎么实时获取阿里云服务器上的-CSDN博客