0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于网络的AVR ATmega328P-PU平菇栽培室湿度监测系统设计方案

基于网络的AVR ATmega328P-PU平菇栽培室湿度监测系统设计方案

来源:
2025-08-13
类别:工业控制
eye 1
文章创建人 拍明芯城

基于网络的AVR ATmega328P -PU平菇栽培室湿度监测系统设计方案

一、系统设计背景与目标

平菇栽培过程中,环境湿度是影响菌丝生长、子实体分化和产量的核心因素。传统平菇温室依赖人工经验调节湿度,存在调控滞后、精度不足等问题,导致菌包污染率升高、菇体畸形率增加。基于AVR ATmega328P -PU的湿度监测系统通过实时采集环境湿度数据,结合物联网技术实现远程监控与自动预警,可显著提升平菇栽培的标准化管理水平。系统设计目标包括:

  1. 湿度监测精度达±2%RH,响应时间≤5秒;

  2. 支持多节点数据采集,覆盖50-200平方米栽培区域;

  3. 实现本地LCD显示、蜂鸣器报警及云端数据存储;

  4. 低功耗设计,单节点续航时间≥6个月(电池供电场景)。

image.png

二、核心元器件选型与功能解析

2.1 主控单元:ATmega328P -PU微控制器

型号选择依据
ATmega328P -PU是Microchip(原Atmel)生产的8位AVR RISC架构微控制器,采用DIP-28封装,工作电压2.7V-5.5V,典型工作电流10mA(3V@8MHz),待机电流<1μA。其32KB Flash、2KB SRAM和1KB EEPROM的存储配置可满足多传感器数据缓存需求,6通道10位ADC支持模拟传感器信号采集,2个UART接口和I2C总线兼容性使其成为物联网节点的理想选择。

功能实现

  • 通过I2C接口连接DHT22温湿度传感器,读取湿度数据并转换为数字信号;

  • 控制RGB LED模块显示湿度状态(正常:绿色;缺水:红色;过湿:蓝色);

  • 驱动1602 LCD液晶屏实时显示湿度值、温度值及时间戳;

  • 通过ESP8266 Wi-Fi模块将数据上传至云端平台,支持MQTT协议通信;

  • 触发蜂鸣器报警(当湿度超出设定阈值±10%RH时)。

对比优势
相较于STM32F103C8T6(32位ARM Cortex-M3),ATmega328P -PU的8位架构在资源占用率较低的应用场景中更具成本效益,其Arduino生态支持(如Arduino IDE开发环境)可缩短开发周期30%以上。

2.2 湿度传感器:DHT22数字型温湿度传感器

型号选择依据
DHT22采用电容式湿度传感元件与NTC温度传感元件集成设计,湿度测量范围0-100%RH,精度±2%RH(25℃时),分辨率0.1%RH;温度测量范围-40℃-80℃,精度±0.5℃。其单总线数字输出协议(DATA引脚)可直接与ATmega328P -PU的GPIO连接,无需外部ADC转换,简化硬件设计。

功能实现

  • 每2秒采集一次湿度数据,通过DATA引脚传输至主控单元;

  • 支持CRC校验,确保数据传输可靠性;

  • 自带温度补偿功能,修正湿度测量误差。

对比优势
相较于模拟型湿度传感器(如HIH-4000),DHT22的数字输出特性消除了模拟信号调理电路(如运算放大器、滤波电容)的需求,降低PCB布局复杂度。其±2%RH的精度指标优于同类产品SHT11(±3%RH),且成本降低40%。

2.3 无线通信模块:ESP8266-01S Wi-Fi模块

型号选择依据
ESP8266-01S基于ESP8266EX芯片,支持802.11 b/g/n协议,工作频段2.4GHz,最大传输速率72Mbps。其3.3V供电电压与ATmega328P -PU兼容,通过UART接口(TX/RX引脚)与主控单元通信,支持AT指令集配置。模块内置TCP/IP协议栈,可实现MQTT、HTTP等物联网协议接入。

功能实现

  • 建立Wi-Fi连接(SSID/密码通过AT指令配置);

  • 将湿度数据封装为JSON格式,通过MQTT协议上传至阿里云IoT平台;

  • 接收云端控制指令(如调整湿度阈值);

  • 支持STA/AP双模式切换,便于现场调试。

对比优势
相较于LoRa模块(如RA-02),ESP8266-01S在短距离(<100米)场景中具有更高的数据传输速率(72Mbps vs. 300kbps),且无需额外网关设备,降低系统部署成本。其开源固件(如NodeMCU)支持Lua脚本编程,可扩展本地数据处理逻辑。

2.4 显示模块:1602 LCD液晶屏

型号选择依据
1602 LCD采用HD44780控制器,支持16字符×2行的显示格式,工作电压5V,背光电流≤100mA。其I2C接口扩展板(PCF8574芯片)可将并行接口转换为I2C总线,仅需SDA(A4)和SCL(A5)两根引脚与ATmega328P -PU连接,节省GPIO资源。

功能实现

  • 实时显示当前湿度值(如“Humidity: 65.2%”)、温度值(如“Temp: 23.5℃”)及时间戳(如“2025-08-13 14:30”);

  • 支持自定义显示内容(如湿度阈值、报警状态);

  • 通过背光控制(引脚连接三极管开关电路)实现低功耗模式。

对比优势
相较于OLED显示屏(如SSD1306),1602 LCD在强光环境下具有更高的可读性,且成本降低60%。其I2C接口设计简化了布线复杂度,适合多节点部署场景。

2.5 报警模块:RGB LED与有源蜂鸣器

RGB LED选型依据
采用共阴极RGB LED(如WS2812B),内置WS2811驱动芯片,支持级联控制。每个LED包含红、绿、蓝三个发光二极管,通过单总线协议(DATA引脚)传输24位颜色数据(8位/通道),可实现1677万种颜色显示。

功能实现

  • 湿度正常(50-70%RH):显示绿色(RGB值:0,255,0);

  • 湿度过低(<50%RH):显示红色(RGB值:255,0,0)并触发蜂鸣器短鸣(频率1kHz,持续时间500ms);

  • 湿度过高(>70%RH):显示蓝色(RGB值:0,0,255)并触发蜂鸣器长鸣(频率1kHz,持续时间2s)。

有源蜂鸣器选型依据
采用5V有源蜂鸣器(如SMT-0930C-T),工作电流≤30mA,声压级≥85dB@10cm。其“有源”特性(内置振荡电路)仅需通过GPIO输出高低电平即可驱动,无需外部方波信号。

功能实现

  • 连接ATmega328P -PU的Digital 3引脚,通过三极管(S8050)放大电流;

  • 当湿度超出阈值时,主控单元输出低电平(0V)触发蜂鸣器鸣叫。

三、系统硬件设计

3.1 电路原理图设计

系统硬件电路分为电源模块、主控模块、传感器模块、通信模块、显示模块和报警模块六部分。

电源模块
采用LM2596S-5.0降压芯片将12V输入转换为5V输出,为ATmega328P -PU、DHT22、1602 LCD和ESP8266-01S供电。通过AMS1117-3.3稳压芯片将5V转换为3.3V,为ESP8266-01S的射频部分供电。电源输入端并联1000μF电解电容和0.1μF陶瓷电容,滤除高频噪声。

主控模块
ATmega328P -PU的晶振电路采用16MHz无源晶振,匹配22pF负载电容,确保时钟稳定性。复位电路由10kΩ上拉电阻和0.1μF电容组成,实现上电复位功能。

传感器模块
DHT22的DATA引脚通过4.7kΩ上拉电阻连接至5V电源,确保信号稳定性。其VCC和GND引脚分别连接电源模块的5V输出和地。

通信模块
ESP8266-01S的TX/RX引脚通过1kΩ电阻连接至ATmega328P -PU的RXD(Digital 0)和TXD(Digital 1)引脚,实现UART通信。CH_PD引脚通过10kΩ电阻上拉至3.3V,确保模块正常工作。

显示模块
1602 LCD的I2C扩展板SDA和SCL引脚分别连接ATmega328P -PU的A4和A5引脚。VCC和GND引脚连接电源模块的5V输出和地。

报警模块
RGB LED的DATA引脚连接ATmega328P -PU的Digital 9引脚,通过220Ω限流电阻保护LED。有源蜂鸣器的正极通过三极管(S8050)连接5V电源,负极接地,基极通过10kΩ电阻连接Digital 3引脚。

3.2 PCB布局与布线优化

PCB设计采用双层板结构,顶层布置信号线,底层布置电源线和地线。关键设计规则包括:

  • 电源线宽度≥20mil,地线宽度≥30mil,降低阻抗;

  • 模拟信号线(如DHT22的DATA引脚)与数字信号线间距≥10mil,减少耦合干扰;

  • ESP8266-01S的射频部分远离晶振电路,避免时钟信号干扰Wi-Fi通信;

  • 1602 LCD的I2C总线添加10kΩ上拉电阻,增强信号驱动能力。

四、系统软件设计

4.1 主程序流程

系统软件基于Arduino IDE开发,采用模块化设计思想,主程序流程如下:

  1. 初始化硬件(包括GPIO、UART、I2C、Wi-Fi模块);

  2. 读取DHT22湿度数据,进行CRC校验;

  3. 更新1602 LCD显示内容;

  4. 根据湿度值控制RGB LED颜色和蜂鸣器状态;

  5. 通过MQTT协议上传数据至云端平台;

  6. 循环执行步骤2-5,采样间隔2秒。

4.2 关键函数实现

DHT22数据读取函数

#include <DHT.h>
#define DHTPIN 4     // DHT22数据引脚连接Digital 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

float readHumidity() {
float humidity = dht.readHumidity();
if (isnan(humidity)) {
Serial.println("Failed to read humidity from DHT22!");
return -1;
}
return humidity;
}

ESP8266 Wi-Fi连接函数

#include <ESP8266WiFi.h>
const char* ssid = "Your_WiFi_SSID";
const char* password = "Your_WiFi_Password";

void connectWiFi() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}

MQTT数据上传函数

#include <PubSubClient.h>
const char* mqtt_server = "your_mqtt_broker_ip";
WiFiClient espClient;
PubSubClient client(espClient);

void callback(char* topic, byte* payload, unsigned int length) {
// 处理云端下发指令(如调整湿度阈值)
}

void reconnect() {
while (!client.connected()) {
if (client.connect("ESP8266Client")) {
client.subscribe("humidity/threshold"); // 订阅阈值调整话题
} else {
delay(5000);
}
}
}

void uploadData(float humidity) {
if (!client.connected()) {
reconnect();
}
char payload[50];
snprintf(payload, 50, "{"humidity":%.2f}", humidity);
client.publish("humidity/data", payload); // 发布湿度数据
}

4.3 低功耗优化策略

为延长电池供电节点的续航时间,采用以下低功耗设计:

  1. 睡眠模式:通过set_sleep_mode(SLEEP_MODE_PWR_DOWN)进入深度睡眠,仅保留RTC唤醒功能;

  2. 定时唤醒:利用Watchdog Timer(WDT)每2秒唤醒一次主控单元,完成数据采集后立即返回睡眠;

  3. 传感器节能:DHT22的单次测量时间仅50ms,测量完成后关闭其电源(通过GPIO控制MOS管开关);

  4. 通信优化:ESP8266-01S在数据上传后进入WiFi.mode(WIFI_OFF)模式,降低功耗至20mA。

五、系统测试与验证

5.1 硬件功能测试

  1. 传感器精度测试
    将DHT22与标准湿度计(如Testo 635-2)置于同一密闭容器中,调节容器内湿度(30%RH-90%RH),记录两者读数偏差。测试结果显示,DHT22的平均误差为±1.8%RH,满足系统设计要求。

  2. 通信稳定性测试
    在距离Wi-Fi路由器10米、50米、100米处分别部署3个监测节点,连续运行24小时,统计数据丢失率。测试结果表明,10米和50米场景下数据丢失率为0%,100米场景下丢失率为1.2%(因信号衰减导致),可通过增加RSSI阈值过滤无效数据。

5.2 软件功能测试

  1. 报警逻辑测试
    手动修改DHT22输出数据,模拟湿度过低(45%RH)、过高(75%RH)场景,验证RGB LED颜色变化和蜂鸣器鸣叫功能。测试结果显示,系统响应时间≤1秒,报警准确率100%。

  2. 云端数据同步测试
    通过阿里云IoT平台查看上传的湿度数据,检查时间戳与本地时钟的一致性。测试结果表明,数据延迟≤2秒,满足实时监控需求。

六、系统部署与应用前景

6.1 部署方案

  1. 节点布局
    在50平方米平菇栽培室内均匀部署3个监测节点(间距10米),节点高度距地面1.5米(避免地面冷凝水影响);

  2. 供电方式
    靠近电源的区域采用市电供电,偏远区域采用18650锂电池(3000mAh×2)供电,续航时间≥6个月;

  3. 云端配置
    在阿里云IoT平台创建产品(ProductKey为“a1b2c3d4e5”),定义湿度数据字段(DataType为“float”),配置MQTT连接参数(Broker地址为“iot-mqtt.cn-shanghai.aliyuncs.com”)。

6.2 应用前景

  1. 农业物联网
    本系统可扩展至温度、光照、CO₂浓度等多参数监测,构建平菇栽培环境综合调控系统;

  2. 智慧仓储
    将湿度监测节点部署于粮食仓库、药品冷链等场景,实现环境异常实时预警;

  3. 科研教育
    作为高校电子工程、农业工程专业的实验平台,用于传感器网络、物联网技术的教学实践。

七、结论

基于AVR ATmega328P -PU的平菇栽培室湿度监测系统通过集成DHT22传感器、ESP8266 Wi-Fi模块和云端平台,实现了环境湿度的实时采集、远程监控与自动报警。系统硬件设计兼顾精度与成本,软件算法优化了低功耗性能,测试结果表明其可靠性满足农业物联网应用需求。未来可进一步融合机器学习算法,实现湿度预测与自动调控,推动平菇栽培向智能化、精准化方向发展。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

下一篇: 已是最后一篇

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告