基于 STM32 的地温监测与报送系统
·
基于 STM32 的地温监测与报送系统设计
精准农业要求对土壤温度变化进行长期、连续的监测。本文设计一种基于 STM32F103C8T6 的地温监测与报送系统,整合 DHT11 温度采集、ESP8266 无线传输与 OLED12864 本地显示,并通过 MQTT 协议将数据上报到云端服务器,使农业工作者能够远程查看土壤温度曲线并据此指导种植活动。
一、系统功能总览
| 功能编号 | 功能名称 | 说明 |
|---|---|---|
| F1 | 地温采集 | DHT11 测量土壤温度 |
| F2 | 实时显示 | OLED12864 显示当前温度 |
| F3 | 阈值报警 | 温度越界蜂鸣器报警 |
| F4 | MQTT 上报 | ESP8266 + 阿里云 IoT |
| F5 | 历史曲线 | 云端生成温度变化曲线 |
| F6 | 远程配置 | APP / 网页下发阈值 |
| F7 | 太阳能供电 | 配合 5 V 太阳能板与锂电池 |
二、核心模块选型对比
2.1 主控模块选型
| 方案 | 型号 | 备注 |
|---|---|---|
| 方案 1 | STM32F103C8T6 | 主频 72 MHz / 64 KB / 20 KB |
| 方案 2 | 51 STC89C52 | 资源紧张、低功耗实现复杂 |
选择方案 1:需要驱动 MQTT、OLED 与 ESP8266。
2.2 温度模块选型
| 方案 | 型号 | 接口 |
|---|---|---|
| 方案 1 | DHT11 | 单总线 |
| 方案 2 | DS18B20(防水型) | 单总线、量程更宽 |
选择方案 1:DHT11 单总线接线简单、量程契合本场景。如果需要更宽量程可替换为 DS18B20 防水型。
2.3 无线模块选型
| 方案 | 模块 | 优势 |
|---|---|---|
| 方案 1 | ESP8266 | 直连 Wi-Fi、AT 指令简洁 |
| 方案 2 | SIM800(4G) | 无需 Wi-Fi,但流量成本高 |
选择方案 1:田间一般有 Wi-Fi 覆盖时更经济。
2.4 显示模块选型
| 方案 | 模块 | 说明 |
|---|---|---|
| 方案 1 | OLED12864 | 文本清晰 |
| 方案 2 | LCD1602 | 文字有限 |
选择方案 1:在小尺寸下显示更多信息。
三、系统接线总表
| 模块 | 引脚 | 单片机端 | 备注 |
|---|---|---|---|
| DHT11 | VCC/GND/DATA | 3.3 V / GND / PA1 | 防水探头,4.7 kΩ 上拉 |
| OLED12864 | VCC/GND/SCL/SDA | 3.3 V / GND / PB6 / PB7 | I2C |
| ESP8266 | VCC/GND/TX/RX/CH_PD/RST | 3.3 V / GND / PA10/PA9/3.3 V/PA11 | UART |
| 蜂鸣器 | +/- | PB5 / GND | 三极管 |
| 太阳能板 | +/- | 5 V 控制器 / GND | 锂电池储能 |
四、系统软件设计
4.1 主程序流程
int main(void)
{
SystemInit();
DHT11_Init();
OLED_Init();
ESP8266_Init();
ESP8266_JoinAP("ssid", "pwd");
MQTT_Connect("aliyun");
while (1)
{
float t = DHT11_Read();
OLED_ShowTemp(t);
MQTT_Publish("field/temp", String(t));
if (t < TEMP_LO || t > TEMP_HI) Beep_Alarm();
delay_ms(5000);
}
}
4.2 单总线协议
DHT11 主机拉低 18 ms → 释放 → 30 μs 后等待响应 → 串行读取 40 位 → 校验后返回温度。
4.3 MQTT 通信
使用 AT+CIPSTART 建立 TCP 长连接 → AT+CIPSEND 透传模式 → 发送 CONNECT 报文 → 订阅 / 发布主题 field/temp。
五、系统实现与测试
5.1 硬件焊接与测试
将防水探头插入土壤中,深度 10 cm;ESP8266 天线部分朝上放置以获得更佳信号。
5.2 软件调试
Keil 5 + ST-Link;通过串口日志显示每条 MQTT 报文。
5.3 功能测试结果
| 测试项目 | 操作 | 结果 |
|---|---|---|
| 温度采集 | 室温与地温互比 | 偏差 ≤ ±2 ℃ |
| 续航 | 1000 mAh 锂电池 | 约 5 天 |
| 远程上报 | 网络断开重连 | 1 min 内恢复 |
| 阈值报警 | 设置 15 ℃ 报警 | 越限蜂鸣器响应 |
六、总结
本文围绕 STM32F103C8T6 构建了一套实用化的地温采集与上报系统,整合 DHT11、ESP8266、OLED 等模块,结合 MQTT 协议实现了云端实时同步。整套方案电路简单、结构紧凑,可广泛应用于农田、果园、苗圃等场景,也为高职院校嵌入式与物联网课程提供了一个易复刻的工程参考。
七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式

更多推荐


所有评论(0)