1. 项目概述与背景
作为一名在嵌入式系统领域摸爬滚打多年的工程师,我最近完成了一个极具实用价值的猪舍环境监控系统设计。这个项目源于我走访多个养殖场时的真实观察——传统养殖场环境管理完全依赖人工巡检,不仅效率低下,还经常因响应不及时导致生猪患病。这套系统通过STM32单片机整合多种环境传感器,实现了对猪舍环境的24小时无人值守监控。
系统核心功能包括:
- 实时监测温湿度(DHT11传感器)
- 检测有害气体浓度(SGP30测CO₂,MQ-135测氨气)
- 光照强度检测(BH1750传感器)
- 超标自动报警(声光报警器)
- 自动调节环境(继电器控制风机和照明)
- 远程监控(ESP8266 WiFi模块)
关键设计理念:采用模块化设计,每个功能单元独立工作又通过主控协同,确保系统稳定性的同时便于后期功能扩展。比如未来可以很方便地加入饲料投喂、饮水监测等模块。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件设计详解
2.1 主控模块选型
选择STM32F103C8T6作为主控芯片主要基于三点考量:
- 性价比:20元左右的售价,却拥有72MHz主频和64KB Flash,远超同价位51单片机
- 外设丰富:自带12位ADC、多个定时器和USART接口,完美适配多传感器接入
- 开发便利:成熟的STM32CubeMX工具链和丰富库函数支持
实际使用中需要注意:
- 时钟树配置要准确,特别是使用外部8MHz晶振时
- 调试建议使用SWD接口,比JTAG占用更少IO口
- 供电电压严格控制在3.3V,避免烧毁芯片
2.2 传感器模块设计
2.2.1 温湿度监测
采用DHT11数字传感器,虽然精度(±2℃)不如更贵的SHT30,但胜在:
- 单总线通信,节省IO资源
- 自带校准,无需额外电路
- 响应速度快(2秒刷新)
接线时注意上拉电阻(4.7KΩ)必须靠近传感器端,否则可能通信失败。
2.2.2 气体检测
CO₂检测选用SGP30数字传感器,相比模拟输出的MH-Z19:
- I²C接口,布线简单
- 内置温补算法
- 功耗仅12mA
氨气检测使用MQ-135模拟传感器,需要特别注意:
- 预热时间至少24小时
- 需要定期校准(建议每周一次)
- 要设计分压电路匹配STM32的ADC输入范围
