基于STM32单片机大棚温湿度检测无线蓝牙APP控制设计

1 系统功能介绍

本设计实现了一个基于 STM32 单片机的大棚温湿度检测与蓝牙 APP 控制系统,适用于现代智能农业环境。大棚种植需要稳定的温湿度环境以保证作物的健康生长,而传统的人工检测与控制效率低、精度差。通过本系统,可以实现温湿度的实时监测、数据显示与自动/手动控制,极大地提升了智能化水平。

系统的主要功能包括:

  1. 温湿度实时检测
    通过温湿度传感器对大棚内部的环境参数进行采集,STM32 单片机将数据进行处理后,在 1602 液晶显示屏上显示,同时通过蓝牙模块传输至手机 APP 端,用户可以实时掌握环境变化情况。

  2. 阈值报警功能
    当检测到湿度超过 75%RH 时,系统会通过蓝牙向 APP 端发送报警信息,提示用户大棚环境存在异常,需要进行通风或除湿处理。

  3. 风扇智能控制
    系统在本地与远程均可对风扇进行控制。通过手机 APP 发送字符指令即可操作:

    • 发送 “O”,风扇启动;
    • 发送 “C”,风扇关闭。
      这种控制方式既可以用于自动调节环境,也支持用户进行手动干预。
  4. 本地显示与远程交互结合
    系统不仅在大棚内通过 LCD1602 显示屏显示数据,还通过蓝牙实现与 APP 的无线连接,满足远程监控与调节的需求。

  5. 低功耗与高稳定性
    系统采用 STM32F103C8T6 单片机作为核心,运行效率高、稳定性强,结合蓝牙模块实现低功耗通信,保证系统能够长时间连续运行,适应大棚使用场景。


2 系统电路设计

2.1 STM32 最小系统电路

系统核心是 STM32F103C8T6 单片机,属于 ARM Cortex-M3 内核的 32 位 MCU,具备高速运算能力和丰富外设接口,能够轻松完成传感器采集、蓝牙通信和 LCD 显示等功能。最小系统包括:

  • 电源电路:采用 AMS1117-3.3 稳压芯片提供 3.3V 电压;
  • 时钟电路:外接 8MHz 晶振,系统频率可倍频至 72MHz,保证 MCU 高速运行;
  • 复位电路:包括上电复位与按键复位电路,确保系统稳定工作;
  • 调试接口:通过 SWD 接口实现程序下载和调试。

2.2 温湿度传感器电路

温湿度检测模块可采用 DHT11DHT22

  • DHT11:成本低,精度适中,适用于对温湿度要求不高的场合;
  • DHT22:检测范围更宽,精度更高,适合精确环境控制。

传感器采用单总线通信方式,与 STM32 的 GPIO 引脚连接,采集的数据经过处理后用于显示与控制。


2.3 液晶显示电路

系统使用 LCD1602 液晶模块进行本地数据显示:

  • 支持 2 行 16 字符显示;
  • 接口方式:并行接口,数据总线 D0~D7 与单片机相连;
  • 用于实时显示温度、湿度以及风扇工作状态。

2.4 风扇控制电路

风扇作为大棚环境调节的重要设备,控制电路采用 继电器驱动

  • STM32 的 GPIO 输出低电平/高电平控制三极管开关;
  • 三极管驱动继电器,继电器再控制风扇电源;
  • 提供隔离与放大,保证单片机的安全与稳定。

2.5 蓝牙模块电路

系统采用 HC-05 蓝牙模块实现无线通信:

  • 接口:UART 串口(TX、RX);
  • 电源:3.3V;
  • 功能:通过 AT 指令配置后,模块与手机 APP 建立通信,传输传感器数据与接收控制指令。

2.6 电源电路

系统由 5V 电源输入,通过稳压芯片转换为 3.3V,分别供给 STM32、蓝牙模块与传感器。电源电路增加电容滤波与稳压设计,保证整个系统稳定运行。


3 程序设计

系统软件采用模块化编程方法,主要包含以下部分:主程序框架、传感器采集、液晶显示、风扇控制、蓝牙通信以及报警逻辑处理。


3.1 主程序框架

#include "stm32f10x.h"
#include "lcd1602.h"
#include "dht11.h"
#include "usart.h"
#include "fan.h"
#include "bluetooth.h"

int main(void)
{
    SystemInit();
    LCD1602_Init();
    DHT11_Init();
    USART1_Init(9600);
    Fan_Init();

    while(1)
    {
        DHT11_ReadData();
        LCD1602_Display();
        Bluetooth_SendData();
        Control_Process();
        Delay_ms(1000);
    }
}

3.2 温湿度传感器采集程序

uint8_t temperature, humidity;

void DHT11_ReadData(void)
{
    DHT11_Read(&temperature, &humidity);
}

此函数每隔一秒钟读取一次温湿度,并将其存储在全局变量中,供显示与报警使用。


3.3 液晶显示程序

void LCD1602_Display(void)
{
    char str[16];
    sprintf(str, "T:%dC H:%d%%", temperature, humidity);
    LCD1602_SetCursor(0,0);
    LCD1602_Print(str);

    if(Fan_State == 1)
        LCD1602_Print("Fan:ON ");
    else
        LCD1602_Print("Fan:OFF");
}

液晶用于直观显示温湿度数值以及风扇的运行状态。


3.4 风扇控制程序

void Fan_On(void)
{
    GPIO_SetBits(GPIOB, GPIO_Pin_5);
    Fan_State = 1;
}

void Fan_Off(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_5);
    Fan_State = 0;
}

风扇的开启与关闭由单片机控制 GPIO 输出电平来实现。


3.5 蓝牙通信程序

蓝牙通过 USART 串口实现与 APP 的双向通信:

void Bluetooth_SendData(void)
{
    char buffer[32];
    sprintf(buffer,"T:%d,H:%d\n",temperature,humidity);
    USART_SendString(USART1, buffer);
}

void Bluetooth_ReceiveData(uint8_t cmd)
{
    if(cmd == 'O') Fan_On();
    if(cmd == 'C') Fan_Off();
}

在循环中不断检测蓝牙接收缓冲区,如果接收到 “O” 或 “C”,则执行相应的风扇控制操作。


3.6 报警逻辑程序

void Control_Process(void)
{
    if(humidity > 75)
    {
        USART_SendString(USART1, "Warning: Humidity > 75%\n");
    }
}

当湿度超过阈值时,系统会立即向 APP 发送警告信息,提醒用户进行环境调节。


4 总结

本设计基于 STM32 单片机,构建了一个智能化的大棚温湿度检测与控制系统。其主要特点如下:

  1. 实时监控:通过温湿度传感器采集环境参数,并实时显示在 LCD1602 与 APP 上;
  2. 报警功能:湿度超过设定阈值时,系统会立即通过蓝牙发送报警消息;
  3. 风扇远程控制:用户可通过 APP 发送指令来开启或关闭风扇,灵活调节环境;
  4. 系统稳定:采用 STM32F103C8T6 作为控制核心,配合稳定的电源与外设电路,保证系统长时间可靠运行;
  5. 扩展性强:可增加光照、二氧化碳浓度等传感器,实现更全面的农业环境监控。

本系统不仅能够显著提升大棚的自动化水平,也为智慧农业的发展提供了一种可行的技术方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值