引言
在现代农业生产中,温湿度、光照强度和土壤湿度等环境因素对植物的生长起着至关重要的作用。智能蔬菜大棚正是基于这些因素,通过自动化控制和远程监控技术,实现对植物生长环境的精准管理,最终提升蔬菜的产量和质量。本文介绍了一种基于STM32单片机的智能蔬菜大棚温湿度监测系统,具备温湿度检测、光照强度检测、土壤湿度监测、自动控制风扇、水泵、LED等功能,且可通过手机APP与云平台实现远程管理。
一、系统方案介绍
本系统基于STM32F103单片机作为主控芯片,采用ESP8266-01S WiFi模块实现数据的无线传输。系统通过不同类型的传感器检测温湿度、光照强度和土壤湿度等环境数据,并通过OLED屏幕实时显示。用户可以通过手机APP查看大棚环境数据,还可以通过APP进行设备控制,系统支持自动模式与手动模式两种操作方式。此外,系统还能通过机智云云平台进行数据存储与分析,实现远程监控。
二、系统架构图
- STM32F103主控单片机:作为系统的核心处理单元,负责数据采集、处理与控制指令的下发。
- ESP8266-01S模块:用于WiFi通讯,将采集的数据上传至云平台,并接收APP的控制指令。
- OLED显示屏:实时显示温湿度、光照强度和土壤湿度等信息。
- 温湿度传感器(DHT11/DHT22):用于测量环境的温度和湿度。
- 光照传感器(LDR):用于检测大棚内部的光照强度。
- 土壤湿度传感器:用于检测土壤中的水分含量。
- 风扇、水泵、LED灯:根据传感器数据自动调节,确保环境条件符合蔬菜生长需求。
三、功能描述
1. 温湿度监测:通过温湿度传感器(如DHT11/DHT22)实时监测大棚内部温度和湿度,并通过OLED显示屏显示,同时将数据上传至云平台。
2. 光照监测:通过光照强度传感器(如LDR)监测大棚内部的光照强度,当光照不足时自动开启LED灯照明,反之关闭。
3. 土壤湿度监测:利用土壤湿度传感器实时监测土壤水分状况,若土壤湿度低于设定阈值,系统自动启动水泵进行灌溉。
4. 环境数据远程监控:通过ESP8266模块将环境数据传输到机智云云平台,用户可以通过手机APP随时查看大棚的温湿度、光照强度和土壤湿度等信息。
5. 自动控制模式:当温度过高时,系统自动启动风扇;当土壤湿度过低时,系统自动启动水泵;当光照不足时,自动开启LED灯。
6. 手动控制模式:用户通过手机APP手动开启或关闭风扇、水泵、LED灯。
7. 参数设置:用户可以通过物理按键设置温湿度、光照强度和土壤湿度的最大阈值,超过阈值时设备自动启用保护机制。
四、硬件架构
1. 主控芯片:STM32F103
- STM32F103系列单片机具有强大的处理能力、丰富的外设接口,适合用于嵌入式系统的开发。
2. WiFi模块:ESP8266-01S
- 用于无线通信,将数据传输到机智云云平台并接收来自APP的指令。
3. 显示屏:OLED 128x64
- 显示温湿度、光照强度、土壤湿度等实时数据。
4. 传感器:
- DHT11/DHT22传感器:用于检测大棚的温度和湿度。
- LDR(光照传感器):用于检测大棚内部的光照强度。
- 土壤湿度传感器:用于监测土壤中的湿度。
5. 执行器:
- 风扇、水泵、LED灯:根据传感器数据进行自动控制。
五、软件架构
本系统的软件架构包括以下几个模块:
1. 传感器数据采集:定时从温湿度传感器、光照传感器和土壤湿度传感器读取数据。
2. 自动控制:根据设定的阈值,通过控制风扇、水泵和LED灯的开关来调节环境。
3. 数据传输与云平台交互:通过ESP8266模块将数据上传至机智云平台,并接收来自APP的控制指令。
4. 显示与用户界面:在OLED屏幕上显示实时数据,并在APP上提供可视化操作界面。
5. 数据存储与云平台:将数据存储至机智云云平台,进行远程查看和管理。
六、关键代码展示
1. 温湿度传感器数据读取
#include "dht11.h"
// 初始化DHT11传感器
DHT11_Data dht11;
// 获取温湿度数据
void getTemperatureHumidity() {
if (DHT11_Read(&dht11) == DHT11_OK) {
float temperature = dht11.temperature;
float humidity = dht11.humidity;
// 显示数据
OLED_ShowString(0, 0, "Temp: %.1f C", temperature);
OLED_ShowString(0, 1, "Humidity: %.1f %%", humidity);
}
}
2. 光照强度读取与LED控制
int lightIntensity = 0;
// 获取光照强度
void getLightIntensity() {
lightIntensity = analogRead(LDR_PIN);
if (lightIntensity < THRESHOLD_LIGHT) {
digitalWrite(LED_PIN, HIGH); // 光照不足,开启LED灯
} else {
digitalWrite(LED_PIN, LOW); // 光照充足,关闭LED灯
}
}
3. WiFi数据上传至机智云
#include "ESP8266.h"
void uploadDataToCloud() {
char data[100];
sprintf(data, "temp=%.1f&humidity=%.1f", temperature, humidity);
ESP8266_SendData(data);
}
七、总结与展望
本设计基于STM32单片机和ESP8266 WiFi模块,实现了一个多功能的智能蔬菜大棚监测系统。通过实时监测环境数据并自动调整温湿度、光照强度和土壤湿度等参数,确保了蔬菜生长的最佳环境。未来,系统可以进一步扩展,增加更多的环境监测模块,提升自动化水平,使得大棚的管理更加智能化和高效。
八、资料获取
请评论区留言或者私信作者。