引言
在现代生活中,随着科技的进步和物联网技术的发展,智能家居系统逐渐进入大众的视野。智能浇花系统作为其中的一个重要应用,可以帮助用户在繁忙的生活中更好地照顾植物。本文将介绍如何基于STM32单片机设计一个智能浇花系统,该系统能够实时检测温度、湿度、光照强度和土壤湿度,并通过OLED屏幕和手机App显示数据,同时具备自动控制和手动控制的模式。
一、系统方案介绍
本智能浇花系统以STM32F103作为主控单片机,通过搭载多个传感器进行环境数据的采集。系统利用ESP8266-01S Wi-Fi模块与云平台机智云连接,确保数据实时上传并能通过手机App进行远程查看与控制。系统可以实现自动与手动两种控制模式,包括自动开关风扇、水泵和LED灯等设备,以便根据环境参数自动调节植物生长环境。
系统功能包括:
-
实时监测环境参数:温度、湿度、光照强度、土壤湿度。
-
数据展示:OLED显示实时数据,同时通过手机App进行显示。
-
自动控制:风扇、水泵、LED根据环境变化自动开启或关闭。
-
手动控制:通过手机App或按钮手动控制风扇、水泵、LED灯。
-
阈值设置:用户可以通过按钮设置环境参数的最大阈值,当超出阈值时,设备会自动响应。

二、系统架构图

三、实现方法
-
环境数据采集:通过DHT11传感器采集温湿度数据,土壤湿度传感器获取土壤湿度,光照传感器检测环境光照强度。
-
数据处理:STM32F103处理来自各个传感器的数据,根据预设的阈值进行判断,决定是否开启风扇、水泵和LED灯。
-
自动控制与手动控制切换:通过按钮控制模式的切换,当设备处于自动模式时,系统会根据传感器数据自动控制设备;当设备处于手动模式时,用户可以通过手机App进行手动控制。
-
数据上传与显示:使用ESP8266-01S模块将数据上传到机智云平台,并通过手机App显示和控制。
四、功能描述
-
实时环境监测:系统实时监测温度、湿度、光照强度和土壤湿度,并在OLED屏幕上显示当前环境数据。
-
自动控制系统:
-
温度过高时,自动打开风扇;
-
土壤湿度过低时,自动启动水泵进行浇水;
-
光照强度不足时,自动开启LED灯。
-
手动控制模式:用户可以通过手机App或按钮手动控制风扇、水泵和LED灯的开关。
-
阈值设置:通过按键可以设置温度、湿度、光照强度、土壤湿度的最大阈值,超出阈值时系统会自动进行相应的控制。
-
云平台与远程监控:系统通过机智云平台将传感器数据上传,用户可以在手机App上查看实时数据并进行远程控制。
五、硬件架构
-
STM32F103单片机:作为系统的主控单元,负责数据处理与设备控制。
-
DHT11温湿度传感器:用于检测环境的温度和湿度。
-
土壤湿度传感器:用于实时检测土壤湿度。
-
光照传感器:用于检测环境的光照强度。
-
OLED显示屏:用于显示实时的温度、湿度、光照强度和土壤湿度数据。
-
ESP8266 Wi-Fi模块:用于将数据上传到云平台并接收手机App的控制指令。
-
风扇、水泵、LED灯:控制植物的环境,保证其健康成长。
-
按键:用于设置各项传感器的阈值以及切换自动/手动控制模式。

六、传感器介绍
-
DHT11温湿度传感器:这款传感器能够精确地测量温度和湿度,工作稳定,适合环境监测应用。温度范围:-40°C~80°C,湿度范围:0~100% RH。
-
土壤湿度传感器:通过检测土壤中的水分含量,判断是否需要浇水。适用于各种农业、园艺应用。
-
光照传感器:用于检测环境光照强度,能够根据实际光照水平判断是否需要开启LED灯。

七、软件架构
-
STM32F103负责数据采集、处理与控制。系统通过GPIO控制风扇、水泵和LED灯。
-
ESP8266模块通过Wi-Fi与机智云平台进行数据通信,上传环境数据。
-
手机App:提供数据展示、设备控制、阈值设置等功能。
-
机智云平台:用于接收来自ESP8266的数据,提供远程控制和监控功能。
八、关键代码展示
// 温湿度传感器数据读取
#include "dht11.h"
void Read_Sensor_Data()
{
float temperature, humidity;
DHT22_Read(&temperature, &humidity);
// 判断温湿度数据并进行设备控制
if(temperature > MAX_TEMP) {
// 开启风扇
HAL_GPIO_WritePin(GPIOB, FAN_PIN, GPIO_PIN_SET);
} else {
// 关闭风扇
HAL_GPIO_WritePin(GPIOB, FAN_PIN, GPIO_PIN_RESET);
}
if(humidity < MIN_HUMIDITY) {
// 启动水泵
HAL_GPIO_WritePin(GPIOB, PUMP_PIN, GPIO_PIN_SET);
} else {
// 关闭水泵
HAL_GPIO_WritePin(GPIOB, PUMP_PIN, GPIO_PIN_RESET);
}
// 显示数据
OLED_ShowString(0, 0, "Temp: %.2f C", temperature);
OLED_ShowString(0, 1, "Humidity: %.2f %%", humidity);
}
// Wi-Fi模块与机智云连接
#include "esp8266.h"
void Upload_Data_To_Cloud()
{
// 连接机智云平台并上传数据
ESP8266_SendDataToCloud(temperature, humidity);
}
九、总结
通过基于STM32F103单片机和ESP8266 Wi-Fi模块的智能浇花系统设计,我们能够实现对植物生长环境的实时监控与自动化控制。系统通过温湿度传感器、土壤湿度传感器、光照传感器收集环境数据,并通过OLED屏幕显示。同时,用户可以通过手机App远程查看和控制设备,提供了便捷的智能家居体验。此系统不仅具备良好的扩展性,还能够根据不同需求进行定制化开发。
十、资料获取
请评论区留言或者私信作者。