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

RTthread+STM32F407ZGTx+烟雾报警检测+蜂鸣器报警+LED闪烁||使用RTthread Studio

目录

实验背景

1.安装环境

2.配置环境

3.先编译下载实例程序2,观察DS0是否闪烁

4.实验方法

5.实例代码

6.硬件连接

7.实验效果

8.关于这次开发遇到的问题

1.反应慢,都熄灭1分钟多了,才报的问题?

2.关于rt_pin_mode(KEY0_PIN, PIN_MODE_INPUT_PULLDOWN);PIN_MODE_INPUT_PULLDOWN参数会导致什么现象?

无聊的小知识

参考文章


实验背景

想实现串口打印输出烟雾传感器的状态,无烟雾时每个1s打印0,LED灯循环闪烁;存在烟雾时打印1,同时进行一个5s的滤波,当5s后烟雾依旧存在则蜂鸣器报警,LED灯不在循环闪烁。同时,也可以通过模拟按键来实现烟雾报警的效果。主要是想对烟雾报警器做一个长时间测试,看是否有误报的现象。

1.安装环境

rtthread官网下载RTthread Studio安装包安装

2.配置环境

新建工程

3.先编译下载实例程序2,观察DS0是否闪烁

4.实验方法

本次使用PF9、PF8、PA0引脚,来实现该效果。

5.实例代码

#define KEY0_PIN    GET_PIN(A,0)  //PA0
#define LED0_PIN    GET_PIN(F,9)
#define BEEP_PIN    GET_PIN(F,8)  //定义蜂鸣器  超过5次后蜂鸣器叫,打印0,叫完后程序将不在运行
#define KEY_FILTER_TIME   5  //定义滤波时间:5次
static int SmokeFlog=0;
static int consecutive_ones = 0; // 1连续出现的次数
int main(void)
{rt_pin_mode(KEY0_PIN, PIN_MODE_INPUT_PULLDOWN); //上拉是1   下拉是0rt_pin_mode(LED0_PIN,  PIN_MODE_OUTPUT);rt_pin_mode(BEEP_PIN, PIN_MODE_OUTPUT);rt_pin_write(BEEP_PIN, PIN_LOW);while (1){rt_kprintf(" %d\n",rt_pin_read(KEY0_PIN));Detect_Smoke();//异常if(SmokeFlog==1){//对应指示灯亮起   //让PF9灯亮rt_pin_write(LED0_PIN, PIN_HIGH);//开启蜂鸣器rt_pin_write(BEEP_PIN, PIN_HIGH);  //开启蜂鸣器}if(SmokeFlog==0){//对应指示灯一两一灭  看看蜂鸣器引脚pf8rt_pin_write(BEEP_PIN, PIN_LOW);rt_pin_write(LED0_PIN, PIN_HIGH);rt_thread_mdelay(500);rt_pin_write(LED0_PIN, PIN_LOW);rt_thread_mdelay(500);//均无异常关闭蜂鸣器}rt_thread_mdelay(1000);// 延时1000e}
}void Detect_Smoke(void){//rt_kprintf(" %d\n",rt_pin_read(KEY0_PIN));//当烟雾指数高于20则触发异常if (rt_pin_read(KEY0_PIN) == 1) // 如果读取到的值为1{consecutive_ones++; // 递增连续出现1的次数}if (rt_pin_read(KEY0_PIN) == 0){consecutive_ones = 0; // 重置连续出现1的次数}if (consecutive_ones >= KEY_FILTER_TIME) // 如果连续出现1的次数达到5次{SmokeFlog = 1; // 设置烟雾标志位为1}else {SmokeFlog = 0;}
}

6.硬件连接

PA0

烟雾传感器A

GND

GND

VCC5V

5V

7.实验效果

8.关于这次开发遇到的问题

1.反应慢,都熄灭1分钟多了,才报的问题?

可能是接触不良,受到了干扰,用热融胶固定一下

2.关于rt_pin_mode(KEY0_PIN, PIN_MODE_INPUT_PULLDOWN);PIN_MODE_INPUT_PULLDOWN参数会导致什么现象?

这要从原理图说起:

本次使用的是KEY_UP,该按键按下,高电平有效,这导致烟雾传感器不接地的话就会报警,PIN_MODE_INPUT_PULLDOWN该参数会让KEY_UP松开时,也就是低电平能在控制台打印0,烟雾报警器报警时打印1,比较直观。

KEY0是低电平有效,上拉模式(PIN_MODE_INPUT_PULLUP),按下是1,烟雾传感器接上会变成1(是因为接地导通了,不能因此说明烟雾传感器的值是不对的),这是个硬件问题,因为测量的烟雾报警器它是一个开关量,让开关量连续几次检测到,在进行滤波,这也是本项目测试的解决思路。

无聊的小知识

1.怎么区分三极管是NPN还是PNP?

三级管都是从P>(指向)N,那就是NPN

参考文章

Stm32F103&Rt_Thread系列开发——03 日志管理_stm32 日志-CSDN博客

(STM32)从零开始的RT-Thread之旅--GPIO_rt-thread 配置gpio-CSDN博客

STM32F407ZE基于RT-Thread和ZigBee实现多传感器检测以及数据上传到oneNet_stm32f407对于外设传感器信息采集和处理-CSDN博客
教你搞懂RT-Thread的移植和配置ENV工具环境_rtthread keil env 教程 知乎-CSDN博客

基于RT-Thread(RTT)的HAL库+ADC+DMA多通道采集_rt-thread dma+adc-CSDN博客

keil 5 : Error: L6218E: Undefined symbol 问题解决方法小记-CSDN博客

RT-Thread 串口的使用_env没有usart2-CSDN博客

STM32F407——基于RT-Thread实现触摸屏按键点灯案例_stm32 mipi-CSDN博客

相关文章:

RTthread+STM32F407ZGTx+烟雾报警检测+蜂鸣器报警+LED闪烁||使用RTthread Studio

目录 实验背景 1.安装环境 2.配置环境 3.先编译下载实例程序2,观察DS0是否闪烁 4.实验方法 5.实例代码 6.硬件连接 7.实验效果 8.关于这次开发遇到的问题 1.反应慢,都熄灭1分钟多了,才报的问题? 2.关于rt_pin_mode(KEY…...

k8s资源的基本操作

文章目录 一、Namespace1、概述2、预定义的k8s命名空间2.1、default2.2、kube-public2.3、kube-system2.4、kube-node-lease 3、命名空间基本操作3.1、查看3.1.1、查看所有的命名空间3.1.2、查看指定的命名空间3.1.3、指定输出格式3.1.4、查看ns详情 3.2、创建3.2.1、命令行创建…...

19.面包屑导航制作

面包屑导航制作 官网&#xff1a;组件 | Element 1. 在layout下新建BreadCrumb.vue BreadCrumb.vue <template><div class"bread-text"><el-breadcrumb class"bred"separator"/"><el-breadcrumb-item v-for"item in…...

做动画?Animatediff 和 ComfyUI 更配哦!

如果从工作流和内存利用率的角度来说&#xff0c;Animatediff 和 ComfyUI 可能更配一些&#xff0c;毕竟制作动画是一个很吃内存的操作。 首先&#xff0c;我们需要在管理器中下载 Animatediff 插件&#xff0c;当然也可以直接导入听雨的工作流&#xff0c;然后在管理器的安装…...

笔记-python里面的xlrd模块详解

那我就一下面积个问题对xlrd模块进行学习一下&#xff1a; 1.什么是xlrd模块&#xff1f; 2.为什么使用xlrd模块&#xff1f; 3.怎样使用xlrd模块&#xff1f; 1.什么是xlrd模块&#xff1f; ♦python操作excel主要用到xlrd和xlwt这两个库&#xff0c;即xlrd是读excel&…...

oracle将字符串中的字符和数字拆分开等功能

将字符串中的字符和数字拆分开 create or replace procedure F_GetNumber1( inString IN VARCHAR2,n_return1 out varchar2, n_return2 out varchar2) ISDCHAR VARCHAR2(1024); OUTCHAR VARCHAR2(1024); j number default 0; ulen number; BEGINOUTCHAR:;DCHAR:TRIM(inStr…...

汇编基础之使用vscode写hello world

汇编语言&#xff08;Assembly Language&#xff09; 概述 汇编语言&#xff08;Assembly Language&#xff09;是一种低级编程语言&#xff0c;它直接对应于计算机的机器代码&#xff08;machine code&#xff09;&#xff0c;但使用了更易读的文本符号。每台个人计算机都有…...

APS计划排程系统如何打破装备使用约束

APS计划排程系统是离散制造型企业在计划控制方向的重要支撑&#xff0c;它提供的是交期预测、订单排产计划、物料采购计划、人力分配计划等等。近些几年来&#xff0c;多品种、小批量、多订单的生产模式&#xff0c;让企业的计划员应接不暇、疲累不堪&#xff0c;传统的人工经验…...

gigachad - suid

gigachadeasyftp利用、google反图搜索、 suid提权、s-nail 提权 主机发现 ┌──(kali㉿kali)-[~/桌面/OSCP] └─$ sudo netdiscover -i eth0 -r 192.168.44.138/24服务探测 ┌──(kali㉿kali)-[~/桌面/OSCP] └─$ sudo nmap -sV -A -T 4 -p- 192.168.44.138 |_/kingchad…...

QtScript模块

在Qt中&#xff0c;可以使用Qt Script模块来将C类和方法绑定到Qt脚本引擎中&#xff0c;从而使得可以在Qt脚本中调用这些C类和方法。以下是一个简单的示例&#xff0c;演示了如何在Qt中将C类暴露给Qt Script引擎&#xff1a; 假设有一个名为 MyClass 的C类&#xff0c;其头文件…...

qt中for循环不要使用循环中会更改的变量

检查代码&#xff0c;发现始终会少了一位&#xff0c;最后发现我在使用for循环时&#xff0c;懒省事&#xff0c;判断条件中使用的变量是涉及到循环体中更改的变量&#xff0c;代码如下&#xff0c;更直观 for (int i 0; i < m_images.size(); i) {packageToDBList[0].imag…...

spark独立集群搭建

spark独立集群搭建(不依赖Hadoop) 1、上传spark-2.4.5-bin-hadoop2.7.tgz至 /usr/local/moudel &#xff0c;再解压到 /usr/local/soft tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /usr/local/soft/ 重命名 mv spark-2.4.5-bin-hadoop2.7/ spark-2.4.5 配…...

【BFS算法】广度搜索·由起点开始逐层向周围扩散求得最短路径(算法框架+题目)

0、前言 深度优先搜索是DFS&#xff08;Depth Frst Search)&#xff0c;其实就是前面所讲过的回溯算法&#xff0c;它的特点和它的名字一样&#xff0c;首先在一条路径上不断往下&#xff08;深度&#xff09;遍历&#xff0c;获得答案之后再返回&#xff0c;再继续往下遍历。…...

微信小程序---登录

手机号登录 手机号快速验证和手机号实时验证区别 手机号快速验证组件&#xff0c;平台会对号码进行验证&#xff0c;但不保证是实时验证&#xff1b;收费0.0.3元手机号实时验证组件&#xff0c;在每次请求时&#xff0c;平台均会对用户选择的手机号进行实时验证。收费0.0.4元…...

IPython大师课:提升数据科学工作效率的终极工具

IPython是一个增强的Python交互式shell&#xff0c;它提供了丰富的功能和易用性改进&#xff0c;特别适合进行数据分析、科学计算和一般的Python开发。本文将全面介绍IPython的基本概念、使用方法、主要作用以及注意事项。 一、IPython简介 1. IPython的起源 IPython最初由Fe…...

抖音素材网站平台有哪些?素材下载网站库分享

在这个视觉信息充斥的时代&#xff0c;抖音已经成为众多自媒体人展示才华的舞台。要在众多创作者中脱颖而出&#xff0c;不仅需要独特的创意&#xff0c;还需要优质的素材来支持你的内容制作。今天&#xff0c;我将介绍几个为抖音视频提供高品质素材的网站&#xff0c;包括国内…...

MODBUS TCP协议实例数据帧详细分析

MODBUS TCP协议实例数据帧详细分析 1.简介 2.ModbusTCP数据帧 2.1.报文头MBAP 2.2.帧结构PDU 3.ADU详细结构 3.1. 0x01&#xff1a;读线圈 3.2. 0x02&#xff1a;读离散量输入 3.3. 0x03&#xff1a;读保持寄存器 3.4. 0x04&#xff1a;读输入寄存器 3.5. 0x05&#xff1a;写单…...

Spring Boot启动与运行机制详解:初学者友好版

Spring Boot启动与运行机制详解&#xff1a;初学者友好版 随着微服务的兴起和容器化部署的流行&#xff0c;Spring Boot以其快速搭建、简单配置和自动化部署的特性&#xff0c;成为了众多开发者的首选。对于初学者而言&#xff0c;理解Spring Boot的启动与运行机制是掌握其精髓…...

Ubuntu 22.04 解决 firefox 中文界面乱码

问题复现 在为Ubuntu 22.04 Server安装完整的GNOME 42.01桌面后&#xff0c;将桌面语言设置为中文时&#xff0c;打开Firefox可能会出现中文乱码的问题。经过网上调查发现&#xff0c;这个问题是由Snap软件包引起的。 解决方案 为了避免在Ubuntu 22.04中文模式下的乱码问题…...

前端面试题日常练-day77 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 在Sass中&#xff0c;以下哪个功能用于将样式规则应用于多个选择器&#xff1f; a) extend b) mixin c) import d) include Sass中的嵌套规则&#xff08;Nested Rules&#xff09;有助于实现以下哪个…...

基于React与Zustand的现代后台管理系统架构设计与实现

1. 项目概述&#xff1a;一个开源后台管理系统的诞生与价值最近在GitHub上闲逛&#xff0c;又发现了一个挺有意思的项目——duanecilliers/openclaw-admin。这名字起得挺酷&#xff0c;“OpenClaw”&#xff0c;直译过来是“开放之爪”&#xff0c;听起来就带着一股子灵活、可抓…...

你的群晖NAS性能过剩了吗?试试用它跑个万兆测速服务,榨干内网带宽

如何用群晖NAS搭建专业级内网测速平台&#xff1a;从硬件压榨到性能调优全指南 当你为家庭或工作室部署了万兆网络环境后&#xff0c;最令人抓狂的莫过于花了大价钱升级设备&#xff0c;却无法确认实际带宽是否达标。那些标榜"万兆兼容"的交换机、网卡和NAS&#xff…...

PIM-LLM:1-bit量化大语言模型的混合内存计算架构

1. 项目概述PIM-LLM是一种创新的混合内存计算架构&#xff0c;专门为1-bit量化的大语言模型&#xff08;LLM&#xff09;设计。这个架构通过结合模拟内存计算&#xff08;PIM&#xff09;和数字脉动阵列&#xff0c;实现了对低精度和高精度矩阵乘法运算的高效加速。在边缘AI加速…...

ARM活动监控器(AMU)架构与AMCFGR寄存器详解

1. ARM活动监控器架构概览 在现代处理器设计中&#xff0c;性能监控单元(PMU)是系统调优和性能分析的关键组件。ARM架构中的活动监控器(Activity Monitors)作为PMU的核心部分&#xff0c;通过硬件计数器实现了对处理器行为的细粒度追踪。不同于传统的性能计数器&#xff0c;AMU…...

植物大战僵尸杂交版手机版最新版v3.16.1安卓2026最新下载分享

作为长期沉迷植物大战僵尸改版的老玩家&#xff0c;我近期完整体验了杂交版全新V3.16版本&#xff0c;从植物、关卡到平台适配&#xff0c;逐一实测验证。 整体来说&#xff0c;这是一次诚意满满的更新——既有新鲜玩法创新&#xff0c;又兼顾不同玩家需求。 下载链接&#x…...

3分钟掌握B站视频下载神器BilibiliDown:跨平台免费开源下载工具

3分钟掌握B站视频下载神器BilibiliDown&#xff1a;跨平台免费开源下载工具 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_…...

量子生成分类技术:原理、优势与应用解析

1. 量子生成分类技术概述量子生成分类&#xff08;Quantum Generative Classification, QGC&#xff09;是一种基于量子计算原理的新型机器学习范式&#xff0c;它从根本上改变了传统分类任务的实现方式。与常见的判别式学习方法不同&#xff0c;QGC采用生成式学习策略&#xf…...

基于BLE与CircuitPython的无线8-bit音乐合成器DIY全攻略

1. 项目概述与核心思路想不想亲手做一个能揣在口袋里&#xff0c;随时随地弹奏出复古8-bit音乐的小玩意儿&#xff1f;不是那种手机App模拟的&#xff0c;而是实实在在的、有物理按键、能无线连接、还会发光的小合成器。今天分享的这个项目&#xff0c;就是基于两块小巧但功能强…...

思源宋体TTF终极指南:7种字重解决中文排版所有难题

思源宋体TTF终极指南&#xff1a;7种字重解决中文排版所有难题 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是否在为中文项目寻找完美的开源字体而烦恼&#xff1f;商业字体价格昂…...

基于ReAct框架的AI智能体:如何让LLM通过Google搜索获取实时信息

1. 项目概述&#xff1a;当AI学会“上网冲浪”最近在折腾一个挺有意思的东西&#xff0c;我把它叫做“AI的浏览器”。听起来有点科幻&#xff0c;但核心逻辑很简单&#xff1a;我们如何让一个大型语言模型&#xff08;LLM&#xff09;不再仅仅依赖它训练时“记住”的知识库&…...