当前位置: 首页 > news >正文

【51单片机】【protues仿真】基于51单片机PM2.5温湿度测量蓝牙系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、LCD1602液晶显示温湿度和PM2.5值
2、按键设置阈值​
3、温湿度大于上限或低于下限蜂鸣器警报
4、M2.5大于上限声光警报
5、数据通过蓝牙发送到上位机
6、上位机控制LED点亮关闭

二、使用步骤

基于51单片机的PM2.5温湿度测量系统结合蓝牙功能,可通过无线传输实现环境数据的远程监控。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、DHT11温湿度传感器、PM2.5传感器模块
4、蜂鸣器模块
5、LED灯模块
6、LCD1602显示模块

四、软件设计


#include"LCD1602.h"  //添加LCD1602头文件
#include"dht11.h"      //添加DHT11头文件
#include"adc0832.h"
#include<math.h>
sbit BUZZER = P1^3;     //蜂鸣器驱动端口==P1^3
sbit Reduc  = P3^3;     
sbit Add = P3^4;    
sbit Mode = P3^2;     
sbit LED1=P2^0;
sbit LED2=P2^1;
uchar Rx_buf[4],Rxnum=0;
uchar T1L=15,T1H=30,R1L=10,R1H=30;
uchar temp,humi; //保存温度,湿度

/************************************************
** 函数名称 : void main(void)
** 函数功能 : 主函数
** 输    入 : 无
** 输    出 : 无
** 说    明 :
************************************************/
void main(void)
{
    double PM,pm1,pm2;
    int count_delay=0;
    int PMVAL=0,HPM=200,PM_count=0,pm1_count=0;
    uchar T1_data=0,R1_data=0,T2_data=0,R2_data=0;//温度、湿度变量
    uchar shezhi_flag=1,Mode_flag=1,n=1;//设置变量
    uchar bueezr_flag=0,count=0,buzzer_time=9;//蜂鸣器报警变量
    uint Mode_count=0; 
    uchar disp[16]  ={"PM2.5:0000ug/m3 "};
    uchar disp1[16]= {"T :00C    RH:00%"}; 
    uchar Tx_Buf[15];
     InitUART();            //初始化串口                                      
    LCD_Init();
    WriteChar(1,0,16,disp); 
    WriteChar(2,0,16,disp1); 
    while(1)
    {
        
        DHT11_receive(&temp,&humi); 
        T1_data=temp;
        disp1[3]=T1_data/10+0x30;//十位
        disp1[4]=T1_data%10+0x30;//个位

        R1_data=humi;//湿度
        disp1[13]=R1_data/10+0x30;//十位
        disp1[14]=R1_data%10+0x30;//个位
                                      
        pm1+=read_data(1);
        if(++PM_count>=3)
        {
              PM_count=0;
               pm1=pm1/3;
            pm2+=pm1;
            pm1=0;
            if(++pm1_count>=5)
            {
                pm1_count=0;
                PM=pm2/5;
                PM=PM*50/255;
                PM-=4;
                PM/=5;
                PM*=1000;
                PMVAL=PM;
                PMVAL+=235;    PMVAL=PMVAL/9;
                if(PMVAL>=9999)PMVAL=9999;
                WriteCOMDATA(0x86,0);
                if(PMVAL<0)//PMVAL=0;
                {WriteCOMDATA(0+0x30,1);PMVAL=abs(PMVAL);}
                else WriteCOMDATA(PMVAL/1000+0x30,1);
                WriteCOMDATA(PMVAL/100%10+0x30,1);
                WriteCOMDATA(PMVAL/10%10+0x30,1);
                WriteCOMDATA(PMVAL%10+0x30,1);
                PM=pm1=pm2=0;
            }
        }

        
        /********LCD1602显示********/                        
        //WriteChar(1,0,16,disp); //在第一行显示‘内容’
        WriteChar(2,0,16,disp1); //在第二行显示‘内容’
        if(Mode_flag==0){Mode_count++;if(Mode_count>20){Mode_count=0;Mode_flag=1;}}
        if(++count_delay>=20)
        {
            count_delay=0;
            Tx_Buf[0]='T';    //帧头
            Tx_Buf[1]=T1_data/10%10+0x30;         //将温湿度数据送往发送数组,送给蓝牙模块让手机APP显示
            Tx_Buf[2]=T1_data%10+0x30;        
            Tx_Buf[3]=R1_data/10%10+0x30;
            Tx_Buf[4]=R1_data%10+0x30;
            Tx_Buf[5]=PMVAL/1000+0x30;         //将温湿度数据送往发送数组,送给蓝牙模块让手机APP显示
            Tx_Buf[6]=PMVAL/100%10+0x30;        
            Tx_Buf[7]=PMVAL/10%10+0x30;
            Tx_Buf[8]=PMVAL%10+0x30;
            Tx_Buf[9]=' ';//结束符
            Tx_Buf[10]=' ';//结束符
            Tx_Buf[11]=' ';//结束符
            UART_send_string(    Tx_Buf);      
        }
    }
}


 
 

五、实验现象

演示视频:

http://www.dtcms.com/a/390116.html

相关文章:

  • 病毒学原理
  • 怎样快速搭建一个高效的数据存储系统:Python实战指南
  • 音频驱动视频生成新突破:Wan2.2-S2V 模型全面体验与教程
  • 关于pc端分页+h5端加载更多的vue3简单钩子函数
  • MySQL 练习题
  • 推客小程序二级分销机制设计与实现:从0到1搭建裂变增长引擎
  • 【C++】多态(上)
  • uos中创建自定义Ip (192.168.137.1)的热点的方法
  • 【每日算法】搜索插入位置 LeetCode
  • vue+springboot+ngnix前后端分离项目部署
  • sward入门到实战(1) - 安装教程
  • 独立站的优势有哪些
  • Java学习历程18——哈希表的使用
  • 机械传动里的名词——传动比
  • qiankun 主子应用部署教程(Nginx 小白版)
  • 开启视觉奇旅:走进《计算机图形学》的世界
  • 光伏组件IV曲线测试仪的功能
  • MySQL MHA
  • 【试题】信息安全管理员考试题库
  • 硬件(十四)SPI通信协议
  • 大模型学习:使用FastText工具进行文本分类
  • pip 指令大全
  • 计算机基础·MySQL
  • 22-29、深度学习知识手册:从全连接到生成模型的融会贯通指南
  • 【FastCAEFlow案例分享】软件在汽车场景中的应用
  • Python二进制数据读取与可变缓冲区操作详解:从基础到高阶应用
  • 面向对象编程(OOP):Java 的核心思想(详细笔记)
  • I2C 通信、AT24C02 EEPROM及LM75温度传感器的配置
  • Halcon中的并行编程(二)
  • Gin框架参数绑定完全指南:从基础到实战最佳实践