一、实现功能
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通过云服务器订阅信息,获得当前环境的温湿度