摘要: 本文将手把手教你搭建一个完整的物联网数据监控平台,使用STM32采集温湿度数据,通过ESP8266 WiFi模块上传至Linux服务器,并利用Python脚本将数据存储到MySQL数据库,最后实现每日平均值的计算和可视化展示。
关键词: STM32, ESP8266, Linux, MySQL, 物联网, 温湿度传感器, 数据可视化
一、系统架构
本项目采用典型的物联网三层架构:
- 感知层: STM32单片机读取DHT11温湿度传感器数据,并通过ESP8266 WiFi模块发送至服务器。
- 网络层: ESP8266连接路由器,将数据传输至公网IP的Linux服务器。
- 应用层: Linux服务器上的Python脚本接收数据,并存储到MySQL数据库。同时,脚本还会计算每日平均值,并提供简单的可视化图表。
二、硬件准备
- STM32开发板
- DHT11温湿度传感器
- ESP8266 WiFi模块
- 杜邦线若干
三、软件准备
- STM32CubeMX
- Keil MDK
- Putty
- Xshell
- MySQL
- Python 3.x
- Navicat for MySQL (可选)
四、STM32端开发
4.1 使用STM32CubeMX配置工程
- 新建工程,选择STM32F103C8T6芯片。
- 配置RCC时钟源为外部晶振。
- 配置GPIO引脚,用于DHT11数据读取和ESP8266通信。
- 配置USART1用于与ESP8266通信。
- 生成Keil MDK工程代码。
4.2 编写STM32代码
// DHT11数据读取函数
void DHT11_Read_Data(float *temperature, float *humidity);
// ESP8266数据发送函数
void ESP8266_Send_Data(char *data);
int main(void)
{
// 初始化
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
DHT11_Init();
float temperature, humidity;
char data[50];
while (1)
{
// 读取DHT11数据
DHT11_Read_Data(&temperature,