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

2024-02-14 14:59

本文主要是介绍stm32项目(4)——基于stm32的厨房安全检测系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 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.大致思路

定义一些变量及阈值

初始化必要的外设

 

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

 

        需要完整代码的请私信。 

这篇关于stm32项目(4)——基于stm32的厨房安全检测系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/guangali/article/details/132160008
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/708809

相关文章

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加