基于STM32的花卉种植信息化监管系统设计(多传感器采集+自动联动+手机APP远程控制)

养花这件事,十个人里八个靠"感觉":浇水看心情,晒太阳看天气,土是酸是碱全凭猜。可花卉对土壤湿度、光照强度、酸碱度、水质这些环境参数相当敏感,一个疏忽就是黄叶烂根。本文基于 STM32F103C8T6 设计一套花卉种植信息化监管系统:土壤湿度、光照、pH 值、水质浊度、环境温度五路传感器实时采集,OLED 本地显示 + ESP8266 上传机智云平台,手机 APP 随时查看;自动模式下光照不足自动开补光灯、土壤干了自动启水泵、温度超标自动开风扇,手动模式下 APP 远程控制设备并实时修改阈值,还有一个月历史数据云端查询,让养花从"凭经验"升级为"看数据"。

一、系统功能总览

功能模块实现方式作用
土壤湿度监测YL-69 电阻式传感器(ADC)实时采集土壤湿度,低于阈值自动启动水泵补水
光照监测BH1750 数字光强传感器(I2C)光照不足时自动开启 LED 补光灯
pH 值监测E-201 酸碱检测模块(ADC)掌握土壤/营养液酸碱度,避免环境超适宜范围
水质监测SEN0189 红外浑浊度模块(ADC)监测浇灌用水浑浊度,输出百分比指标
温度监测DS18B20 数字温度传感器温度过高时自动启动风扇降温
本地显示OLED12864(I2C,SSD1306)五路参数实时本地显示
云端管理ESP8266-01S + 机智云平台 + 手机 APP数据云端上传、远程控制、阈值调整、模式切换、历史数据查询
异常报警蜂鸣器(低电平触发)参数越限本地声音提示

系统设计了自动与手动两种工作模式:自动模式下按预设阈值智能联动补光灯、水泵、风扇三类执行设备;手动模式下用户通过 APP 直接控制设备开关并实时修改阈值参数,两套模式可在 APP 上一键切换。

二、核心模块选型对比

2.1 主控模块选型

方案芯片特点
方案1STM32F103C8T6ARM Cortex-M3,72MHz,64KB Flash / 20KB SRAM,37 个 GPIO,自带 12 位 ADC,3 个 USART、2 个 I2C,低功耗,开发工具与社区资源丰富
方案2NXP LPC1768同为 Cortex-M3,主频 120MHz,512KB Flash / 64KB SRAM,70 个 GPIO,性能更强

系统要采集四路模拟传感器 + 单总线温度 + I2C 光照与显示 + 串口 WiFi,STM32F103C8T6 的外设配置完全够用,性价比更高。选择方案1:STM32F103C8T6。

2.2 土壤湿度检测选型

方案模块特点
方案1YL-69电阻式,双探针测土壤电阻转湿度值,成本低、接口简单、易于集成
方案2AM2120电容式,耐用性与防水性更好,测量更稳定,但价格更高

花卉种植为常规周期性监测场景,预算敏感。选择方案1:YL-69,性价比之选。

2.3 光照检测选型

方案模块特点
方案1BH1750数字光强传感器,直接输出数字信号免模数转换电路,线性度好,宽光照范围内读数稳定
方案2TSL2561高精度数字光电传感器,宽动态范围,性能优异但成本更高

补光控制需要以 lux 为单位的稳定读数。选择方案1:BH1750,精度满足需求且成本占优。

2.4 pH 值检测选型

方案模块特点
方案1E-201测量精度 ±0.1pH,量程 pH0~14,内置放大电路,抗电磁干扰能力强
方案2SEN0161价格低、集成简单、免复杂校准,精度约 ±0.2pH

土壤酸碱度直接影响花卉对养分的吸收,精度要求较高。选择方案1:E-201。

2.5 水质检测选型

方案模块特点
方案1SEN0189红外 LED(850nm)+ 光电探测器测散射光强,模拟电压输出,对水体颜色变化不敏感,稳定性好
方案2SEN0176激光光源,分辨率极高,可检测细微颗粒,适合精密水质监测

浇灌用水只需评估浑浊度趋势。选择方案1:SEN0189,成本低、稳定性好。

2.6 温度检测选型

方案模块特点
方案1LM35模拟温度传感器,线性度好,范围 -55℃~+150℃,输出模拟电压需接 ADC
方案2DS18B20数字温度传感器,-55℃~+125℃ 高精度,单总线协议免模数转换,支持多传感器共线扩展

数字输出省去 ADC 占用,单总线便于后续多点测温扩展。选择方案2:DS18B20。

2.7 数据显示选型

方案模块特点
方案1OLED12864128×64 自发光,对比度高、广视角、响应快,低功耗适合长期运行
方案2ILI9341 TFT240×320 彩色显示,信息量大,但功耗与成本更高

五路参数的数值显示用单色屏绰绰有余。选择方案1:OLED12864。

2.8 无线通信选型

方案模块特点
方案1ESP8266-01SWiFi 802.11 b/g/n,室内覆盖 50-100 米,速率最高 72.2Mbps,集成调试简单,经济实用
方案2QCA4020多协议模块(蓝牙5.0/WiFi/Zigbee/Thread),适合复杂异构网络场景

系统仅需 WiFi 单一通道上云。选择方案1:ESP8266-01S。

三、系统接线总表

模块与 STM32F103C8T6 的连接关键引脚说明
YL-69 土壤湿度VCC→5V,GND→GND,OUT→ADC 输入引脚双探针电阻信号经调理电路输出模拟电压
BH1750 光照VCC→3.3V~5V,GND→GND,SCL→I2C 时钟,SDA→I2C 数据数字输出,单位 lux
E-201 pH 传感器VCC→3.3V,GND→GND,OUT→ADC 输入引脚模拟电压反映 pH 变化
SEN0189 浊度模块VCC→5V,GND→GND,AO→ADC 输入引脚850nm 红外散射,模拟输出
DS18B20 温度VDD→3.3V,GND→GND,DQ→数字 IODQ 与 VDD 间并联 4.7kΩ 上拉电阻
OLED12864VCC→3.3V,GND→GND,SCL→I2C 时钟,SDA→I2C 数据SSD1306 驱动
ESP8266-01SVCC/CH_PD/GPIO0/GPIO2→3.3V,GND→地,TXD/RXD 交叉接 USART2,RST 复位控制PA8 复位:拉低 500ms;5V 逻辑需电平转换
补光灯/水泵/风扇控制端→GPIO(继电器驱动)自动模式按阈值联动,手动模式 APP 控制
蜂鸣器正极→VCC,负极→三极管集电极,基极经限流电阻接 GPIO低电平触发:输出低电平三极管导通发声
时钟/复位HSE 8MHz 晶振(PLL 倍频至 72MHz)+ RTC 32.768kHz;NRST 接上拉电阻与复位按键保证系统时钟与稳定复位

四、系统软件设计

4.1 主程序设计

系统上电后完成单片机、ESP8266、OLED 与各传感器的初始化,进入主循环:周期采集五路参数→OLED 实时显示→上传机智云平台供 APP 查看;自动模式下按阈值联动设备,手动模式下解析 APP 下发的控制指令与阈值修改。主程序骨架如下:

int main(void)
{
    /* 系统初始化 */
    Sys_Init();            // 时钟、GPIO、定时器
    ADC_Init();            // ADC1/ADC2:湿度、pH、浊度通道
    I2C_Init();            // BH1750 + OLED
    DS18B20_Init();        // 单总线温度
    OLED_Init();           // SSD1306 初始化
    ESP8266_Init();        // PA8复位→STA模式→连WiFi→透传→TCP连接

    while (1)
    {
        moisture = Get_SoilMoisture();   // ADC多次采样取平均→换算湿度
        lux      = BH1750_Read();        // I2C读两字节→原始值/1.2
        ph       = Get_PhValue();        // ADC平均→电压=ADC*3.3/4096→pH
        turb     = Get_Turbidity();      // ADC平均→电压→浊度百分比
        temp     = DS18B20_GetTemp();    // 复位→0x44→0xBE→(高<<8|低)*0.0625

        OLED_ShowAll(moisture, lux, ph, turb, temp); // 本地显示
        ESP8266_Report();                 // 上传机智云

        if (mode == AUTO) {              // 自动模式联动控制
            if (lux  < LUX_TH)   LED_Grow(ON);   // 光照不足开补光灯
            if (moist < MOI_TH)  Pump(ON);       // 土壤干启动水泵
            if (temp > TEMP_TH)  Fan(ON);        // 温度过高开风扇
        } else {
            Process_APP_Cmd();           // 手动模式:解析APP指令
        }                                 // (含阈值修改与模式切换)

        if (Param_Alarm())  Buzzer_On(); // 参数越限本地报警
    }
}

4.2 模拟量采集程序(湿度/pH/浊度)

三路模拟传感器共用同一套 ADC 流程:使能 ADC 时钟与 GPIO 时钟→引脚配置为模拟输入→复位并初始化 ADC(独立模式、单通道、单次转换、右对齐)→使能并完成校准→配置通道与采样时间→软件触发转换,轮询 ADC_FLAG_EOC 标志位等待完成→读取结果。每路均多次采样取平均值以抑制噪声,再按各自量程换算:pH 通道按 电压 = ADC值 × 3.3 / 4096 得电压后计算 pH 值,浊度通道将电压转换为浑浊度百分比。

4.3 光照检测程序

BH1750 走 I2C 协议:初始化 I2C 接口并设置时钟频率→发送 0x01 Power On 命令启动传感器,检查 ACK 确认通信正常→发送模式设置命令进入光强测量状态→I2C 读取两字节光强数据(高 8 位在前)→按公式 光照值 = 原始数据 / 1.2 换算为 lux 单位的实际光强。

4.4 温度检测程序

DS18B20 单总线时序:DQ 配置输出,拉低约 480μs 后拉高发送复位脉冲,等待传感器返回 60-240μs 响应脉冲确认在线→发送 0x44 启动温度转换,轮询等待约 750ms~1s→再次复位后发送 0xBE 读取命令,DQ 切为输入模式接收两字节数据(低字节在前)→按 (数据[1]<<8 | 数据[0]) × 0.0625 计算实际温度。

4.5 无线通信程序

ESP8266 经 USART2(115200 波特率)通信:PA8 配置为推挽输出,拉低 500ms 复位模块,检查缓冲区 “ready” 确认复位成功→AT+CWMODE=1 设 STA 模式→AT+CWJAP 连接 WiFi,返回 OK 即成功→AT+CIPMUX 关闭多路连接→AT+CIPSEND 进入透传模式(检测缓冲区 \r\nOK\r\n\r\n>)→AT+CIPSTART 与机智云 TCP 服务器建立连接,缓冲区显示 CONNECT 确认。链路稳定后,传感器数据周期上传,APP 下发的模式切换、阈值调整、设备控制指令经同一链路回传执行。

五、系统实现与测试

5.1 功能测试

测试项目测试方法测试结果
数据采集在不同环境条件下采集五路参数传感器输出准确,OLED 实时显示,数据采集精准
自动联动控制模拟光照不足/土壤干燥/温度过高条件补光灯、水泵、风扇按阈值及时触发,响应迅速、逻辑正确
无线通信串口助手验证模块状态,APP 查看数据WiFi 连接稳定,数据实时上传机智云并同步 APP
远程控制APP 切换模式、调整阈值、控制设备指令响应准确及时,远程监控与管理功能完整
历史数据查询APP 查询云端存储记录一个月内历史数据可正常查询

5.2 硬件与软件调试

硬件焊接优先完成主控电源、地线、晶振与复位电路,再依次接入传感器、显示与通信模块,严格遵循电平匹配要求。软件在 Keil 中模块化开发,经 ST-Link 烧录调试:断点验证 ADC、I2C、串口初始化,串口助手监控采集数据,调整 OLED 刷新频率验证显示同步,并借助逻辑分析仪核验 I2C 与 UART 的信号时序,最终系统稳定运行。

六、总结

这套花卉种植信息化监管系统用五路传感器把花卉生长环境"翻译"成了看得见的数据:YL-69 盯土壤湿度、BH1750 盯光照、E-201 盯酸碱度、SEN0189 盯水质、DS18B20 盯温度,OLED 本地显示叠加 ESP8266 机智云上云,自动模式按阈值联动补光灯/水泵/风扇,手动模式 APP 远程掌控一切,一个月历史数据支撑长期复盘。系统选型兼顾精度与成本,软硬件测试验证了采集准确性与控制响应速度,为家庭花卉养护和智慧农业小场景提供了一个经济高效、可扩展的信息化监管样板。

七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐