基于stm32的多功能时钟7——报警模块设计

发布者:GoldenSunrise最新更新时间:2025-01-14 来源: jianshu关键字:stm32  多功能时钟 手机看文章 扫描二维码
随时随地手机看文章

        自上一章《UI界面设计》后,我们的开发工作已经完成了60%左右了。这一章呢,小编将介绍报警模块的设计。之前所做的工作,只是完成对环境参量的测量和显示。现在要对所获取的参量进行分析,即根据实际情况设置相关的阈值,判断是否异常,若出现异常,则采取报警,同时提醒工作人员,并且系统也会采取一定的措施来解决问题。

        在本制作中,只是象征性的做一下报警设计。举个例子,假如湿度出现异常(过高),超出上限,报警,同时需要启动抽湿机,当环境湿度达到正常值后,停止抽湿机,报警随之停止。这才是一个真正的反馈控制系统。但本制作,由于材料有限,只有一个电机,虽然能够有一定效果,但功能还是受限,所以就省略了。

        因此,在报警模块,我们这样设计:当温湿度超过阈值范围(过大或过小),则蜂鸣器报警,报警指示灯亮;当空气质量超过上限时,蜂鸣器报警,报警指示灯亮,同时启动直流电机(代替空气净化装置);当测量距离超过安全距离时,蜂鸣器报警,报警指示灯亮。


1.资源介绍

蜂鸣器,一般用作系统的报警,分为有源蜂鸣器无源蜂鸣器

        无源蜂鸣器可以产生不同频率的声音,而有源蜂鸣器,内部有振荡电路,产生的声音频率固定,而此处我们只是简单的报警,所以采用有源蜂鸣器。

报警指示灯采用LED灯即可,这里无须介绍。

        关于空气净化装置,我们这里用电机代替。这里,我们需要采用电机驱动电路,采用L298N电机驱动模块。下面简要介绍一下该模块。

        L298N电机驱动模块:在模块的电源部分,有VMS(12v)、VCC(5v)、GND3个接口。电源正极接VMS,电源负极接GND,这样就给电机驱动模块上电了。MotorA和MotorB的四个接口,分别接电机的端口,所以该模块可驱动两个电机。ENA和ENB分别是使能端,IN1、IN2、IN3和IN4分别是控制电机的端口,可驱动电机正反转。这里我们只驱动1个电机,使用ENA,IN1,IN2和MotorA。

2.软件编程

(1)蜂鸣器报警

首先,配置GPIO口,将PA6设置成推挽输出模式,这里不再给出代码,大家应该都会的。

然后编写蜂鸣器报警代码。

void buzzer(void)

{

    u8 i;

    for(i=0; i<100; i++)

    {

        Beep_L;

        delay_ms(1);

        Beep_H;

        delay_ms(1);

    }

}

        这里,只需将蜂鸣器端口以一定的频率上下振荡,蜂鸣器就能发出声音,频率高,声音相对大一些。

(2)LED报警灯

将相关的LED报警灯配置成推挽输出模式即可。

(3)电机驱动模块

将电机的ENA、IN1、IN2端口设置成推挽输出模式,初始化不再给出。

void motorRun(void)

{

    if(flag)//电机启动/停止标志位

    {

        ENA_H;//使能端有效,电机转动

    }

    else

    {

        ENA_L;//使能端无效,电机停止

    }

    IN1_H;

    IN2_L;

}

        这里,电机的启动和停止,只需控制驱动电机的使能端,让它使能或者失能即可。电机两个端口分别给高、低电平即能转起来了。

(4)编写报警处理函数

/*报警函数*/

void alarm(void)

{

    //温度异常报警

    if(temperature>=temper_H||temperature<=temper_L)

    {

        LED0_ON();

        temper_sign = 1;

    }

    else

    {

        LED0_OFF();

        temper_sign = 0;

    }

    //湿度异常报警

    if(humidity>=humid_H||humidity<=humid_L)

    {

        LED1_ON();

        humid_sign = 1;

    }

    else

    {

        LED1_OFF();

        humid_sign = 0;

    }

    //空气质量异常报警

    if(value>=air_upperlimit)

    {

        LED2_ON();

        air_sign = 1;

        flag = 1;

    }

    else

    {

        LED2_OFF();

        air_sign = 0;

        flag = 0;

    }

    //距离异常报警

    if(distance/100>=length)

    {

        LED3_ON();

        length_sign = 1;

    }

    else

    {

        LED3_OFF();

        length_sign = 0;

    }

    if(temper_sign==0&&humid_sign==0&&air_sign==0&&length_sign==0)

    {

        cancel = 0;//正常情况,关闭取消报警

    }

    if(temper_sign|humid_sign|air_sign|length_sign)

    {

        if(!cancel)

        {

            buzzer();

        }

    }

    motorRun();

}

        这里,判断温湿度、空气质量、测量距离是否正常,然后分情况处理,同时设置好相关的标志位,比如监控显示标志位,电机启动/停止标志位。还有,如果都正常的话,将取消报警标志位置位。

UI界面报警部分:

监视界面(空气质量异常)

监视界面(多处异常)

报警界面(已开启报警)

报警界面(取消报警)

电机界面(空气质量异常)

电机界面(强制开启)


        到目前为止,我们所做的都是基于stm32的下位机的开发。而在后面的章节中,小编将介绍如何将单片机采集的数据通过蓝牙模块传输给手机,实时地在手机界面上显示,同时绘制一些相关的曲线。如果技术可行的话,还可以通过手机蓝牙软件实时监控我们的多功能时钟,完成上位机与下位机的通信交互。


关键字:stm32  多功能时钟 引用地址:基于stm32的多功能时钟7——报警模块设计

上一篇:基于stm32的多功能时钟5——LCD12864库函数的建立
下一篇:为什么STM32中运行的C程序执行某些函数时死机?

推荐阅读最新更新时间:2026-03-25 11:25

基于stm32多功能时钟7——报警模块设计
自上一章《UI界面设计》后,我们的开发工作已经完成了60%左右了。这一章呢,小编将介绍报警模块的设计。之前所做的工作,只是完成对环境参量的测量和显示。现在要对所获取的参量进行分析,即根据实际情况设置相关的阈值,判断是否异常,若出现异常,则采取报警,同时提醒工作人员,并且系统也会采取一定的措施来解决问题。 在本制作中,只是象征性的做一下报警设计。举个例子,假如湿度出现异常(过高),超出上限,报警,同时需要启动抽湿机,当环境湿度达到正常值后,停止抽湿机,报警随之停止。这才是一个真正的反馈控制系统。但本制作,由于材料有限,只有一个电机,虽然能够有一定效果,但功能还是受限,所以就省略了。 因此,在报警模块,我们这样
[单片机]
基于stm32多功能时钟10——数据采集与蓝牙控制
嘿,我的小可爱们! 在《蓝牙串口通信》这一章中,小编带着大家编写了蓝牙串口通信程序,测试了蓝牙通信正常。由于我后来又找到了《蓝牙调试器》软件,功能强大,可自定义控件,所以下面将编写通信协议,通过这款软件,来实现数据采集和蓝牙控制。而我们在上一章中,完成了蓝牙监控界面的设计,所以这一章中,我们开始讲解程序的编写。 首先,我们要将数据包设置成结构体的形式,便于后面的操作和管理,同时定义接收数据堆栈和发送数据堆栈。之所以这样做,是因为通信协议规定,数据包必须包括起始字节、数据字节、校验字节和结束字节,这样做的目的就是确保数据传输的正确性和稳定性。关于通信方面的知识,我以后用到的话,还会介绍的,例如ESP8266等
[单片机]
基于stm32多功能时钟5——LCD12864库函数的建立
在上一章中,小编实现了多功能时钟的测距功能。在这一章中,小编本来打算介绍人机交互界面的设计。但是,后来还是想了一下,先将LCD库函数建立起来,因为真正的技术重点在这里。至于UI的设计,咱们将在下一章介绍。但至于UI设计的美观程度,我只能尽力而为,毕竟咱们的LCD12864液晶分别率只有128*64,而且是单色的,先天不足。 1.模块介绍 LCD12864液晶显示屏 液晶显示器种类很多,本人目前用过LCD1602、LCD12864、Nokia5110等,还有些比如TFT彩屏,OLED都没有用过。而此块LCD12864是一款基于ST7567的128*64的1.7英寸的图形点阵式液晶。而LCD12864液晶有的可以
[单片机]
基于PIC16F877单片机的多功能电子时钟
一、功能实现 本设计主要实现实时时钟显示,时间可调;实时温度显示,并具有超限报警功能,输出显示采用LCD1602。 二、仿真图 基于proteus的仿真 三、主程序 #include lian_pic.h #include DHT11.h #include ds1302.h #include key.h #include lcd12864.h #include control.h __CONFIG(HS&WDTDIS&LVPDIS&PWRTEN); //HS振荡,禁止看门狗,低压编程关闭,启动延时定时器 void Basic_Io_Init(void) { ADCON1=0x06; //PORTA,PORTE
[单片机]
基于PIC16F877单片机的<font color='red'>多功能</font>电子<font color='red'>时钟</font>
54-基于51单片机GSM模块的家庭防火防盗报警系统
具体实现功能 系统由DS18B20温度传感器+MQ-2烟雾传感器+HC-SR501人体红外模块+SIM800C GSM模块+LCD1602显示屏组成。 (1)可检测环境温度、烟雾浓雾和人体信号并通过显示屏显示; (2)可通过按键设置报警值,当检测值超过报警值时进行报警; (3)报警可通过LED+蜂鸣器现场报警,显示屏显示报警内容;还可通过GSM模块实现远程报警,短信可显示不同报警内容。 设计背景 随着社会的发展,农村城镇化和人员流动性增大,社会治安状况更趋复杂,因此作为社会的基本单元“安全防范问题就显得尤为重要。传统的机械式(防盗网、防盗窗)家居防卫在实际使用中暴露出一些明显的问题,如:影响楼房美观,市容整洁;影响
[单片机]
54-基于51单片机GSM<font color='red'>模块</font>的家庭防火防盗<font color='red'>报警</font>系统
家用燃气报警器中常用的可燃气体传感器模块
在生活中,人们常常把天然气、液化石油气、煤气等可燃气体都叫做煤气,其实煤气跟天然气、液化石油气都是属于不同的燃气,目前家用的燃气通常是液化石油气居多,而不是煤气,而小区里一般会统一规划的输气管道,使用的是天然气。燃气给我们带来了很多方便,但如果使用不当,它也是会造成很大的灾难。每年因为使用不当引起燃气泄漏燃气起火爆炸的事故数以万计。 据博燃网不完全统计, 2019年5月,国内各媒体报道的燃气事故共计53起,共造成46人受伤,10人死亡。 其中发生在居民家中的燃气事故共计27起,占比为51%;因工地施工挖断燃气管网的事故共计9起,占比为17%;发生在饭店等商铺的燃气事故共计11起,占比为21%,不仅仅如此,肯定还会有很多事故意外
[传感器]
家用燃气<font color='red'>报警</font>器中常用的可燃气体传感器<font color='red'>模块</font>
无线电收发模块组成的矿工定位与报警系统
1 系统组成 无线电收发模块组成的矿工定位与报警系统的总体方案如图1所示。 每个矿工随身携带一个无线电发送模块,适时检测工作地点的瓦斯和粉尘浓度,并将检测数据发送到无线电接收模块。在矿井下按一定的方位设置无线电接收模块,这些模块通过有线传输的方式将矿工检测到的信息适时传送到矿山指挥中心,矿山指挥中心可以在计算机屏幕上及时了解井下的工作状态。遇到突发事故时,根据无线电发送模块的编号,矿山指挥中心可以迅速确定携带该发送模块的矿工位置,矿工也可通过无线电发送模块向矿山指挥中心发送报警信号。 2 无线电发送模块 每个矿工携带的由单片机控制的无线电发射模块如图2所示。各种传感器的输出信号经AD8051型运算放大器放大后,送
[单片机]
无线电收发<font color='red'>模块</font>组成的矿工定位与<font color='red'>报警</font>系统
基于TWH9250雷达探测模块的新型防盗报警
  随着物质的不断丰富和人民生活水平的迅速提高,人们的安全意识也在不断加强,许多家庭和单位都安装了防盗门窗,这些防盗门窗在保证人身和财产安全等方面发挥了积极的作用。但是,像金库、仓库、重点实验室之类的重要场所,单靠简单的防盗门窗是不够的,还必须安装防盗报警装置。常见的防盗报警器有红外线防盗报警器、触摸式防盗报警器、感应式防盗报警器和磁控防盗报警器等;这些防盗报警器的共同缺点是监控范围内存在死角,为犯罪份子作案提供了可乘之机。为了解决死角监控不到的问题,采用TWH9250雷达探测模块 ,设计了一个新型的全方位无死角微波防盗报警器。   一、防盗报警器组成   考虑该防盗报警器在探测到警情时应具有声光报警功能,同时还需对现场进行摄像
[嵌入式]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved