基于stm32单片机的智能家居环境监控系统

​一.硬件方案

智能家居环境监控系统的整体电路主要由stm32单片机最小系统,光MQ-2烟雾传感器电路,红外人体检测电路,DS18B20温度传感器,LCD1602显示电路,水泵驱动电路,风扇驱动电路,LED指示灯,蜂鸣器报警电路;原理图如图:
在这里插入图片描述

PCB如下:
在这里插入图片描述

二.设计功能

1.通过MQ-2烟雾传感器及检测电路对周围环境中的烟雾浓度值数据进行采集,由模数转换电路将mq-2检测电路输出的模拟量转换成数字量,根据电压值换算出当前烟雾浓度,通过DS18B20温度传感器检查当前环境温度,采用单总线的通信发送,最后将数据传送给微控制器,并由微控制器对数据进行处理分析。
2.单片机将烟雾传感器的检测数据显示在LCD1602液晶显示屏上,使烟雾温度浓度检测结果一目了然,方便人们随时随地的了解周围的烟雾浓度状况。
3.当系统检测到烟雾浓度超过报警值时,水泵开启,蜂鸣器报警,并发送短信。
4.如果温度浓度过高,便由微控制器通过报警电路进行必要的提醒,此时蜂鸣器响起,风扇开启,并发送短信。
5.人体红外通过热释电模块检查是否有人,如果开启防盗模式,检查到有人通过gsm来发送短信,并蜂鸣器报警。
6.设有的5个按键可对各个传感器参数的报警值进行调整;分别为设置键、加一键、减一键、一键报警键、报警开关键。

三.软件设计

主程序源码

int main(void)
{	u16 test_adc,count=0;u8 shanshuo=0;u8 RT_BJ = 0;u8 send_flag1=0;u8 send_flag2=0;u8 send_flag3=0; delay_init();	    	 //延时函数初始化	  NVIC_Configuration(); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级KEY_IO_Init();                                                                                DS18B20_Init();delay_ms(300);BEEP_DISENABLE(); RTHW_Init();  LCD_Init();          // 1602初始化 LCD_Write_String(0,0,"   GSM Init...  ");Usart1_Init(9600);gsm_init();//gsm初始化Adc_Init();delay_ms(100);LCD_Write_String(0,0, "T:   C SMOKE:  %");//进入主页面,第一行显示的内容LCD_Write_String(0,1, "FD:OFF          ");//进入主页面,第二行显示的内容LCD_Write_Char(4,0,0xDF);//温度的小圆圈memset(STM32_RX1_BUF, 0, STM32_RX1BUFF_SIZE);//清除缓存STM32_Rx1Counter = 0;while(1){SMS_Receive();KEY_SCAN();//按键扫描if(count++ >= 300 && setn==0)//大概延时300毫秒,执行以下代码{count = 0;shanshuo =!shanshuo;test_adc = Get_Adc_Average(ADC_Channel_9,20);//读取通道9的20次AD平均值PPM = test_adc*99/4096;//转换成0-99百分比PPM = PPM >= 99? 99: PPM;//最大只能到百分之99Temperature = DS18B20_Get_Temp()/10;//读取温度短信内容装载TEXT1[23]=TEXT2[35]=Temperature/10+0x30;TEXT1[27]=TEXT2[39]=Temperature%10+0x30;TEXT1[51]=TEXT3[35]=PPM/10+0x30;TEXT1[55]=TEXT3[39]=PPM%10+0x30;if(Temperature>=Temperature_MAX && shanshuo)//温度超标,闪烁显示{LCD_Write_Char(2,0,' ');LCD_Write_Char(3,0,' ');LCD_Write_Char(4,0,' ');LCD_Write_Char(5,0,' ');}else{LCD_Write_Char(2,0,'0'+Temperature/10);LCD_Write_Char(3,0,'0'+Temperature%10);LCD_Write_Char(4,0,0xDF);LCD_Write_Char(5,0,'C');}if(PPM>=PPM_MAX && shanshuo)//烟雾超标,闪烁显示{LCD_Write_Char(13,0,' ');LCD_Write_Char(14,0,' ');LCD_Write_Char(15,0,' ');}else{LCD_Write_Char(13,0,'0'+PPM/10);LCD_Write_Char(14,0,'0'+PPM%10);LCD_Write_Char(15,0,'%');}if(sendFlag == 1)//判断它是否等于1{sendFlag = 0;sim800_send(TEXT1);//发送短信}if(Temperature>=Temperature_MAX)//温度超标{BEEP=1;RELAY2=1;//开启风扇if(send_flag1 == 0)//为了报警只发送一条短信{send_flag1 = 1;sim800_send(TEXT2);//温度超标,发送短信}}else{	send_flag1 = 0;RELAY2=0;}if(PPM>=PPM_MAX)//烟雾超标{BEEP=1;RELAY1=1;//开启水泵if(send_flag2 == 0){send_flag2 = 1;sim800_send(TEXT3);//烟雾超标,发送短信}}else{			send_flag2 = 0;RELAY1=0;}if(RTHW==1 && Mode==1)//在防盗模式下,检测到有人{BEEP=1;LCD_Write_String(8,1, "Somebody");RT_BJ = 1;if(send_flag3==0){send_flag3 = 1;sim800_send("8B66544AFF0168C06D4B523067094EBAFF01");//发送短信“警告!检测到有人!”}}else {LCD_Write_String(8,1, "        ");RT_BJ = 0;send_flag3 = 0;}if(Temperature < Temperature_MAX && PPM < PPM_MAX && RT_BJ==0 && SD_baojing==0)BEEP=0;//关闭蜂鸣器}delay_ms(1);}
}

资料链接:https://pan.baidu.com/s/1YH5I6bWCwr8lwUZNipetxQ?pwd=ssil
提取码:ssil

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13361.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【EXCEL】给数据添加图表(数据条、柱状图、折线图等),快速分析功能图文详解

目录 0.环境 1.背景简介 2.具体实现 2.1 给数据添加数据条 实现效果&#xff1a; 具体操作&#xff1a; 2.2 给数据添加柱状图图表 实现效果&#xff1a; 具体操作&#xff1a; 2.3 给数据添加迷你图&#xff08;在表格中的折线图&#xff09; 实现效果&#xff1a; …

UNI-APP_vmin横屏适配问题

vmax和vmin vmax 相对于视口的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax vmin 相对于视口的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin当竖屏布局时750rpx是竖屏布局屏幕的宽度 vmin不管横竖屏的情况下&#xff0c;100vmin都是手机屏幕…

Claude使用教程,解决Claude不能回复

Claude是ChatGPT最为有⼒的竞争对⼿之⼀&#xff0c;Claude 的研发公司是专注人工智能安全和研究的初创公司 Anthropic&#xff0c;由前 OpenAI 员工共同创立的。今年 3 月份 Anthropic 获得了谷歌 3 亿美元的投资&#xff0c;谷歌也因此获得其 10% 股份。 ⽬前可以通过官⽹加…

【Accumulate】Gitee解决每次推送输入账户密码问题

【前言】 每次建立私人仓库后&#xff0c;一推送就得输入账户密码&#xff0c;真的巨烦人啊。 【解决】 step1&#xff1a; 绑定私匙&#xff1a; 配置Git_犟小孩的博客-CSDN博客 step2&#xff1a; 每次绑定远程仓库的时候&#xff0c;使用SSH绑定 如果已经绑定过了&…

目标检测舰船数据集整合

PS&#xff1a;大家如果有想要的数据集可以私信我&#xff0c;如果我下载了的话&#xff0c;可以发给你们~ 一、光学数据集 1、 DIOR 数据集(已下载yolo版本)&#xff08;论文中提到过&#xff09; DIOR由23463张最优遥感图像和190288个目标实例组成&#xff0c;这些目标实例用…

【适配器模式】—— 每天一点小知识

&#x1f4a7; 适配器模式 \color{#FF1493}{适配器模式} 适配器模式&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法》专栏的文章图文并茂&#x1f995;…

【源码】vue2+element+laravel8开发不良事件上报系统源码

系统概述&#xff1a; 医院不良事件报告系统为医院内质量控制、患者安全关注、医疗安全不良事件方面的精细化的管理提供了平台&#xff0c;是等级医院评审的必备内容&#xff0c;评审要求医院直报系统要与卫生部“医疗安全(不良)事件报告系统”建立网络对接。 不良事件报告系统…

C语言 base32与base64加解密

概述 Base32、Base64编码就是分别用32个、64个可打印字符表示二进制数据。 一、Base32规则 32 2^5&#xff0c;所以需要5 Bit来表示一个base32字符。一个字节8 Bit&#xff0c;5和8的最小公倍数是40。编码的过程中&#xff0c;以5个字节为一组转为8个base32字符&#xff0c;不…

【Redisson】Redisson--分布式远程服务(Remote Service)

Redisson系列文章&#xff1a; 【Redisson】Redisson–基础入门【Redisson】Redisson–布隆(Bloom Filter)过滤器【Redisson】Redisson–分布式锁的使用&#xff08;推荐使用&#xff09;【分布式锁】Redisson分布式锁底层原理【Redisson】Redisson–限流器 文章目录 一、Redi…

目标检测+车道线识别+追踪+测距(代码+部署运行)

目标检测车道线识别追踪测距 本文主要讲述项目集成&#xff1a;从车道线识别、测距、到追踪&#xff0c;集各种流行模型于一体&#xff01; 不讲原理&#xff0c;直接上干货&#xff01; 把下文环境配置学会&#xff0c;受益终生&#xff01; 各大项目皆适用&#xff01; …

java项目之高校二手交易平台(ssm+jsp+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的高校二手交易平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&…

Linux VS Windows 孰优孰劣?

目录 1. 开源 vs. 闭源&#xff1a;2. 用户界面&#xff1a;3. 软件兼容性&#xff1a;4. 系统安全性&#xff1a;5. 社区支持和文档资源&#xff1a; Linux和Windows是两个主要的操作系统&#xff0c;它们在很多方面都有不同的特点和使用体验。以下是对Linux和Windows进行比较…