当前位置: 首页 > news >正文

STM32智能猪舍环境监控系统设计与实现

基于STM32的智能猪舍环境监控系统设计与实现

1. 项目概述

1.1 系统背景

现代养殖业正经历从传统人工管理向智能化、自动化方向的转型。在生猪养殖领域,环境参数如温湿度、空气质量、光照强度等对猪只健康生长具有决定性影响。传统人工监测方式存在响应滞后、数据不精确等问题,亟需智能化解决方案。

1.2 系统功能

本系统采用STM32F103RCT6作为主控芯片,实现以下核心功能:

  • 实时监测温湿度、空气质量、光照强度等环境参数
  • 超标自动报警与设备联动控制
  • 本地OLED显示与远程APP监控双界面
  • 手动/自动双模式切换
  • 消毒喷雾系统定时控制

2. 硬件系统设计

2.1 主控单元

系统采用STM32F103RCT6作为核心处理器,该芯片具有:

  • 72MHz主频的Cortex-M3内核
  • 256KB Flash + 48KB RAM
  • 3个USART、2个SPI、2个I2C接口
  • 51个GPIO引脚

选型考虑:

  1. 丰富的外设接口满足多传感器接入需求
  2. 足够的计算能力处理实时数据
  3. 成熟的生态体系降低开发难度

2.2 传感器模块

2.2.1 温湿度检测

采用SHT30数字温湿度传感器,主要特性:

  • I2C接口通信
  • ±2%RH湿度精度
  • ±0.3℃温度精度
  • 测量范围:-40~125℃

硬件连接:

SHT30 STM32 VCC → 3.3V GND → GND SCL → PB6(I2C1_SCL) SDA → PB7(I2C1_SDA)
2.2.2 空气质量检测

使用MQ135气体传感器检测有害气体浓度:

  • 检测范围:10~1000ppm
  • 预热时间≥24小时
  • 模拟电压输出

电路设计要点:

  1. 采用LM358搭建比较器电路
  2. 设置可调阈值电位器
  3. 增加RC滤波消除干扰
2.2.3 光照强度检测

BH1750光敏传感器参数:

  • I2C接口
  • 1~65535lx量程
  • 无需外部元件

2.3 执行机构

2.3.1 继电器控制电路

采用5V继电器模块控制大功率设备:

  • 驱动电路采用ULN2003达林顿阵列
  • 续流二极管保护电路
  • 光耦隔离防止干扰

典型接线:

// 风扇控制引脚定义 #define FAN_CTRL_PIN PC13 // 初始化代码 GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = FAN_CTRL_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
2.3.2 雾化消毒模块

采用超声波雾化器:

  • 工作电压:12V DC
  • 雾化量:≥300ml/h
  • 配套水位检测电路

2.4 通信模块

2.4.1 ESP8266 WiFi模块

配置参数:

  • 工作模式:AP+STA
  • 通信协议:TCP
  • 数据传输格式:JSON

硬件连接:

ESP8266 STM32 TXD → PA3(USART2_RX) RXD → PA2(USART2_TX) EN → 3.3V VCC → 3.3V GND → GND
2.4.2 OLED显示接口

0.96寸SPI OLED主要参数:

  • 分辨率:128×64
  • 驱动芯片:SSD1306
  • 刷新率:≥50Hz

2.5 电源设计

系统采用12V/2A直流输入,经两级转换:

  1. LM2596降压至5V(为继电器、ESP8266供电)
  2. AMS1117-3.3稳压(为STM32、传感器供电)

关键设计:

  • 输入反接保护二极管
  • 每路电源独立滤波电容
  • 适当散热设计

3. 软件系统实现

3.1 系统架构

采用分层设计:

  1. 硬件驱动层:传感器、执行器驱动
  2. 业务逻辑层:控制算法、通信协议
  3. 应用层:人机交互、远程监控

3.2 主程序流程

int main(void) { HAL_Init(); SystemClock_Config(); // 外设初始化 Sensor_Init(); Display_Init(); WiFi_Init(); while (1) { // 数据采集 Read_Sensors(); // 数据处理 Process_Data(); // 控制逻辑 Auto_Control(); // 通信处理 WiFi_Process(); HAL_Delay(1000); } }

3.3 关键算法实现

3.3.1 温湿度控制算法
void Temp_Control(float currentTemp) { if (currentTemp > TEMP_HIGH_THRESHOLD) { HAL_GPIO_WritePin(FAN_CTRL_GPIO, FAN_CTRL_PIN, GPIO_PIN_SET); if (currentTemp > TEMP_ALARM_THRESHOLD) { Buzzer_Alarm(ALARM_HIGH); } } else if (currentTemp < TEMP_LOW_THRESHOLD) { HAL_GPIO_WritePin(HEATER_CTRL_GPIO, HEATER_CTRL_PIN, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(FAN_CTRL_GPIO, FAN_CTRL_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(HEATER_CTRL_GPIO, HEATER_CTRL_PIN, GPIO_PIN_RESET); } }
3.3.2 空气质量指数计算
float Calculate_AQI(float adcValue) { // 电压转换 float voltage = adcValue * 3.3 / 4095.0; // 曲线拟合公式 float ppm = 116.6020682 * pow((voltage/3.3)/5.0, -2.769034857); // AQI计算 float aqi = (ppm - 0.0) * (500.0 - 0.0) / (10.0 - 0.0) + 0.0; return aqi > 500 ? 500 : aqi; }

3.4 通信协议设计

3.4.1 数据帧格式
{ "dev_id": "PIG_001", "temp": 26.5, "humi": 65.2, "aqi": 120, "light": 350, "fan": 1, "light": 0, "spray": 0 }
3.4.2 控制指令集
指令码功能描述参数范围
0x01风扇控制0(关)/1(开)
0x02照明控制0(关)/1(开)
0x03喷雾控制0(关)/1(开)
0x04模式切换0(手动)/1(自动)

4. 系统测试与优化

4.1 性能测试数据

测试项指标要求实测结果
温度测量精度±0.5℃±0.3℃
湿度测量精度±3%RH±2%RH
响应延迟<2s1.2s
WiFi通信距离>30m35m
系统功耗<5W4.3W

4.2 抗干扰措施

  1. 传感器信号线采用双绞线
  2. 关键数字电路增加磁珠滤波
  3. 继电器线圈并联瞬态抑制二极管
  4. 软件实现看门狗与异常重启机制

4.3 实际应用效果

经连续72小时测试:

  • 温湿度控制误差保持在±5%范围内
  • 误报警率<0.1%
  • 无线通信丢包率<0.5%
  • 系统无死机现象

5. BOM清单与成本分析

5.1 关键器件清单

器件名称型号规格数量单价(元)
主控芯片STM32F103RCT6115.8
温湿度传感器SHT30122.5
空气质量传感器MQ13518.5
WiFi模块ESP8266112.0
OLED显示屏SSD1306118.0
继电器模块5V 10A35.5

5.2 成本优化建议

  1. 批量采购可降低30%元器件成本
  2. 采用国产替代芯片方案
  3. 优化PCB布局减少板面积
  4. 选用工业级器件提高可靠性

6. 扩展与改进方向

  1. LoRa远距离通信:替代WiFi实现千米级通信
  2. 太阳能供电系统:解决偏远地区供电问题
  3. AI行为分析:通过摄像头监测猪只活动状态
  4. 饲料投喂联动:根据环境参数自动调节投喂策略
  5. 云平台集成:实现多猪舍集中监控管理
http://www.jsqmd.com/news/544897/

相关文章:

  • Obsidian Full Calendar:5步构建个人知识与时间管理一体化系统
  • 2026年镓铟液态合金/氧化镓/金属镓/镓铟锡合金厂家推荐:长沙叁仟新材料科技全系供应 - 品牌推荐官
  • 别再乱填了!手把手教你配置Keil的IROM1和IRAM1,让STM32程序跑得更稳
  • 如何高效管理下载任务:AB Download Manager解决下载烦恼的实用指南
  • 10个Adobe Illustrator AI脚本让你的设计效率提升300%
  • UnityPackage for Godot:3步实现Unity资源到Godot引擎的完美迁移
  • Java从入门到入门---学习vlog1之Java的基础知识
  • 2026年旧衣物/纤维/废布/废棉/化纤块开花机厂家推荐:济南鑫金龙机械实力之选 - 品牌推荐官
  • 基于dos命令下的jmeter脚本运行
  • JeecgBoot低代码开发平台终极实战指南:从零开始构建企业级应用
  • 2026年腾讯企业邮箱联系电话如何获取?服务支持渠道与注意事项 - 品牌2025
  • 企业高效知识体系:8大核心特征+可落地搭建框架,告别知识散乱
  • 24小时运行不掉线:OpenClaw+Qwen3-32B监控服务器日志实践
  • 别再只用SIFT了!用OpenCV的ORB+RANSAC手撸一个图像拼接脚本(附完整代码)
  • 司机躺平、平台空转?135K代驾管理系统,用等级体系激活司机增长
  • XPath Helper Plus实战指南:现代Web元素定位的高效方案
  • 建议收藏|盘点2026年顶尖配置的AI论文平台
  • 炸穿 2026 技术圈!AI Agent 从 0 到 1 商业落地全攻略,附 Python 可跑源码 + 双场景变现
  • Qwen-Image-2512-SDNQ快速上手:跟着教程,5分钟生成你的创意图片
  • Qwen3-Reranker Semantic Refiner实战案例:政府公文智能检索系统落地
  • 苍穹外卖小程序支付功能避坑指南:从接口限制到模拟实现
  • 7大场景玩转JADX:Android开发者必备的反编译工具完全指南
  • 电视大屏看板“去PC化”与纯内存流式渲染实战
  • 【监管新规倒计时30天】Python风控模型必须完成的4项可审计改造:从特征溯源到决策日志留痕
  • APISIX Dashboard实战:从零配置JWT认证网关(含Node.js后端对接)
  • 极客专属:OpenClaw控制GLM-4.7-Flash实现智能家居指令转发
  • 2026年仿真恐龙与彩灯艺术行业品牌概览:技术实力与高性价比的双轨选择 - 深度智识库
  • iText7中文渲染完全指南:从乱码到完美显示的技术突破
  • OpenClaw飞书机器人深度集成:基于Qwen3-32B的24小时待命助手
  • 深度学习模型压缩:从原理到实践