STM32与华为云IoT的智能浇花系统设计

发布时间:2026/5/16 6:59:04

STM32与华为云IoT的智能浇花系统设计 基于STM32与华为云IoT的智能浇花系统设计1. 项目概述1.1 系统架构本智能浇花系统采用STM32F1系列微控制器作为核心处理器通过多传感器协同工作实现对植物生长环境的实时监测与智能调控。系统硬件架构包含以下关键组件传感层DHT11温湿度传感器、BH1750光照传感器、模拟式土壤湿度传感器执行层继电器控制模块驱动水泵通信层ESP8266 WiFi模块实现云端连接交互层1.44寸LCD显示屏提供本地信息反馈系统通过UART串口驱动ESP8266模块接入互联网基于MQTT协议与华为云IoT平台建立双向通信。用户可通过Qt开发的跨平台应用(Android/Win)远程监控数据并控制水泵实现手动/自动双模式浇灌。1.2 设计背景现代城市生活中家庭和办公室绿植养护面临以下痛点时间成本高快节奏生活导致用户难以投入足够时间进行精细养护经验依赖强传统浇水方式依赖人工观察和经验判断资源浪费缺乏精确控制易导致浇水过量或不足远程管理难出差或旅行期间无法及时照料植物本系统通过物联网技术解决上述问题实现植物养护的智能化与自动化。2. 硬件设计2.1 主控电路系统采用STM32F103C8T6作为主控制器其硬件资源配置如下外设功能接口类型ADC1土壤湿度传感器采集模拟输入I2C1BH1750光照传感器I2C总线GPIODHT11温湿度传感器单总线USART1ESP8266通信串口GPIOB继电器控制推挽输出主控电路设计要点采用8MHz外部晶振提供系统时钟复位电路包含10kΩ上拉电阻和100nF电容调试接口采用SWD协议占用PA13(SCK)和PA14(SDA)2.2 传感器模块2.2.1 DHT11温湿度传感器供电电压3.3V-5.5V测量范围温度0-50℃(±2℃精度)湿度20-90%RH(±5%精度)接口单总线协议硬件连接VCC → 3.3VDATA → PA1(配置为上拉输入)GND → GND数据采集流程MCU拉低总线18ms启动信号等待传感器响应信号接收40bit数据(16bit湿度16bit温度8bit校验和)校验数据有效性2.2.2 BH1750光照传感器测量范围1-65535 lux分辨率1 lx接口I2C(地址0x23)工作模式连续高分辨率模式(0x10)一次高分辨率模式(0x20)数据读取代码示例#define BH1750_ADDR 0x23 #define BH1750_MODE 0x10 void BH1750_Init(void) { uint8_t cmd BH1750_MODE; HAL_I2C_Master_Transmit(hi2c1, BH1750_ADDR, cmd, 1, 100); } float BH1750_ReadLight(void) { uint8_t data[2]; HAL_I2C_Master_Receive(hi2c1, BH1750_ADDR, data, 2, 100); return (data[0]8 | data[1]) / 1.2; }2.2.3 土壤湿度传感器类型电阻式模拟输出工作电压3.3V-5V输出信号0-3V模拟电压(湿度越大电压越低)ADC配置12位分辨率采样周期239.5周期参考电压3.3V湿度转换公式湿度百分比 (1 - (ADC值/4095)) × 100%2.3 执行机构设计水泵控制电路采用继电器驱动方案继电器选型型号SRD-05VDC-SL-C线圈电压5V触点容量10A 250VAC驱动电路STM32 GPIO → 1kΩ电阻 → S8050 NPN三极管继电器线圈并联1N4007续流二极管安全设计最大工作时间限制(10秒)两次灌溉最小间隔(30秒)过流保护(自恢复保险丝)2.4 通信模块ESP8266-01S WiFi模块配置引脚连接功能VCC3.3V电源GNDGND地TXPA10STM32 USART1 RXRXPA9STM32 USART1 TXCH_PD3.3V使能RSTNC复位AT指令初始化序列ATCWMODE1 // STA模式 ATCWJAPSSID,password // 连接WiFi ATCIPSTARTTCP,iot.huaweicloud.com,1883 // 建立TCP连接2.5 电源设计系统采用5V USB供电通过AMS1117-3.3稳压芯片为各模块供电电源分配3.3VSTM32、ESP8266、传感器5V继电器线圈、LCD背光滤波设计输入输出端均并联100μF电解电容和100nF陶瓷电容每个IC电源引脚就近放置0.1μF去耦电容功耗估算待机电流约50mA水泵工作电流约200mA3. 软件设计3.1 系统工作流程graph TD A[系统初始化] -- B[传感器数据采集] B -- C[数据处理与显示] C -- D[云端通信] D -- E[控制决策] E --|自动模式| F[阈值判断] E --|手动模式| G[执行指令] F -- H[控制水泵] G -- H H -- B3.2 主程序架构int main(void) { // 硬件初始化 HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); MX_I2C1_Init(); MX_ADC1_Init(); // 外设初始化 LCD_Init(); DHT11_Init(); BH1750_Init(); ESP8266_Init(); // 主循环 while (1) { Sensor_Update(); // 传感器数据采集 Display_Update(); // LCD显示更新 Cloud_Process(); // 云端通信处理 Control_Logic(); // 控制逻辑执行 HAL_Delay(1000); // 1秒周期 } }3.3 关键算法实现3.3.1 自动灌溉逻辑void Auto_Watering(void) { if(System.Mode AUTO) { // 土壤湿度低于阈值且光照充足 if(Soil_Humidity Soil_Threshold Light_Intensity 500) { Pump_On(); HAL_Delay(Watering_Time); Pump_Off(); } } }3.3.2 数据滤波算法采用滑动平均滤波处理传感器数据#define FILTER_LEN 5 float Moving_Average(float new_data) { static float buffer[FILTER_LEN] {0}; static uint8_t index 0; static float sum 0; sum - buffer[index]; buffer[index] new_data; sum buffer[index]; index (index 1) % FILTER_LEN; return sum / FILTER_LEN; }3.4 华为云IoT接入3.4.1 MQTT协议实现void MQTT_Publish_Data(void) { char payload[100]; sprintf(payload, {\temp\:%.1f,\humi\:%.1f,\light\:%.0f,\soil\:%.0f,\pump\:%d}, Temperature, Humidity, Light_Intensity, Soil_Humidity, Pump_Status); char topic[50] /sys/a1b2c3d4/device1/thing/event/property/post; ESP8266_MQTT_Publish(topic, payload); }3.4.2 设备影子同步{ state: { reported: { temperature: 25.3, humidity: 45, light: 1200, soil: 63, pump: 0 }, desired: { pump: 1 } } }3.5 跨平台应用设计Qt应用核心类结构class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent nullptr); private slots: void updateSensorData(const QJsonObject data); void on_pumpButton_clicked(); private: QMqttClient *m_client; QChartView *m_chartView; QLabel *m_tempLabel; QLabel *m_humiLabel; QPushButton *m_pumpButton; };4. 系统测试与优化4.1 功能测试测试项测试方法预期结果实际结果温湿度采集用标准温湿度计对比误差±2℃/±5%RH符合光照采集用照度计对比误差±5%符合土壤湿度用标准土壤湿度仪对比误差±3%符合自动灌溉设置阈值触发达到阈值自动启停水泵符合远程控制通过APP发送指令水泵即时响应延迟1s4.2 性能优化低功耗设计空闲时STM32进入STOP模式传感器间歇采样(光照每10秒一次)LCD背光自动关闭(30秒无操作)通信优化数据压缩传输(只发送变化值)心跳包间隔动态调整(网络差时延长)稳定性增强看门狗定时器(独立硬件看门狗)传感器故障自动检测与恢复网络断开本地缓存数据4.3 实测数据不同环境下的系统响应环境条件土壤湿度变化响应时间25℃/50%RH40%→30%2秒35℃/30%RH45%→25%1秒15℃/70%RH50%→40%3秒5. BOM清单与成本分析器件型号数量单价(元)MCUSTM32F103C8T6112.5WiFi模块ESP8266-01S18.0温湿度传感器DHT1112.5光照传感器BH175013.8土壤传感器模拟式15.5LCD1.44寸SPI115.0继电器SRD-05VDC12.0PCB双面板15.0其他电阻电容等-3.0总成本约57.3元(小批量)

相关新闻