STM32+ESP8266上传温湿度数据到阿里云物联网平台的方法
这使得我们可以在任何有网络接入的地方实时获取监测区域的温湿度信息,无论是在智能家居系统中对室内环境进行精确调控,还是在农业生产里掌握温室大棚的气候状况,亦或是工业环境里对特定区域温湿度的监控预警,都提供了高效、精准且自动化的数据采集手段,极大地提升了环境监测的智能化水平。3V3-------------------------VCC(经过测试5V/3v3都可以完成烧录)2.数据的变化和冲突并不影响
STM32 作为强大的微控制器,能够精准地读取温湿度传感器的数据。ESP8266 则赋予其便捷的无线网络连接能力,二者协同将温湿度数据上传至阿里云物联网平台。这使得我们可以在任何有网络接入的地方实时获取监测区域的温湿度信息,无论是在智能家居系统中对室内环境进行精确调控,还是在农业生产里掌握温室大棚的气候状况,亦或是工业环境里对特定区域温湿度的监控预警,都提供了高效、精准且自动化的数据采集手段,极大地提升了环境监测的智能化水平。本文主要提供stm32上传温湿度数据至阿里云物联网平台的方法,其余模块上传方法类似。
注意:
1.本文在写的过程中由于时间关系,使用了两天时间来完成,因此在内容上某些数据会有所冲突,如手机热点的密码,二次创建产品导致设备的三要素发生了变化。
2.数据的变化和冲突并不影响整个实现过程,读者在学习的过程中要严格按照自己最初的数据来完成。
所需要的硬件:stm32系列单片机 DHT11温湿度传感器 esp826601s oled屏幕
步骤如下:
1.在阿里云物联网平台创建产品 获取三要素
2.使用MQTTFx测试 三元素转换为MQTT连接的ClientId、用户名、密码
3.给esp8266烧录固件 (难点、关键步骤)
4.通过串口调试助手发送指令连接阿里云 (难点、关键步骤、错误最多)
详细讲解:
1.创建产品,获取三要素
登录阿里云服务器

点击控制台--->拓展,找到物联网平台


点到设备管理-->产品,创建一个新的产品




选择添加自定义功能

同样的方式添加湿度

也可以添加两个开关


接下来左下角发布上线
然后同步到设备当中

点击查看,物模型数据,就可以看到我们自定义的功能
2.使用mqttfx测试云平台

获取这里的信息
新建一个txt文档全部保存下来

直接粘贴到输入栏就可以了。生成的这个就是连接MQTT服务器所需要的cilent id
打开mqttfx.这里clientld 和productKey最好不要相同。clientld 随便输5位即可。如果两者相同在使用串口助手调试可能会出现失败的现象。

打开MQTTfx

填写连接信息



然后连接就可以了

打开设备查看

现在开始测试:
消息发布主题
/sys/ProductKey/DeviceName/thing/event/property/post
{"params":{"temp":50,"humi":4},"version":"1.0.0"}
现在直接粘贴,注意替换是否正确:
/sys/k0lkygygWAy/DHT11MQ/thing/event/property/post

消息订阅主题
/sys/ProductKey/DeviceName/thing/service/property/set
/sys/ProductKey/DeviceName/thing/service/property/good
注意替换是否正确:
/sys/k0lkygygWAy/DHT11MQ/thing/service/property/set
/sys/k0lkygygWAy/DHT11MQ/thing/service/property/good

发送内容即可在日志中查看到。
这一步完成之后说明物联网平台这一块没有问题。
3.给esp8266烧录固件(这一步一定要保证烧录到与硬件flash对应的固件)给esp8266烧录带有MQTT功能的固件
硬件连接esp8266----usb TO TTL
上电前将要让ESP8266的I0_0接地;IO_0接地为下载固件,悬空为工作模式.连接方式为:
串口转USB ESP
3V3-------------------------VCC(经过测试5V/3v3都可以完成烧录)
TXD-------------------------RXD
RXD-------------------------TXD
GND-------------------------GND
GND--------------------------IO_0
连接esp8266,打开烧录工具

勾选第一行,选择固件的路径(这一步很重要,否则不会成功烧录固件)

选择固件并且写烧写地址。固件可在安信可官网去下载(资源分类 | 安信可科技)

接下来选择端口

接下来测试esp8266,模拟设备给云平台发送消息,为了保证不出错将esp8266的VCC连接到USB TO TTL 的5V
4.打开串口调试助手.发送AT+GMR看是否固件烧录成功。成功则出现版本号等信息。
然后发送AT

测试成功
发送命令设置热点的格式:
AT+CWMODE=1
接下来连接手机热点:让wifi模块连接到网络
AT+CWJAP="OPPO","t8qah9cu"

测试连接阿里云(最常出错)
AT+MQTTUSERCFG=0,1,"MQTT11|securemode=2\,signmethod=hmacsha1\,timestamp=1734160271970|","y3CvntcD3noKitNaQyoS&k0lkylV6CQI","DD4A211172452C33F09456113DB4A13CB980460B",0,0,""
该命令的组成:AT+MQTTUSERCFG=0,1+mqttClientId(逗号前面要有反斜杠)+username+password 由mqtt_password生成

继续:
AT+MQTTCONN=0,"k0lkylV6CQI.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,0
(k0lkylV6CQI就是productkey)

接下来订阅
AT+MQTTSUB=0,"/sys/k0lkylV6CQI/y3CvntcD3noKitNaQyoS/thing/service/property/set",0
组成:
(ProductKey+DeviceName)
显示OK
发布数据
AT+MQTTPUB=0,"/sys/k0lkylV6CQI/y3CvntcD3noKitNaQyoS/thing/event/property/post","{\"params\":{\"Humidity\":30\,\"temperature\":20}\,\"version\":\"1.0.0\"}",0,0

以上测试成功。
完成这一步就可以写stm32中的程序了:

实验现象:


希望大家在初学这一块时一定要有信心和耐心,两三次出错是很正常的。
当学会了这个就会做很多项目了,比如基于物联网的智能家居、农业大棚、工厂监测等项目。如果在做的过程中出现问题可以给我发私信我们共同解决。
更多推荐



所有评论(0)