STM32 作为强大的微控制器,能够精准地读取温湿度传感器的数据。ESP8266 则赋予其便捷的无线网络连接能力,二者协同将温湿度数据上传至阿里云物联网平台。这使得我们可以在任何有网络接入的地方实时获取监测区域的温湿度信息,无论是在智能家居系统中对室内环境进行精确调控,还是在农业生产里掌握温室大棚的气候状况,亦或是工业环境里对特定区域温湿度的监控预警,都提供了高效、精准且自动化的数据采集手段,极大地提升了环境监测的智能化水平。本文主要提供stm32上传温湿度数据至阿里云物联网平台的方法,其余模块上传方法类似。

注意:

1.本文在写的过程中由于时间关系,使用了两天时间来完成,因此在内容上某些数据会有所冲突,如手机热点的密码,二次创建产品导致设备的三要素发生了变化。

2.数据的变化和冲突并不影响整个实现过程,读者在学习的过程中要严格按照自己最初的数据来完成。

所需要的硬件:stm32系列单片机 DHT11温湿度传感器 esp826601s oled屏幕

步骤如下:

1.在阿里云物联网平台创建产品  获取三要素

2.使用MQTTFx测试   三元素转换为MQTT连接的ClientId、用户名、密码

3.给esp8266烧录固件  (难点、关键步骤

4.通过串口调试助手发送指令连接阿里云 (难点、关键步骤、错误最多

详细讲解:

1.创建产品,获取三要素

登录阿里云服务器

ad16c9959297427c82513a5788ae1ee0.png

 

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

bcf75169aca04e17a932b86edf63dc9a.png

 

c29adc93ee294f44b3e782ee7b45257d.png

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

fd768a8c594249fda0ec178733e5a5ff.png

62f594bc782344e680c3167996043ef7.png

6ef15c09a4d445e6a1fffd327b0bbb86.png

c2120770263c47b8831fa96d2b213d1b.png

选择添加自定义功能

1cbd9ad678e2485e9298e26ac1493e2b.png

同样的方式添加湿度

159ddac2cd434c8c8e72a95a52eb9c23.png

也可以添加两个开关

8fa1db4cdc5d41859d555221f0709e6b.png

4e111c00f03d44a991e3ae928c208fb7.png

接下来左下角发布上线

然后同步到设备当中

b0bc5716efd14a9d946fadb2adaa7bf6.png

点击查看,物模型数据,就可以看到我们自定义的功能

 

2.使用mqttfx测试云平台

bb8482463fb44a4997f55338761bf0a0.png

获取这里的信息

新建一个txt文档全部保存下来

f91618a21da9456ab5a38ecc2895e586.png

 

直接粘贴到输入栏就可以了。生成的这个就是连接MQTT服务器所需要的cilent id

打开mqttfx.这里clientld 和productKey最好不要相同。clientld 随便输5位即可。如果两者相同在使用串口助手调试可能会出现失败的现象。

1be8f7ccd84b4b94b7a1bc6d1fe55adf.png

打开MQTTfx

289c5d17558d467291af37968570cf86.png

填写连接信息

d1681eeb61e24a38bc8c57394215c754.png

ff0d439a15964d1096596f94c03d6359.png

bcebe849feb74cd2984b49cfd9cb2836.png

然后连接就可以了

b71f458b98364e48801e81d78c5b661c.png

打开设备查看

fc82be8756b6493daa985d5fa7f219a4.png

现在开始测试:

消息发布主题

/sys/ProductKey/DeviceName/thing/event/property/post

{"params":{"temp":50,"humi":4},"version":"1.0.0"}

现在直接粘贴,注意替换是否正确:

/sys/k0lkygygWAy/DHT11MQ/thing/event/property/post

87befd942951404393243837670789dd.png

 

消息订阅主题

/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

f07fa63372b447e2a225bb2c22518ea5.png

 

发送内容即可在日志中查看到。

 

这一步完成之后说明物联网平台这一块没有问题。

 

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,打开烧录工具

4b4cf46434da4b78bf58b7b538b76316.png

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

66b0a04d610043d7956c8d74d1601c84.png

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

ad928fe885d84d089eb84b96690cdb67.png

接下来选择端口

2b6e8c1c61404ce9a4887be197d3753d.png

接下来测试esp8266,模拟设备给云平台发送消息,为了保证不出错将esp8266的VCC连接到USB TO TTL 的5V

4.打开串口调试助手.发送AT+GMR看是否固件烧录成功。成功则出现版本号等信息。

然后发送AT

77c3a8a15f4c48058ef2298d609ef64f.png

测试成功

发送命令设置热点的格式:

AT+CWMODE=1

接下来连接手机热点:让wifi模块连接到网络

AT+CWJAP="OPPO","t8qah9cu"

c0f9b1af290f4ef0b62b9286abe44c9f.png

测试连接阿里云(最常出错)

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生成

dca8cad5b5b84866a279ed6c5da8336a.png

继续:

AT+MQTTCONN=0,"k0lkylV6CQI.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,0

(k0lkylV6CQI就是productkey)

6883eee7df554b198e389e5aeae6d5ae.png

接下来订阅

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

904bd21b89c243fba4c3ed4b7907fe09.png

 

以上测试成功。

完成这一步就可以写stm32中的程序了:

10c79140d65a4e419791cfa8f0cec362.png

 

实验现象:

52423a286f594f819c2d9aed60eeabfd.jpeg

70e5fea60cc2498998a6b3ed11061e89.png

 

希望大家在初学这一块时一定要有信心和耐心,两三次出错是很正常的。

当学会了这个就会做很多项目了,比如基于物联网的智能家居、农业大棚、工厂监测等项目。如果在做的过程中出现问题可以给我发私信我们共同解决。

 

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐