基于stm32多路温室大棚监测 容易制作 主要功能: [1]OLED屏可以实时显示四路温湿度数据 [2]手机APP可以远程监控四路温湿度数据 [3]温度湿度阈值均可手动通过按键设置 温度或者湿度超过阈值上限打开排气扇 温度低于阈值打开加热器 湿度低于阈值打开加湿器 原理图pcb使用立创eda 软件Keil5 主控芯片是stm32f103c8t6 WIFI模块使用 esp 8266 云平台使用阿里云

搞个温室大棚监测系统其实没想象中难,咱们今天就拿STM32F103C8T6这个性价比之王来折腾。先看硬件清单:四个DHT11温湿度探头(别买成DHT22,引脚不通用)、0.96寸OLED屏、ESP8266-01S模组,外加几个按键和继电器模块。原理图用立创EDA画特别方便,记得给8266单独供电,这货耗电跟小饿狼似的。

先上核心代码——温湿度采集部分:

// 四路传感器GPIO定义
#define DHT1_PORT GPIOB
#define DHT1_PIN  GPIO_Pin_12
//...其他三路类似

void Read_DHTs(float temp[4], float humi[4]){
    for(int i=0; i<4; i++){
        DHT_Read(&dht[i]);  // 自定义的DHT驱动
        temp[i] = dht[i].temperature;
        humi[i] = dht[i].humidity;
        Delay_ms(50);  // 防止连续读取冲突
    }
}

这个循环读取要注意间隔时间,我之前连续读取导致数据漂移,后来加了50ms延时稳如老狗。OLED显示用硬件I2C驱动,注意把四路数据排版好看点,别挤成一坨。

阈值设置才是精髓,用按键控制:

// 按键状态机处理
if(set_mode){
    switch(current_param){
        case TEMP_HIGH: 
            temp_high += (key_up)?1:-1;
            break;
        //...其他三个参数类似
    }
    Save_Thresholds();  // 写入Flash保存
}

这里有个坑——STM32的Flash写入前要先解锁,我用的是库函数自带的Flash操作,记得页地址别覆盖程序区。保存时建议用结构体打包四个阈值,避免多次擦写。

基于stm32多路温室大棚监测 容易制作 主要功能: [1]OLED屏可以实时显示四路温湿度数据 [2]手机APP可以远程监控四路温湿度数据 [3]温度湿度阈值均可手动通过按键设置 温度或者湿度超过阈值上限打开排气扇 温度低于阈值打开加热器 湿度低于阈值打开加湿器 原理图pcb使用立创eda 软件Keil5 主控芯片是stm32f103c8t6 WIFI模块使用 esp 8266 云平台使用阿里云

阿里云通信这块最折腾,ESP8266的AT指令要配置成透传模式:

void ESP_SendData(float* temp, float* humi){
    char buffer[128];
    sprintf(buffer,"{\"temp1\":%.1f,\"humi1\":%.1f,...}",temp[0],humi[0],...);
    USART_SendString(USART2, "AT+CIPSEND=0,128\r\n");
    Delay_ms(100);
    USART_SendString(USART2, buffer);
}

注意JSON格式的引号要用转义字符,我在这卡了半天才发现。云端记得配置物模型,每个传感器对应一个属性点。

控制逻辑简单粗暴:

void Control_Devices(){
    for(int i=0; i<4; i++){
        if(temp[i] > temp_high) Relay_On(FAN);  // 开风扇
        else if(temp[i] < temp_low) Relay_On(HEATER);
        
        if(humi[i] > humi_high) Relay_On(FAN); 
        else if(humi[i] < humi_low) Relay_On(HUMIDIFIER);
    }
}

继电器驱动记得加光耦隔离,别让大电流烧了单片机GPIO。实测发现加湿器和加热器别同时开,电源容易撑不住。

最后说下PCB布局:模拟传感器走线远离数字电路,8266的天线区域要净空。电源部分多放几个滤波电容,我第一版没加导致8266启动时OLED会闪屏。完整工程代码已经扔Github了,需要自取。这项目最适合练手,从传感器到云端全链路打通,做完感觉自己能去搞智慧农业了(笑)。

Logo

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

更多推荐