站内搜索
发作品签到

分类

技术干货

智能环境监测终端

183
0
1
0

简介

基于 STC89C52RC 单片机与大夏龙雀 DX-BT311 蓝牙模块,打造全栈智能环境监测终端,核心硬件成本≤50 元。系统集成 DHT11 温湿度采集、LCD1602 本地显示(对比度可调)。

简介:基于 STC89C52RC 单片机与大夏龙雀 DX-BT311 蓝牙模块,打造全栈智能环境监测终端,核心硬件成本≤50 元。系统集成 DHT11 温湿度采集、LCD1602 本地显示(对比度可调)。
更新时间:2026-03-16 10:29:16

具体技术细节参考CSDN文章:

CSDN功能演示及介绍

项目简介

本项目是基于 STC89C52RC 单片机打造的全栈智能环境监测终端,核心搭载大夏龙雀 DX-BT311 蓝牙模块、DHT11 温湿度传感器,总成本≤50 元。系统实现温湿度本地采集显示、蓝牙无线数据传输、微信小程序无线监控,支持历史曲线分析、阈值自定义报警及低功耗运行,适配家庭、实验室、农业大棚等多场景,全链路开源可复刻。

项目功能

本设计是基于 STC89C52RC 单片机设计的智能环境监测系统;核心实现 DHT11 温湿度数据每秒采集、LCD1602 本地实时显示(支持对比度调节),通过大夏龙雀 DX-BT311 蓝牙模块将数据透传至微信小程序,小程序端可查看实时数据、历史趋势曲线、自定义温湿度报警阈值;硬件端配备 6 个独立按键,支持本地阈值设置、模式切换,温湿度超阈值时触发蜂鸣器断续报警;创新设计事件驱动低功耗模式,适配电池供电场景;应用场景:家庭阳台绿植环境监测、实验室试剂存储环境监控、小型农业大棚温湿度预警、仓储环境实时监测等。

项目参数

  • 核心主控采用 STC89C52RC 单片机,8K Flash、512B RAM,支持 ISP 在线编程,无需额外编程器;
  • 选用 DHT11 数字温湿度传感器,温度测量范围 0~50℃(误差 ±0.5℃),湿度测量范围 20%~90% RH(误差 ±5% RH);
  • 搭载大夏龙雀 DX-BT311 蓝牙 5.4 模块,串口透传模式,空旷传输距离可达 200 米,穿墙(2 堵)传输距离 10 米,丢包率≤0.22%;
  • 采用 LCD1602 液晶显示模块,8 位并行驱动,配备 10K 电位器实现对比度可调,第一行显示实时温湿度,第二行显示报警阈值;
  • 配备 6 个独立按键,功能分别为模式切换、阈值加、阈值减、确认、取消、低功耗切换;
  • 报警模块采用 PNP 三极管驱动蜂鸣器,超阈值时 1kHz 频率断续鸣叫,无 LED 灯冗余报警;
  • 功耗参数:正常工作模式约 30mA,低功耗模式(间隔 5 秒采集 + 蓝牙休眠)约 8mA,1000mAh 电池续航可达 5 天;
  • 供电方式支持 USB 5V 供电、3.7V 锂电池供电(经 AMS1117-3.3V 稳压);
  • 无外置存储芯片,阈值参数本地暂存,掉电后需重新设置(可拓展 AT24C02 实现掉电保存)。

原理解析(硬件说明)

本项目由以下部分组成:电源部分、主控部分、温湿度采集部分、蓝牙通信部分、显示部分、按键交互部分、报警部分,核心通过单片机采集温湿度数据,经本地显示后通过蓝牙透传至小程序,同时响应按键操作实现阈值设置与报警逻辑。

电源电路:
采用 TYPE-C 接口作为 USB 供电入口,同时支持 3.7V 锂电池供电;USB 接口输出 5V 给单片机、DHT11、LCD1602 供电,锂电池经 AMS1117-3.3V 稳压芯片输出 3.3V 给大夏龙雀 DX-BT311 蓝牙模块(避免 5V 烧模块);电源端并联 22uF 电解电容 + 0.1uF 陶瓷电容滤波,降低电压纹波影响通信稳定性。
image.png

主控及传感采集电路:主控STC89C52RC最小系统搭载11.0592MHz晶振、RC复位电路,P3.2引脚连接DHT11 DATA引脚实现单总线通信;DHT11 VCC接5V、GND与主控共地,数据引脚无需上拉电阻(DHT11内置),通过精准时序控制完成温湿度数据采集与校验。
image.png

蓝牙通信电路:大夏龙雀DX-BT311模块与主控UART交叉连接(TX接P3.0、RX接P3.1),VCC接3.3V、GND与主控共地;模块电源端并联滤波电容,PCB布局时模块靠近边缘,天线区域预留5mm净空区,远离金属元件与电源线减少射频干扰。

image.png

软件代码

// 核心代码片段:DHT11温湿度采集 + 蓝牙透传发送
// 1. 定义核心引脚
sbit DHT11_DATA = P3^2;
sbit BEEP = P3^6;
// 2. 温湿度存储变量
unsigned char humi_int, humi_dec, temp_int, temp_dec, check_sum;
unsigned char temp_max = 30, temp_min = 20; // 温度阈值

// 3. 串口初始化(适配DX-BT311,9600bps)
void UART_Init() {
    TMOD |= 0x20;
    TH1 = 0xFD;
    TL1 = 0xFD;
    TR1 = 1;
    SCON = 0x50;
    EA = 1;
    ES = 1;
}

// 4. DHT11数据采集(带校验)
bit DHT11_Read_Data() {
    // 省略DHT11初始化、字节读取逻辑(完整代码见Gitee)
    if((humi_int + humi_dec + temp_int + temp_dec) == check_sum) {
        return 1;
    }
    return 0;
}

// 5. 蓝牙数据封装发送
void Send_To_Bluetooth() {
    unsigned char buf[30];
    sprintf(buf, "#%d,%d,%d,%d*", temp_int, humi_int, temp_max, temp_min);
    UART_Send_String(buf);
}

// 6. 主循环逻辑
void main() {
    UART_Init();
    LCD1602_Init();
    while(1) {
        if(DHT11_Read_Data() == 1) {
            LCD_Show_Data(); // 本地显示
            Send_To_Bluetooth(); // 蓝牙发送
            // 阈值报警判断
            if(temp_int > temp_max || temp_int < temp_min) {
                BEEP = 0; // 蜂鸣器报警
                Delay_ms(500);
                BEEP = 1;
            }
        }
        Delay_ms(1000);
    }
}

注意事项

  • 大夏龙雀 DX-BT311 模块仅支持 3.3V 供电,严禁接 5V,否则会烧毁模块;
  • 蓝牙模块与单片机必须共地,未共地会导致串口数据乱码、通信失败;
  • DHT11 传感器对时序要求极高,代码中需严格按照手册添加精准延时,否则采集数据失败;
  • LCD1602 对比度调节电位器建议选用 10K 阻值,焊接时靠近 LCD 模块便于调试;
  • PCB 布局时,DX-BT311 模块需靠近板边,天线区域预留 5mm 净空区,远离电源线和金属元件;
  • 低功耗模式下需关闭 LCD 背光,仅保留蓝牙唤醒功能,否则会大幅增加功耗;
  • 小程序与蓝牙配对前需确保手机蓝牙开启,模块设备名需与小程序搜索名称一致(默认修改为 “环境监测终端”);
  • 焊接按键时需注意引脚间距,避免短路,建议先焊上拉电阻再焊按键。

实物图

2af49df3ce9e03886516d408000dbd82.jpg

image.png

image.png

添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序

底部导航