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

        亲爱的读者们,大家好~

        自上一章《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的下位机的开发。而在后面的章节中,小编将介绍如何将单片机采集的数据通过蓝牙模块传输给手机,实时地在手机界面上显示,同时绘制一些相关的曲线。如果技术可行的话,还可以通过手机蓝牙软件实时监控我们的多功能时钟,完成上位机与下位机的通信交互。大家敬请期待吧~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,332评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,930评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,204评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,348评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,356评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,447评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,862评论 3 394
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,516评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,710评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,518评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,582评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,295评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,848评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,881评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,121评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,737评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,280评论 2 341

推荐阅读更多精彩内容

  • 直流电机是机器人行走机构的理想选择之一,我们通常使用直流电机来驱动机器人行走。在第5章和第6章您已经了解到如何用树...
    vctea阅读 12,908评论 8 28
  • Hello,亲爱的读者们!小编自去年暑假以来,在51自学网这个平台,学习51单片机和stm32单片机等一些...
    世缘阅读 1,535评论 0 1
  • 这是是我大二做的一个课程设计,小菜鸟一个,欢迎大家指正和参考。 摘要本次设计选择基于蓝牙遥控的多功能智能小车为对象...
    一颗小树___溥阅读 4,835评论 0 10
  • 亭亭立水中,绰绰玉人容。 休羡莲珠雨,濂溪沐道同。
    三生有幸之遇见阅读 302评论 1 3
  • 我的第一篇。写在《时间管理》之后。 核心思想:生命就是在彼此竞争的压力中不断的平衡,为今天而活,为明天做牺牲。 t...
    Zxx的二十代阅读 245评论 0 0