基于STM32F103C8T6单片机和DHT11温湿度传感器,通过CC2530ZigBee无线模块和ESP8266WIFI模块将温湿度上传至云服务器,实现Linux实时监测温湿度
一、实现功能
1.功能概括
利用温湿度传感器测得当前环境的温湿度,通过STM32单片机以及WIFI模块将数据上传云服务器,用Linux去订阅云服务器收到的环境温湿度。
2.分析过程
两个CC2530ZigBee无线模块,一个连接DHT11温湿度传感器充当终端设备的“传感器”,另一个CC2530ZigBee无线模块充当终端设备的“协调器”。
充当终端设备的“传感器”的CC2530ZigBee无线模块测得当前环境的温湿度,发送到充当终端设备的“协调器”的CC2530ZigBee无线模块。“协调器”通过写串口的方式,将收到的数据发送到STM32,STM32收到数据后将数据通过ESP8266WIFI模块以MQTT的通信方式将数据发布到云服务器,Linux通过云服务器订阅某种主题的信息收到当前环境的温湿度。
二、硬件准备
1.所需硬件
一个STM32F103C8T6单片机、一个DHT11温湿度传感器、两个CC2530ZigBee无线模块(下载器)、一个ESP8266WIFI模块(下载器)、各设备供电线、USB转TTL(可选,用于测试)
STM32F103C8T6

DHT11

CC2530ZigBee无线模块

ESP8266WIFI模块

三、软件准备
1.所需软件
IAR Embedded Workbench

STM32CubeMX

keil uvision5

串口调试助手

![]()
四、具体实现
1.一个CC2530ZigBee无线模块连接DHT11温湿度传感器充当终端设备的“传感器”

2.另一个CC2530ZigBee无线模块充当终端设备的“协调器器”

3.“传感器”采集数据发送到“协调器”

4.“协调器”接收“传感器”发送的数据,并且将数据发送到STM32
5.测试:“协调器”通过USB方口线连接电脑,打开串口调试助手测试是否能收到传感器发送来的温湿度

6.用STM32CubeMX定义串口,生成可执行的keil uvision5文件










7.CC2530ZigBee无线模块(协调器)、STM32F103C8T6单片机、ESP8266WIFI模块原理图,以及线路连接
CC2530ZigBee无线模块串口原理图

STM32F103C8T6原理图

ESP8266原理图

线路连接:P0_2—PA9 P0_3—PA10 PA2–D6 PA3—D5
8.STM32通过串口接收“协调器”发送来的数据,将收到的数据发送到ESP8266WIFI模块



9.ESP8266模块接收STM32发来的数据,将数据发送到云服务器


10.Linux通过云服务器订阅信息,获得当前环境的温湿度

作者:成为你的Bug
