stm32项目(4)——基于stm32的厨房安全检测系统

news2024/11/23 20:08:58

目录

 1.功能介绍

2.硬件方案

     1.单片机的选择

2.显示屏的选择

3.温湿度传感器

4.烟雾传感器

5.甲醛传感器

6.排气风扇

3.程序设计

        1.接线方式

        2.大致思路


 1.功能介绍

  本次设计的厨房安全检测系统的功能如下:

        利用单片机、烟雾传感器、甲醛传感器、温湿度传感器、OLED显示屏幕及其他元器件,实现厨房温湿度检测及显示,并可检测天燃气及甲醛气体浓度且显示,并在达到危害浓度时报警,同时启动排风扇将危害气体排出,同时LED灯亮。

        功能完成后的实物图如下:

        
        

 屏幕第一行左侧显示的是测到的实时温度数值,右侧是温度阈值。

         第二行左侧显示的是测到的实时湿度数值,右侧是湿度阈值。

        第三行左侧显示的是测到的实时烟雾数值,右侧是烟雾阈值。

        第四行左侧显示的是测到的实时甲醛数值,右侧是甲醛阈值。

2.硬件方案

     1.单片机的选择

        单片机选择的是stm32f103c8t6最小系统板,实物图如下:

        

        STM32F103C8T6是一款由STMicroelectronics公司生产的32位ARM Cortex-M3内核微控制器。以下是该芯片的一些特点:

        1. 32位ARM Cortex-M3内核:该芯片采用了32位的ARM Cortex-M3处理器,具有较高的性能和较低的功耗。

        2. 高主频运行:STM32F103C8T6芯片的主频可以高达72MHz,使其具备较快的运行速度。

        3. 64KB闪存和20KB RAM:该芯片内置64KB的闪存和20KB的RAM,可以存储程序代码和数据。

        4. 优秀的通信能力:STM32F103C8T6芯片支持多种通信接口,包括SPI、I2C和USART等,便于与外部设备进行通信。

        5. 丰富的外设资源:该芯片提供了多个GPIO引脚、定时器、PWM输出、ADC和DAC等外设资源,方便连接和控制外部设备。

        6. 低功耗模式:STM32F103C8T6芯片在休眠模式下具有低功耗特性,可有效延长电池寿命。

        7. 多种封装形式:该芯片提供了多种封装形式,如TQFP48和LQFP48等,适应不同的应用需求。

        综上所述,STM32F103C8T6具备较高的性能、丰富的外设资源和通信能力,是一款适用于嵌入式系统和物联网应用的微控制器。

2.显示屏的选择

        显示屏选择的是0.96寸OLED液晶屏幕,实物图如下所示:

         0.96寸OLED显示屏是一种较小尺寸的有机发光二极管(OLED)显示屏,具有以下特点:

        1. 高对比度:OLED显示屏可以实现真正的黑色,因为它的每个像素都可以独立发光或关闭。这使得它能够提供非常高的对比度,产生鲜明清晰的图像和文字。

        2. 自发光:OLED显示屏的每个像素都是自发光的,不需要背光源。这意味着它可以在没有背光的情况下显示图像,进一步提高对比度和能效。

        3. 宽视角:OLED显示屏具有很广的视角范围,即从不同的角度观察时图像的颜色和亮度变化较小。这使得它非常适合用于各种观看角度的应用场景。

        4. 快速响应时间:OLED显示屏具有快速的像素响应时间,可以在切换像素时呈现流畅的动态图像,不会出现拖影或模糊。

        5. 薄型轻便:OLED显示屏采用非常薄的物理结构,使得显示屏具有较小的厚度和重量。这使得它在需要轻薄设计的电子设备中具有很好的应用前景。

        6. 低功耗:OLED显示屏在显示黑色像素时消耗的能量较少,因为黑色像素可以完全关闭。这在显示大量黑色内容时可以显著节能。

综上所述,0.96寸OLED显示屏具有高对比度、自发光、宽视角、快速响应时间、薄型轻便和低功耗等特点,适用于需要小尺寸高质量显示的各种电子设备和应用。

3.温湿度传感器

        温湿度传感器选择的是DHT11,实物图如下:

 

        DHT11是一种数字温湿度传感器,具有以下特点:

        1. 简单易用:DHT11是一款数字传感器,采用单总线数字信号接口,只需要一根信号线就可以与微控制器连接。它提供了简单的API和功能库,使用起来非常方便。

        2. 温湿度测量范围:DHT11可以测量的温度范围是0°C至50°C,并且湿度范围是20%RH至90%RH。这使得它适用于多种常见环境下的温湿度测量。

        3. 数字输出:DHT11以数字形式输出温度和湿度数据,无需进行模数转换或校准。它通过单总线协议将数据进行传输,简化了数据处理过程。

        4. 低功耗:DHT11的工作电压范围广泛,从3V到5V都可以工作,且在测量过程中的功耗非常低。这使得它非常适合用于低功耗或电池供电的应用中。

        5. 响应速度快:DHT11传感器具有较快的响应速度,可以在几秒内获取温湿度数据,使得实时监测和控制变得更加高效。

        6. 低成本:DHT11是一种经济实惠的温湿度传感器,因其简单的设计和低成本的制造,使得它成为许多嵌入式项目的选择之一。

        需要注意的是,DHT11虽然简单易用且成本低廉,但其精度相对较低。如果对于高精度温湿度测量有要求,可以考虑使用更高级别的温湿度传感器。

4.烟雾传感器

        烟雾传感器选择的是MQ2,实物图如下:

        

 

        MQ2是一种烟雾传感器,常用于检测可燃气体和烟雾。它具有以下特点:

        1. 多功能性:MQ2传感器可以检测多种可燃气体,如甲烷、液化气、丙烷、氢气等,同时也可以检测烟雾和一些易挥发的气体。

        2. 高灵敏度:MQ2传感器具有高灵敏度,可以快速、准确地检测到目标气体的存在。它能够检测到低浓度的气体,并产生输出信号以进行进一步的处理。

        3. 快速响应:MQ2传感器响应速度快,可以在很短的时间内检测到气体浓度变化,并及时输出相应的信号。

        4. 低功耗:MQ2传感器的功耗较低,适合在低功耗或电池供电的应用中使用。

        5. 易于使用:MQ2传感器采用模拟输出方式,输出信号可直接连接到微控制器的模拟输入引脚上。它还可以通过调整电路中的电位器来设置传感器的灵敏度。

        6. 廉价实惠:MQ2传感器价格相对较低,而且易于获得,使得它成为许多嵌入式项目和家庭安防系统中的常用传感器之一。

        需要注意的是,MQ2传感器对于不同的气体有不同的灵敏度和响应特性,因此在具体应用中需要根据需要对传感器进行校准和配置,以获取准确的检测结果。此外,MQ2传感器不具备用于定量测量气体浓度的能力,一般用于发现气体存在和预警的目的。

5.甲醛传感器

检测甲醛的传感器选择的是SGP30,实物图如下:

 

        SPG30是一款气体颗粒物传感器,用于检测空气中的颗粒物浓度。以下是SPG30的一些特点:

        1. 高灵敏度:SPG30传感器具有高灵敏度,能够快速、准确地检测空气中的微小颗粒物浓度。它可以检测到直径为1微米的颗粒物。

        2. 多功能性:SPG30传感器可以检测多种颗粒物,包括可吸入颗粒物(PM2.5和PM10),细颗粒物(PM1.0),以及粗颗粒物(PM10-PM2.5)。它适用于各种环境中的颗粒物监测。

        3. 数字输出:SPG30传感器采用数字输出方式,通过I2C接口输出颗粒物浓度数据。这使得数据的读取和处理变得更加方便。

        4. 可编程性:SPG30传感器具有一些可编程的特性,如传感器的工作模式和测量周期可以通过I2C接口进行设置和调整。

        5. 实时监测:SPG30传感器可以实时监测颗粒物浓度的变化,并及时输出测量结果。这有助于进行空气质量监测和预警。

        6. 低功耗:SPG30传感器的功耗较低,适合在低功耗或电池供电的应用中使用。

        7. 小尺寸:SPG30传感器体积小巧,便于集成到各种设备和系统中。

        需要注意的是,SPG30传感器提供的是颗粒物浓度的相对值,不具备绝对定量测量能力。在实际应用中,可能需要进行校准和与其他传感器进行比较,以获取准确的颗粒物浓度数据。

6.排气风扇

         这种风扇自带驱动,直接用单片机IO口就可以控制它的转动,非常方便,不需要外加驱动模块,可以大大提高便利性。

3.程序设计

        1.接线方式

/*
连线方式: OLED-->SCL   PA6
          OLED-->SDA   PA7
          
 烟雾传感器的模拟输出口---->PA0
 电机模块 INA--->GND   INB--->PB5
 
 DHT11的信号输出口:----->PA5
 甲醛传感器:     SDA--->PB1
                 SCL--->PB0
*/

        2.大致思路

定义一些变量及阈值

初始化必要的外设

 

各变量的检测与显示,及其相应的控制逻辑:

 

        需要完整代码的请私信。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode-Java(03)

9. 回文数 class Solution {public boolean isPalindrome(int x) {if (x < 0 || (x % 10 0 && x ! 0)) {return false;}int revertedNumber 0;while (x > revertedNumber) {revertedNumber revertedNumber * 10 x % 10;x / 10;}// 当长度为奇数时通过reverte…

现代C++中的从头开始深度学习:【5/8】卷积

一、说明 在上一个故事中&#xff0c;我们介绍了机器学习的一些最相关的编码方面&#xff0c;例如 functional 规划、矢量化和线性代数规划。 现在&#xff0c;让我们通过使用 2D 卷积实现实际编码深度学习模型来开始我们的道路。让我们开始吧。 二、关于本系列 我们将学习如何…

【从零学习python 】04. Python编程基础:变量、数据类型与标识符

文章目录 变量以及数据类型一、变量的定义二、变量的类型三、查看数据类型 标识符和关键字标识符命名规则命名规范 关键字进阶案例 变量以及数据类型 一、变量的定义 对于重复使用&#xff0c;并且经常需要修改的数据&#xff0c;可以定义为变量&#xff0c;来提高编程效率。…

kubeasz在线安装K8S集群单master

1.基础系统配置 确保在干净的系统上开始安装&#xff0c;不能使用曾经装过kubeadm或其他k8s发行版的环境 系统是Ubuntu 或者CentOS 7 2.下载文件 2.1 下载工具脚本ezdown&#xff0c;举例使用kubeasz版本3.5.0 #此版本默认安装的是 K8S v1.26.0 export release3.5.0 wget h…

初遇C++之语法篇(完结)

&#x1f9c3;博客主页:阿博历练记 &#x1f4d6;文章专栏:c &#x1f68d;代码仓库:阿博编程日记 &#x1f361;欢迎关注:欢迎友友们点赞收藏关注哦&#x1f339; 文章目录 &#x1f36d;1.函数重载&#x1f4dc;1.1函数重载的概念&#x1f4e2;1.2函数重载三大误区&#x1f3…

Nacos单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

第十五章 定义 HL7 的 DTL 数据转换

文章目录 第十五章 定义 HL7 的 DTL 数据转换 第十五章 定义 HL7 的 DTL 数据转换 每个接口可能需要一定数量的数据转换。创建转换时&#xff0c;不要使用保留的包名称。 重要提示&#xff1a;请勿在数据转换中手动更改 HL7 转义序列&#xff1b;自动处理这些。 可以使用“数…

智能状态监测如何帮助设备管理团队转型升级?

制造业面临人才短缺和生产力提升的双重挑战。然而&#xff0c;全球市场对生产效率和产品质量的要求依然高企。这些挑战的核心在于&#xff0c;制造业需要在日益复杂的环境下&#xff0c;实时识别并应对生产过程中的异常情况&#xff0c;确保生产持续稳定。 一、传统状态监测的限…

Android 13 Hotseat定制化修改

一.背景 由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher中,下面开始…

深度学习中的优化算法

文章目录 前言一、优化和深度学习1.1 优化的目标1.2 深度学习中的优化挑战1.2.1 局部最小值1.2.2 鞍点1.2.3 梯度消失 二、梯度下降2.1 一维梯度下降2.1.1 学习率 2.2 多元梯度下降2.3 自适应方法2.3.1 牛顿法2.3.2 其他自适应方法 三、随机梯度下降3.1 随机梯度更新3.2 动态学…

JS逆向之顶像滑块

本教程仅限于学术探讨&#xff0c;也没有专门针对某个网站而编写&#xff0c;禁止用于非法用途、商业活动、恶意滥用技术等&#xff0c;否则后果自负。观看则同意此约定。如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; 目录 一、接口请求流程 二、C1包 三、ac 四…

HTTP协议学习笔记1

初识HTTP 输入网址进入网页过程发生了什么&#xff1f; DNS解析&#xff1a;浏览器会向本地DNS服务器发出域名解析请求&#xff0c;如果本地DNS服务器中没有对应的IP地址&#xff0c;则会向上级DNS服务器继续发出请求&#xff0c;直到找到正确的IP地址为止。 建立TCP连接&…

关于Log日志

日志常用的如Logback&#xff0c;方便查看日志和打印的SQL&#xff08;或配合idea的一些mybaits日志插件&#xff09;&#xff0c;简单讲讲。 Logback等级 ALL < TRACE < DEBUG < INFO < WARN < ERROR <FATAL <OFF 配置文件结构 configuration appender…

微信小程序读取本地json

首先在项目录下新建【server】文件夹&#xff0c;新建data.js文件&#xff0c;并定义好json数据格式。如下&#xff1a; pages/index/index.ts导入data.js并请求json pages/index/index.wxml页面展示数据

365. 水壶问题

365. 水壶问题 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 365. 水壶问题 https://leetcode.cn/problems/water-and-jug-problem/description/ 完成情况&#xff1a; 解题思路&#xff1a; /**在任意一个时刻…

[Web_Unagi]xxe注入过滤绕过

文章目录 [Web_Unagi]xxe注入过滤绕过 [Web_Unagi]xxe注入过滤绕过 提示我们需要上传文件&#xff0c;并且flag在根目录下&#xff0c; 上传文件的格式为&#xff1a; <users><user><username>alice</username><password>passwd1</password…

封装上传文件组件(axios,进度条onUploadProgress,取消请求)

目录 定时模拟进度条 方法 A.axios B.xhr 取消请求​​​​​​​ 完整代码 A.自定义上传组件 B.二次封装组件 情况 增加cancelToken不生效&#xff0c;刷新页面 进度条太快->设置浏览器网速 定时模拟进度条 startUpload() {if (!this.file) return;const totalS…

【C++】bind包装器

bind包装器 调用bind的一般形式&#xff1a;auto newCallable bind(callable,arg_list); 其中&#xff0c;newCallable本身是一个可调用对象&#xff0c;arg_list是一个逗号分隔的参数列表&#xff0c;对应给定的 callable的参数。 当我们调用newCallable时&#xff0c;newCa…

【内网穿透】配置公网访问,实现远程连接到内网群晖NAS 6.X

公网远程访问内网群晖NAS 6.X【内网穿透】 文章目录 公网远程访问内网群晖NAS 6.X【内网穿透】前言1. 群晖NAS远程操作2. 创建一条“群晖SSH”隧道 &#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &#x1f389;欢迎关注&#xff1a;&#x1…