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

STM32项目分享:智能家居安防系统

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1Y64y1P7ti/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32的智能家居安防系统

功能如下:

  1. 密码锁:通过1×4键盘输入开机密码
  2. 采集温湿度:系统通过DHT11模块采集温湿度
  3. 煤气泄漏报警:通过MQ-7一氧化碳传感器判断室内危险气体是否超标
  4. 火灾报警:通过火焰传感器判断室内是否着火
  5. 门磁防盗报警:通过门磁开关判断室内是否有人闯入
  6. 远程照明控制:系统可远程控制LED灯开关
  7. 实时时钟显示:实时时间(年月日周时分秒)显示
  8. OLED显示:显示温湿度、时间、日期、报警信息等等
  9. 蜂鸣器报警:危险情况下本地蜂鸣器触发报警
  10. WIFI通信:使用ESP8266等进行WiFi远程通信
  11. APP功能:手机APP包括功能有修改系统时间、显示当前温湿度信息、显示危险情况报警信息、控制照明灯开关

2.主要器件

  • STM32F103C8T6最小系统板
  • DHT11温湿度传感器
  • OLED显示屏(7针SPI协议)
  • WiFi模块(ESP8266-01s)
  • MQ-7一氧化碳传感器
  • 门磁模块
  • 1×4矩阵键盘
  • DS1302时钟模块
  • 火焰传感器
  • 蜂鸣器
  • LED灯

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

int main(void)
{HAL_Init();SystemClock_Config();HAL_Delay(90);MX_GPIO_Init();MX_USART1_UART_Init();//串口1初始化OLED_Init();//oled初始化  OLED_Clear(); //清屏DHT_Init();ds1302_init();//RTC初始化DS1302_WriteTime();		buzz_init();//蜂鸣器ir_init();//火焰mq2_init();//煤气butt_init();//按键fan_init();//风扇for(int i=0;i<10;i++){LEDON;HAL_Delay(100);LEDOFF;delay_us(1000);}showbegin();//开机动画delay_us(10);while (1){if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) == 0 || HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1) == 0 || HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15) == 1)//进入警报模式{if(jingbflag){jingbao =1;//警报开启if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) == 0)//火灾警报{huo = 22;//火焰状态着火HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);OLED_Clear();OLED_ShowCHinese(47,0,10);OLED_ShowCHinese(64,0,11);		  OLED_ShowCHinese(0,2,21);OLED_ShowCHinese(17,2,22);OLED_ShowCHinese(34,2,23);  showhuo();//显示火灾图片}else//火焰状态正常{huo = 11;}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1) == 0)//煤气报警{mei = 22;HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);OLED_Clear();OLED_ShowCHinese(24,0,10);//显示文字OLED_ShowCHinese(41,0,11);OLED_ShowCHinese(0,2,49);OLED_ShowCHinese(17,2,50);//OLED_ShowCHinese(34,2,51);//OLED_ShowCHinese(51,2,52);//showmei();//显示泄漏图片}else{mei = 11;}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15) == 1)//防盗警报{ren =22;HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);OLED_Clear();OLED_ShowCHinese(24,0,10);OLED_ShowCHinese(41,0,11);//显示汉字OLED_ShowCHinese(0,2,12);OLED_ShowCHinese(17,2,13);//OLED_ShowCHinese(34,2,14);//OLED_ShowCHinese(51,2,15);//showman();//显示防盗图片}else{ren =11;}}}else//正常模式{huo = 11;mei = 11;ren = 11;if(jingbao == 1){OLED_Clear();jingbao = 0;//警报解除}HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);DHT_ReadData();OLED_ShowCHinese(0,6,7);//显示温度汉字OLED_ShowCHinese(15,6,8);OLED_ShowChar(28,6,':');OLED_ShowCHinese(68,6,9);//显示湿度汉字OLED_ShowCHinese(83,6,8);OLED_ShowChar(96,6,':');OLED_ShowNum(35,6,DHT_data[2],2,16);//显示温度数值OLED_ShowCHinese(50,6,48);OLED_ShowChar(57,6,'C');OLED_ShowNum(104,6,DHT_data[0],2,16);//显示湿度数值OLED_ShowChar(121,6,'%');showtime(); }int num = search(rxdata,18,'Z');if(num!=-1){rxok = 1;int begin = 0;for(int i=0;i<18;i++){if(num<18){rx_normal_data[i]=rxdata[num++];}else{rx_normal_data[i]=rxdata[begin++];}}}sprintf(senddata,"%d-%d-%d-%d-%d",DHT_data[2],DHT_data[0],huo,mei,ren);//将温度数值。湿度数值。火灾状态、煤气、防盗、整合到数组AL_UART_Transmit_IT(&huart1,"AT+CIPSEND=0,14\r\n",sizeof("AT+CIPSEND=0,14\r\n"));//发送初始化HAL_Delay(300);HAL_UART_Transmit_IT(&huart1,senddata,14);//启动发送向手机发送数据HAL_Delay(500);}

六、实验效果 

七、资料内容

项目分享

相关文章:

STM32项目分享:智能家居安防系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板及元器件图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…...

qt c++类继承QWidget和不继承有什么区别

class CheckBoxSetting {Q_OBJECT public:CheckBoxSetting(); };和 class CheckBoxSettingsEditor : public QWidget {Q_OBJECTpublic:explicit CheckBoxSettingsEditor(QWidget *parent 0);~CheckBoxSettingsEditor();有什么区别&#xff1f; 这两个类 CheckBoxSetting 和 C…...

什么是SIEM

SIEM 解决方案是一种企业级应用程序&#xff0c;可集中和自动化与网络安全相关的操作&#xff0c;该工具通过收集、分析和关联从组织 IT 基础设施中的各种实体聚合的网络事件来帮助应对网络威胁。 与帮助监控和评估组织物理空间中的危险的监视控制台相比&#xff0c;SIEM解决方…...

浅谈一下实例化

实例化对象是面向对象编程中非常重要的概念&#xff0c;它允许我们根据类的定义创建具体的对象&#xff0c;并操作这些对象的属性和方法。下面具体谈一下实例化对象的一些特点和用途&#xff1a; 封装性和复用性&#xff1a;实例化对象可以将数据和行为封装在一起&#xff0c;从…...

【人工智能】第三部分:ChatGPT的应用场景和挑战

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…...

FLV 文件格式

FLV 总体结构 FLV 文件由 FLV文件头(FLV Header)和 FLV文件体(FLV Body)组成。 FLV 文件体由若干级联的 FLV标签(FLV Tag)组成。标签使用一个 PreviousTagSize(uint32_t)来保存前一个 FLV 标签的大小,第一个 PreviousTagSize 值为0。 一个 FLV 文件中的所有数据,如 视频…...

FENDI CLUB精酿啤酒品鉴体验

当提及“品质卓越&#xff0c;口感非凡”的啤酒时&#xff0c;FENDI CLUB精酿啤酒无疑是一个值得一试的选择。这款啤酒以其独特的酿造工艺和优质的原料&#xff0c;为消费者带来了与众不同的味觉享受。 一、独特的酿造工艺 FENDI CLUB精酿啤酒在酿造过程中&#xff0c;严格遵循…...

前端 CSS 经典:水波进度样式

前言&#xff1a;简单实现水波进度样式&#xff0c;简单好看。 效果图&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" /><meta http-equiv"X-UA-Compatible" cont…...

深入解析CSS中的块级元素

块级元素在CSS中是一种常见的元素类型&#xff0c;具有一些特定的表现和行为特征。了解块级元素的定义和特点对于掌握CSS布局和样式设计至关重要。本文将从多个角度深入解析CSS中的块级元素&#xff0c;探讨其含义、特点以及在页面布局中的应用。 什么是块级元素&#xff1f; …...

PDF裁剪网站

裁剪 PDF – 修剪 PDF 文件中不需要的空白...

数据结构复习指导之外部排序

目录 外部排序 复习提示 1.外部排序的基本概念 2.外部排序的方法 2.1对大文件排序时使用的排序算法&#xff08;2016&#xff09; 3.多路平衡归并与败者树 4.置换-选择排序&#xff08;生成初始归并段&#xff09; 4.1置换-选择排序生成初始归并段的实例(2023) 5.最佳…...

【Python报错】已解决TypeError: can only concatenate str (not “int“) to str

解决Python报错&#xff1a;TypeError: can only concatenate str (not “int”) to str 在Python中&#xff0c;字符串连接是常见的操作&#xff0c;但如果你尝试将整数&#xff08;int&#xff09;与字符串&#xff08;str&#xff09;直接连接&#xff0c;会遇到TypeError: …...

Log4j日志级别介绍

Log4j 是一个广泛使用的 Java 日志记录框架&#xff0c;提供了多种日志级别&#xff0c;用于控制日志输出的详细程度。每个日志级别代表一种特定的重要性和紧急程度。 以下是 Log4j 的常见日志级别及其解读&#xff1a; FATAL&#xff08;致命&#xff09; 解释&#xff1a;表…...

[MQTT]服务器EMQX搭建SSL/TLS连接过程(wss://)

&#x1f449;原文阅读 &#x1f4a1;章前提示 本文采用8084端口进行连接&#xff0c;是EMQX 默认提供了四个常用的监听器之一&#xff0c;如果需要添加其他类型的监听器&#xff0c;可参考官方文档&#x1f517;管理 | EMQX 文档。 本文使用自签名CA&#xff0c;需要提前在L…...

【纯血鸿蒙】——响应式布局如何实现?

前面介绍了自适应布局&#xff0c;但是将窗口尺寸变化较大时&#xff0c;仅仅依靠自适应布局可能出现图片异常放大或页面内容稀疏、留白过多等问题。此时就需要借助响应式布局能力调整页面结构。 响应式布局 响应式布局是指页面内的元素可以根据特定的特征&#xff08;如窗口…...

深入理解Django Serializer及其在Go语言中的实现20240604

深入理解Django Serializer及其在Go语言中的实现 在现代Web开发中&#xff0c;前后端分离已成为主流架构模式。作为开发者&#xff0c;我们经常需要处理数据的序列化和反序列化&#xff0c;以便在前后端之间传递数据。在Django中&#xff0c;Serializer是一个强大的工具&#…...

电子纸在日化行业的全新应用

电子纸在日化行业的全新应用 项目背景 在一日化龙头企业他们的洗衣粉产线在AGV小车取料到运输到产品包装工序时&#xff0c;因为取料粉车无明显区分标识&#xff0c;但是产品系列有十大类。在未采用晨控电子纸之前现场采用一个转盘分为十个区域&#xff0c;取料工序上方会有一…...

【Redis】Redis的双写问题

在分布式系统中&#xff0c;双写问题通常是指数据在多个存储系统&#xff08;例如数据库和缓存&#xff09;中更新时出现的不一致性。这种问题在使用 Redis 作为缓存层时尤为常见。具体来说&#xff0c;当数据在数据库和 Redis 缓存中存在副本时&#xff0c;任何对数据的更新操…...

生气时,你的“心”会发生什么变化?孟德尔随机化分析猛如虎,结果都是套路...

“不生气不生气&#xff0c;气出病来无人替”&#xff0c;不少人遇事常这样宽慰自己。事实上&#xff0c;“气死”真不是危言耸听。越来越多的研究证明了情绪稳定对健康的重要性&#xff0c;那么&#xff0c;当情绪频繁波动时&#xff0c;我们的心血管究竟会发生什么变化&#…...

页面加载性能分析时,有哪些常见的性能瓶颈需要特别注意?

在进行页面加载性能分析时&#xff0c;以下是一些常见的性能瓶颈&#xff0c;需要特别注意&#xff1a; 长页面加载时间&#xff1a; 页面加载时间超过行业标准或用户期望&#xff0c;导致用户流失。 高 CPU 使用率&#xff1a; 某些脚本或操作导致 CPU 使用率飙升&#xff0c;…...

论文被吐槽逻辑乱?,有哪些真正实测靠谱的的降AI率平台推荐?

毕业论文降AI率&#xff0c;优先选语义重构 逻辑优化 去AI痕迹的工具&#xff0c;免费与付费结合更高效。下面按中文、英文、免费/付费分类推荐&#xff0c;附实测效果与适用场景。 一、中文论文降重工具&#xff08;最常用&#xff09; 1. 千笔AI&#xff08;综合全能首选&a…...

WindowsCleaner深度解析:如何用开源工具轻松解决C盘空间不足问题

WindowsCleaner深度解析&#xff1a;如何用开源工具轻松解决C盘空间不足问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到C盘空间不足的困扰&am…...

SGMICRO圣邦微 SGM8708YN8G/TR SOT-23 比较器

特性 低静态电流:在Vs1.8V时&#xff0c;典型值为2.2pA VOUT和VOUT双输出宽单电源电压范围:1.8V至5.5V 包含锁存功能 轨到轨输入和输出推挽输出电流驱动:在Vs5V时&#xff0c;典型值为18mA 内部1.2V参考电压工作温度范围:-40C至85C提供绿色S0T-23-8和S0IC-8封装...

Fun-ASR参数配置攻略:热词列表、目标语言,这样设置准确率最高

Fun-ASR参数配置攻略&#xff1a;热词列表、目标语言&#xff0c;这样设置准确率最高 1. 为什么参数配置如此重要&#xff1f; 语音识别系统的准确率往往取决于两个关键因素&#xff1a;模型本身的性能和使用者的参数配置。Fun-ASR作为钉钉与通义实验室联合推出的企业级语音识别…...

流程越来越规范,但员工体验却越来越差

在很多企业推进 IT 管理规范化的过程中&#xff0c;流程建设往往是重点。 审批流程更加清晰&#xff0c;操作步骤更加标准&#xff0c;所有请求都可以通过系统统一管理。从管理角度来看&#xff0c;这是明显的进步。 流程可控、操作可追溯、风险也更容易管理。但从员工的实际体…...

3步掌握MelonLoader:面向Unity开发者的游戏扩展加载器实战指南

3步掌握MelonLoader&#xff1a;面向Unity开发者的游戏扩展加载器实战指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader Unit…...

PX4串口通讯避坑指南:从波特率设置到数据收发全流程解析(以Serial4/5为例)

PX4串口通讯实战指南&#xff1a;从硬件配置到数据交互的深度解析 在无人机和机器人开发领域&#xff0c;PX4作为一款开源的飞控系统&#xff0c;其串口通讯功能是实现传感器数据采集、地面站通信以及外设控制的核心技术。然而&#xff0c;许多开发者在实际项目中常会遇到数据丢…...

Shell脚本新手必看:6种方法彻底解决Undefined Variable报错(附代码示例)

Shell脚本变量报错终极指南&#xff1a;从根源解决Undefined Variable问题 在Linux系统管理和自动化运维中&#xff0c;Shell脚本是不可或缺的工具。但许多初学者在编写脚本时&#xff0c;经常会遇到"Undefined Variable"这类看似简单却令人头疼的报错。这种错误不仅…...

从标定板到生产线:OpenCV实战工业相机畸变校正全流程

1. 工业相机畸变&#xff1a;产线精度杀手的前世今生 第一次在产线上看到相机拍出来的零件尺寸和实物差了0.5毫米时&#xff0c;我盯着屏幕愣了三分钟——这个误差足以让整个自动化装配线变成废品生产线。工业相机的畸变就像近视眼没戴眼镜&#xff0c;看到的物体位置和形状都…...

从‘猫狗大战’到医疗影像:LRP(逐层相关性传播)如何帮医生看懂AI的‘诊断思路’?

从‘猫狗大战’到医疗影像&#xff1a;LRP如何成为医生与AI的翻译官 当一位放射科医生第一次看到AI系统标注的肺结节"恶性概率92%"时&#xff0c;他的反应不是赞叹&#xff0c;而是皱眉&#xff1a;"它凭什么这么判断&#xff1f;"这种场景正在全球各大医院…...