【单片机毕业设计】【dz-221】基于单片机的室内环境监测系统

  一、功能简介

项目名:环境监测(实物)
项目编号:mcupark-dz-221
单片机类型:STM32F103C8T6
具体功能:
1、通过MQ-2检测烟雾值,超过设置最大值进行蜂鸣器报警
2、通过MQ-3检测酒精值,超过设置最大值进行蜂鸣器报警
3、通过MQ-4检测甲烷值,超过设置最大值进行蜂鸣器报警
4、通过MQ-5检测天然气,超过设置最大值进行蜂鸣器报警
5、通过MQ-7检测CO值,超过设置最大值进行蜂鸣器报警
6、通过DHT11检测温湿度值,温湿度超过上下限进行蜂鸣器报警
7、通过RTC内部时钟获取时间,可通过按键修正时间
8、通过AT24C02每分钟存一次时间及测量数值
9、通过按键设置上限值
10、通过OLED显示屏显示数据
 

二、系统框图设计

本设计以单片机为核心控制器,加上其他模块一起组成此次设计的整个系统,其中包括中控部分、输入部分和输出部分。中控部分采用了单片机控制器,其主要作用是获取输入部分的数据,经过内部处理,逻辑判断,最终控制输出部分。输入由八部分组成,第一部分是烟雾检测模块,通过该模块检测烟雾浓度值;第二部分是酒精检测模块,通过该模块检测酒精浓度值;第三部分是甲烷检测模块,通过该模块检测甲烷值;第四部分是天然气检测模块,通过该模块检测天然气值;第五部分是CO检测模块,通过该模块检测CO的浓度值;第六部分是温湿度检测模块,通过该模块检测当前环境的温湿度值;第七部分是按键模块,通过该模块可以切换界面、设置阈值、切换模式等;第八部分是供电模块,通过该模块可给整个系统进行供电。输出由两部分组成,第一部分是显示模块,通过该模块可以显示监测的烟雾、酒精、甲烷、天然气、CO、温湿度值以及设置的阈值;第二部分是报警模块,当监测到烟雾、酒精、甲烷、天然气、CO、温湿度值大于最大设置范围时进行声光报警。除此之外,存储模块既作为输入又作为输出,该模块通过AT24C02每分钟存一次时间及测量数值。具体系统框图如图3.1所示。

三、软件流程设计

 四、32实物图

单片机型号:STC89C32

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

 五、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图

 六、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。

七、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

*******处理函数
*****/
void Manage_function(void)
{
    if(flag_display == 0)                  //测量界面
    {
        if(smog_value > smog_max || alcohol_value > alcohol_max || CH4_value > CH4_max || trq_value > trq_max || co_value > co_max ||
            temp_value > temp_max*10 || temp_value < temp_min*10 || humi_value > humi_max*10 || humi_value < humi_min*10)  
        {
            if(time_num % 3 == 0)                //超过设置阈值进行蜂鸣器报警

            {
                BEEP =~BEEP;
                LED =~ LED;
            }
        }
        else
        {
            LED = 1;
            BEEP = 0;
        }
    }
    else                                                             //设置界面
    {
        LED = 1;
        BEEP = 0;
    }
    
    if(calendar.sec == 0)
    {
        if(flag_finish == 0)
        {
            flag_finish = 1;
            
            cunchu_num++;
            
            if(cunchu_num > 15)
                cunchu_num = 1;
            AT24CXX_WriteOneByte(0x01,cunchu_num);    
            Delay_ms(300);
            
            cunchu[0] = temp_value/10;
            cunchu[1] = humi_value/10;
            cunchu[2] = co_value/10;
            cunchu[3] = co_value%10;
            cunchu[4] = CH4_value/10;
            cunchu[5] = CH4_value%10;
            cunchu[6] = smog_value/10;
            cunchu[7] = smog_value%10;
            cunchu[8] = trq_value/10;
            cunchu[9] = trq_value%10;
            cunchu[10] = alcohol_value/10;
            cunchu[11] = alcohol_value%10;

            cunchu[12] =calendar.hour;
            cunchu[13] =calendar.min;
            cunchu[14] =calendar.sec;

            AT24CXX_Write(cunchu_num*0x10,cunchu,15);
        }
    }
    else
        flag_finish = 0;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值