首页 分享 基于stm32的物联网花卉种植环境监测系统

基于stm32的物联网花卉种植环境监测系统

来源:花匠小妙招 时间:2026-02-04 11:37

若该文为原创文章,转载请注明原文出处。

一、引言

(一)研究背景及意义

随着城市化进程加快和生活品质提升,室内花卉种植成为人们美化环境、陶冶情操的重要方式。然而,传统花卉养护依赖人工经验,难以精准控制水、肥、光、温等关键因素,导致植物生长不良甚至死亡。物联网技术的发展为解决这一问题提供了新思路。本系统通过集成多类传感器和执行器,构建了一个能够自动维持花卉最佳生长环境的智能系统,对于推广智慧农业、降低养护门槛、提升种植成功率具有重要的现实意义。

(二)国内外研究现状

目前国内外智能农业系统多集中于大型温室或农田的监控,针对家庭或小规模花卉种植的集成化、低成本解决方案相对较少。现有产品功能单一,或仅具备监测功能而无自动执行能力。本设计创新性地将土壤湿度、PH值、重量(肥力推断) 等参数监测与环境调控深度融合,提供了一个从监测到执行的完整闭环解决方案,填补了市场空白。

二、系统总体设计

(一)系统架构

本系统采用“全面感知-智能决策-精准执行-云边协同”的四层架构。

感知层:负责采集空气温湿度、土壤湿度、土壤PH值、花盆重量、光照强度等多维数据。

决策层:以STM32为核心,进行数据融合、处理、阈值判断和控制决策。

执行层:包括继电器模块(控制风扇、加湿器、水泵、补光灯)、蜂鸣器,负责执行控制指令。

云边协同层:通过WiFi连接云平台,实现数据远程透传和手机APP交互;OLED和按键提供本地交互。

(二)功能模块划分

环境监测模块:DHT11(空气温湿度)、光敏电阻(光照)。

土壤监测模块:土壤湿度传感器、PH传感器。

重量监测模块:压力传感器(HX711)。

执行控制模块:继电器(控制风扇、加湿器、水泵、补光灯)、有源蜂鸣器。

人机交互模块:OLED显示屏、按键。

通信模块:ESP8266 WiFi模块。

三、硬件设计与实现

(一)系统硬件框架图

1. 主控单元 器件名称推荐型号接口功能说明STM32单片机STM32F103C8T6-作为系统核心,负责所有传感器的数据采集、执行种植逻辑、控制各执行器、以及与WiFi模块通信。 2. 传感器与输入单元 器件名称推荐型号/类型接口功能说明温湿度传感器DHT11单总线检测种植环境的空气温度和湿度。土壤湿度传感器电容式传感器ADC检测土壤体积含水量(%)。电容式不易腐蚀,寿命长。输出模拟电压信号。PH传感器PH-4502CADC检测土壤或营养液的PH值。输出模拟电压信号,需通过公式转换为PH值(通常0-14范围)。压力/重量传感器称重传感器 + HX711GPIO (DT, SCK)监测花盆重量。用于判断是否需要浇水或施肥,重量异常减轻可能表示植物缺水。光敏传感器光敏电阻模块ADC检测环境光照强度。输出模拟电压,光线越强电压越高。按键模块轻触开关GPIO用于切换自动/手动模式、设置各参数的报警阈值、手动控制设备。 3. 执行器与输出单元 器件名称推荐型号/类型接口功能说明风扇继电器5V 继电器模块GPIO控制风扇的电源。温度过高时启动,为植物降温。加湿器继电器5V 继电器模块GPIO控制加湿器的电源。湿度过低时启动,增加环境湿度。水泵继电器5V 继电器模块GPIO控制水泵的电源。用于浇水或更换营养液。补光灯继电器5V 继电器模块GPIO控制植物生长灯的电源。光照不足时启动,为植物补光。有源蜂鸣器5V有源蜂鸣器GPIO当任何参数超限或重量异常时,发出报警声,提醒用户。OLED显示屏SSD1306I²C实时显示所有监测数据:空气温湿度、土壤湿度、PH值、重量、光照强度,以及系统状态和报警信息。 4. 通信单元 器件名称推荐型号接口功能说明WiFi模块ESP-01SUARTSTM32通过串口以AT指令与ESP8266通信,将采集到的所有状态数据和报警信息上传至云平台,用户可通过手机APP远程实时监控、手动控制设备、设置阈值。 5. 电源单元 器件名称推荐规格功能说明电源适配器5V/3A 开关电源为整个控制系统(STM32、传感器、模块)提供稳定的5V电源。太阳能板5V/2W可选:为系统提供绿色能源,适合户外或阳台使用。

核心控制逻辑说明

1. 环境智能调控(自动模式)

温度控制

if (空气温度 > 温度上限) { 启动风扇继电器; } else { 关闭风扇继电器; }

湿度控制

if (土壤湿度 < 湿度下限) { 启动加湿器继电器; } else { 关闭加湿器继电器; }

PH值调控

if (PH值 > PH上限) { 启动水泵继电器(换水); 蜂鸣器报警; } //PH值异常需要更换营养液

光照补偿

if (光照强度 < 光照阈值) { 启动补光灯继电器; } else { 关闭补光灯继电器; }

重量监控

if (花盆重量 < 重量下限) { 蜂鸣器报警; OLED显示"可能缺水"; }

if (花盆重量 > 重量上限) { 蜂鸣器报警; OLED显示"可能过湿"; }

2. 手动控制模式

通过本地按键强制控制风扇、加湿器、水泵、补光灯的开关。

通过手机APP远程手动控制所有设备,覆盖自动逻辑。

3. 数据上传与显示

STM32定期将所有传感器数据和设备状态通过WiFi上传至手机APP。

OLED屏幕分页面显示所有参数,主要显示内容:

页面1:温度、湿度、光照状态

页面2:土壤湿度、PH值、重量状态

页面3:设备状态、报警信息

四、软件设计与实现

(一)开发环境搭建

IDE:STM32CubeIDE。

:使用STM32CubeMX配置HAL库,初始化GPIO、ADC、I2C等外设。

驱动与协议:需编写DHT11、HX711、OLED、ESP8266(AT指令)等驱动程序。

(二)系统软件流程图

(三)关键软件模块实现

1. 传感器数据读取与计算

// 读取HX711获取重量值 (需校准)

long HX711_Get_Weight() {

if (HX711_Is_Ready()) {

long count = HX711_Read();

// 校准公式: Weight = (Count - Offset) / Scale

float weight = (count - calibration_offset) / calibration_scale;

return (long)weight;

}

return 0;

}

// 读取PH值 (需校准)

float Read_PH_Value() {

int analogValue = HAL_ADC_GetValue(&hadc1); // 假设PH接在ADC1

float voltage = analogValue * (3.3 / 4095.0); // 转换为电压值

// PH值计算: phValue = (voltage * PH_SLOPE) + PH_OFFSET; 需用标准液校准

float phValue = (voltage * 3.5) + 4.0; // 示例公式,必须校准!

return phValue;

}

2. 自动控制逻辑实现

void Auto_Control_Logic(void) {

// 1. 温度控制

if (air_temperature > temp_high_threshold) {

Fan_On();

} else {

Fan_Off();

}

// 2. 土壤湿度控制

if (soil_moisture < soil_moisture_low_threshold) {

Humidifier_On(); // 打开加湿器(或水泵进行滴灌)

} else if (soil_moisture > soil_moisture_high_threshold) {

Humidifier_Off();

// 土壤过湿,可以附加报警

}

// 3. PH值控制

if (ph_value > ph_high_threshold) {

Water_Pump_On(); // PH过高,启动换水流程(需与排水配合)

// 实际应用中,换水可能需要更复杂的时序控制

} else {

Water_Pump_Off();

}

// 4. 光照控制

if (light_intensity < light_threshold) {

Grow_Light_On();

} else {

Grow_Light_Off();

}

// 5. 重量报警(用于监测积水或过度施肥)

if (pot_weight > weight_threshold) {

Buzzer_On_Intermitent(); // 间歇性报警

} else {

Buzzer_Off();

}

}

3. 云平台数据上报(JSON格式)

void Publish_Sensor_Data(void) {

cJSON *root = cJSON_CreateObject();

cJSON_AddNumberToObject(root, "air_temp", air_temperature);

cJSON_AddNumberToObject(root, "air_humi", air_humidity);

cJSON_AddNumberToObject(root, "soil_moisture", soil_moisture);

cJSON_AddNumberToObject(root, "ph", ph_value);

cJSON_AddNumberToObject(root, "weight", pot_weight);

cJSON_AddNumberToObject(root, "light", light_intensity);

cJSON_AddBoolToObject(root, "fan", fan_state);

cJSON_AddBoolToObject(root, "pump", pump_state);

cJSON_AddBoolToObject(root, "light_ctl", light_state);

char *json_data = cJSON_Print(root);

ESP8266_MQTT_Publish("flower/env/data", json_data);

cJSON_Delete(root);

free(json_data);

}

五、系统测试与优化

(一)测试方案

传感器校准测试

PH传感器:使用标准PH缓冲液(如PH4.0, PH7.0, PH10.0)进行多点校准,建立电压-PH值对应曲线。

重量传感器:放置已知重量的砝码,校准HX711的Offset和Scale参数。

土壤湿度传感器:在完全干燥和完全浸水的土壤中读取ADC值,确定阈值。

功能与联动测试

用电吹风加热DHT11,测试风扇是否启动。

干燥土壤中浇水,测试加湿器是否停止工作。

用醋或小苏打溶液模拟PH变化,测试换水泵是否启动。

遮挡光敏电阻,测试补光灯是否开启。

向花盆加重物,测试蜂鸣器是否报警。

云端测试:测试APP能否实时显示数据,并远程控制各执行器开关。

(二)优化方向

软件优化

历史数据记录与趋势分析:在云平台端记录历史数据,并绘制变化曲线,帮助用户分析植物生长与环境的关系。

浇水策略优化:浇水并非简单的“低于阈值就开”,可采用PID控制模糊控制,根据土壤湿度变化率动态调整浇水时间,防止过度浇水。

看门狗与断线重连:加入看门狗防止死机,并为ESP8266编写强大的网络重连机制。

硬件优化

太阳能供电:为系统增加太阳能电池板和小型蓄电池,实现能源自给,更适合户外或阳台部署。

传感器防护:土壤传感器和PH电极需做防腐蚀处理,延长其使用寿命。

六、结论与关键设计

(一)结论

本项目成功设计并实现了一个高度集成、功能强大的智能花卉种植监控系统。系统不仅实现了对花卉生长环境的全方位监测,更建立了从感知到执行的完整闭环自动控制,并通过物联网技术实现了便捷的远程管理。经过测试,系统运行稳定,控制准确,达到了预期设计目标,为现代智能农业和家庭园艺提供了一个优秀的解决方案。

(二)关键设计

传感器校准与精度

PH传感器: 需要定期校准,使用标准PH缓冲液(PH4.0、PH7.0、PH10.0)进行三点校准。

重量传感器: 需要去皮操作和重量校准,确保测量准确。

土壤湿度传感器: 不同土壤类型的校准值不同,需要根据实际土壤进行校准。

防水设计

土壤湿度、PH等接触水分的传感器需要做防水处理。

电路板应喷涂三防漆,防止潮湿环境损坏。

控制策略优化

采用模糊控制或PID算法,避免设备频繁启停。

设置设备最小运行时间,防止短时间內反复开关。

植物适应性

不同花卉对环境要求不同,APP应提供常见花卉的推荐参数设置。

支持自定义种植方案,可设置不同生长阶段的参数要求。

节能设计

根据植物光周期自动调节补光时间。

支持定时任务,如在电价低谷时段进行加湿、补水等操作。

用户体验

APP界面应直观显示植物生长环境数据,提供历史曲线图。

设置智能提醒功能,如"需要浇水"、"需要施肥"等提醒。

支持多设备管理,可同时监控多个花盆。

如有侵权,或需要完整代码,请及时联系博主。

相关知识

基于STM32的花卉大棚环境监测系统设计
探索智能环境监测:基于STM32的温湿度与光照检测系统
基于物联网温室环境监测系统设计.doc
基于STM32的户外环境监测系统(一)
气象环境监测的物联网软件设计
基于物联网的智能花卉栽培系统设计研究.pdf
基于物联网技术的花卉大棚温湿度监测系统
基于STM32单片机的环境监测系统设计与实现
基于STM32单片机的温室环境监测系统设计.pdf
基于物联网的居家环境监测系统设计

网址: 基于stm32的物联网花卉种植环境监测系统 https://www.huajiangbk.com/newsview2555880.html

所属分类:花卉
上一篇: 鄂州花湖机场铁路联络线施工期环境
下一篇: 揭秘环境监测与保护技术:创新与挑

推荐分享