多方法实现Arduino“水火警报仪”

来源 :电脑报 | 被引量 : 0次 | 上传用户:mkunaini520
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  水火无情,为了能对“水情”“火情”的意外情况及时报警,我们借助雨水传感器和火焰传感器,利用Arduino开发制作一个“水火警报仪”系统——LED灯发光、蜂鸣器发声和屏幕显示警报信息。

1.实验器材与电路连接


  实验器材:Arduino UNO主板一个,雨水传感器一个,火焰传感器一个,红色LED灯一支,低电平触发蜂鸣器一个,面包板一块,各色杜邦线若干。
  首先,将Arduino的5V和GND通过杜邦线连接至面包板;接着,将雨水传感器和火焰传感器的VCC和GND端均插接至面包板(与Arduino的5V和GND相连),二者的DO数字输出端则分别插接至Arduino的7号和8号数字引脚;然后,将蜂鸣器的VCC和GND端同样也插接至面包板,它的I/O信号端插接至12号数字引脚;最后,将LED灯长腿插入13号、短腿插入相邻的GND引脚,再通过数据线将Arduino与计算机USB接口连接(如图1)。



  值得一提的是,雨水传感器和火焰传感器的数字输出信号均为“反逻辑”结果——当雨水传感器的感应板上没有水滴时,数字输出信号是高电平“1”;而当检测到有水滴时,则输出低电平“0”。另外蜂鸣器上如果标有“低电平触发”字样时,其工作模式与此类似,只有使用低电平“0”去触发时才会发声。

2.Arduino IDE代码编程实现“水火警报仪”


  首先进行变量的定义:语句“int Beep = 12;”和“int led = 13;”分别对应蜂鸣器和LED灯的引脚编号,语句“int WaterSensorPin = 7;”和“int FireSensor
  Pin = 8;”则分别对应雨水传感器和火焰传感器的引脚编号;接着,在setup()函数中对它们进行引脚模式的声明,蜂鸣器和LED灯是输出模式——“pinMode(Beep,OUTPUT);”“pinMode(led,OUTPUT);”,两个传感器是输入模式——“pinMode(WaterSensorPin,INPUT);”“pinMode(FireSensor
  Pin,INPUT);”;然后,再通过语句“Serial.begin(9600);”设置串口监视器的波特率(如图2)。



  在loop()函数中,先定义WaterSensorValue和FireSensorValue两个变量,通过“int WaterSensor
  Value = digitalRead(WaterSensorPin);”和“int FireSensorValue = digitalRead(FireSensor
  Pin);”两个语句,实现分别读取雨水传感器和火焰传感器数字信号;接着,构建“if……else……”双分支选择结构,判断雨水传感器和火焰传感器所检测的信号是否为低电平:“WaterSensorValue == LOW or FireSensorValue == LOW”,其中有一个成立(或同时成立)的话,则进行“亮灯、发声、屏显”三种形式的报警——语句“digitalWrite(led,HIGH);”控制LED灯,语句“digitalWrite(Beep,LOW);”控制蜂鸣器(注意是低电平触发),语句“Serial.println(“警报——水火无情,火速检查!”);”是向串口监视器输出提示信息;否则,则通过类似的三个语句来实现“熄灯、无声、屏显”——“digitalWrite(led,LOW);”“digitalWrite(Beep,HIGH);”和“Serial.println(“情况正常,请保持!”);”;最后,添加迟延0.5秒钟的语句“delay(500);”(单位是毫秒),避免死机。完成程序的编写(如图3)。



  保存程序并编译、上传至Arduino,打开串口监视器后对“水火警报仪”进行测试:在没有“水情”“火情”的正常情况下,LED灯不亮、蜂鸣器不响,屏幕显示“情况正常,请保持!”;当在雨水传感器的感应板上滴水滴时(或用湿纸巾接触),LED灯发光、蜂鸣器发声,屏幕显示“警报——水火无情,火速检查!”;或者使用打火机靠近火焰传感器进行“打火”测试,同样也会触发警报(如图4)。

3.Python代码编程实现“水火警报仪”


  使用Python同样可以控制Arduino实现“水火警报仪”。首先,通过语句“import time”和“from pinpong.board import Board,Pin”导入time和pinpong库,并且初始化Arduino uno开发板:“Board(“uno”).begin()”;接着,通过语句“Beep = Pin(Pin.D12, Pin.OUT)”和“led = Pin(Pin.D13, Pin.OUT)”,声明蜂鸣器和LED灯分别插接在Arduino的12和13号数字引脚,并且均为数字输出端;类似地,语句“WaterSensor = Pin(Pin.D7, Pin.IN)”和“FireSensor = Pin(Pin.D8, Pin.IN)”,则是对雨水传感器和火焰傳感器进行声明,分别接插在7号和8号数字引脚,且均为数字输入端。



  在“while True:”循环结构中,先建立Water_Sensor_Value和Fire_Sensor_Value两个变量,通过赋值语句“Water_Sensor_Value = WaterSensor.read_digital()”和“Fire_Sensor_
  Value = FireSensor.read_digital()”,实现读取雨水传感器和火焰传感器所检测到的数字信号功能;然后再建立“if……else……”双分支选择结构,通过对条件表达式“Water_Sensor_Value == 0 or Fire_Sensor_Value == 0”进行逻辑值的判断,条件成立,说明有“水情”或“火情”,则执行“亮灯、发声、屏显”动作——“led.write_digital(1)”“Beep.write_digital(0)”和“print(‘警报——水火无情,火速检查!’)”;条件不成立的话(else分支),则执行“熄灯、无声、屏显”动作——“led.write_digital(0)”“Beep.write_digital(1)”和“print(‘情况正常,请保持!’)”;最后,添加延迟0.5秒钟语句“time.sleep(0.5)”(如图5)。



  程序保存后再按功能键F5运行程序,测试Arduino“水火警报仪”,功能与IDE代码编程完全一致(如图6)。


4.Mind+图形化编程实现“水火警报仪”


  首先,点击Mind+左下角的“扩展”项,将Arduino Uno主控板加载至主界面,注意不要加载其中的水分传感器和火焰传感器,因为该积木块默认封装的数据读取模式是模拟方式,不符合我们的需求。接着,建立“如果……那么执行……否则……”双分支选择结构,先对插接在7号和8号数字引脚的雨水传感器、火焰传感器进行数字信号的读取,再进行逻辑“或”运算判断;条件成立的话,设置数字引脚13输出为高电平——LED灯发光,设置数字引脚12输出为低电平——蜂鸣器发声,串口字符串输出“警报——水火无情,火速检查!”;条件不成立,则对应熄灭LED灯、蜂鸣器不发声和输出显示“情况正常,请保持!”的操作;最后,添加“等待0.5秒”时间延迟积木模块(如图7)。



  保存程序后再点击“上传到设备”项,测试Arduino“水火警报仪”,同样也会实现對“水情”和“火情”的检测报警功能。
其他文献
高考,可以这样查分  随着高考结束,现在很多省份都已经发布本省高考查分日期。一般来说,查分的日期都是通过本省考试院发布的,大家只要及时登录本省考试院的官网和公众号获取相关的信息即可。1.获取官方网站和微信公众号信息  以湖南省考生为例,考分查询和信息发布官网是湖南招生考试信息港(网址.http://wwwhneeb.cn),打开上述网址后,可以将它添加到收藏夹方便下次访问。当然大家也可以关注其官方
期刊
随着电脑长时间使用后存储的文件增多,操作系统、软件的体积增大,很多用户仅有128GB、256GB容量的NVMe M.2 SSD不够用了。与其经常要清理空间,不如升级大容量产品,彻底解决空间不够的问题。WD Blue SN550 1TB  參考价格:699元  虽说对于没有安装大型游戏或专业软件的用户来说,512GB SSD在当下是够用的,不过考虑到免去再次升级的麻烦,我们建议还是选择1TB容量的S
期刊
加入屏显,交互维度再升级  越来越多的智能家居进入我们的生活,而智能音箱作为控制中枢,成为一大热点。根据市场调研机构IDC公布的《中国智能音箱设备市场月度跟踪报告》显示,2020年度我国智能音箱市场规模达到了3676万台,其中小米、天猫、百度三家瓜分了95%以上的出货量。小爱音箱因为接入了海量的米家生态链产品,所以在多设备联动方面,有着很大的优势。  另外,数据分析机构艾媒咨询也在《2020艾媒金
期刊
我国正在紧锣密鼓地建设中国空间站,需要发射很多运载火箭。火箭是以热气流高速向后喷出,利用产生的反作用力向前运动的喷气推进装置。能够保证火箭发射成功已经是一件不容易的事情了,为了更好地降低火箭发射的成本,人们希望让火箭完成发射任务后能够自己回到发射场,回收的火箭还可以再次利用。  我们今天就和大家一起用Scratch做一个简单的火箭降落小游戏。火箭降落这个小游戏还是非常有意思的,游戏开始后,火箭从上
期刊
最近,我们测评了戴尔的游匣G15 3060显卡款,而且是AMD版(电脑报微信公众号)和英特尔版(购机帮你评微信公众号)都测评了。总体来说,G15的外观非常有个性,性能表现也很突出,配置价格比也很高,绝对是值得购买的。  不过一个问题也自然而来:到底是买AMD版还是英特尔版?或者说,两种版本各有什么优势?区别是什么?今天这篇文章就解决这个问题!  配置与规格(AMD vs 英特尔):  屏幕:15.
期刊
前段时间有同学提出了这样一个问题,如果我们在运行程序的过程中想把数据保留下来,以备下次继续使用,该如何操作呢?今天就和大家探讨这个问题。  我们都知道一台电脑的内存、硬盘都是用来存放数据的,而组织、存储和管理数据的地方就是数据库,也可以称为电子化的“文件柜”。简单来说,数据库是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。它的存储空间很大,可以存放上亿条数据。但是数据库并
期刊
这段时间二哥都在看奥运,特别是国球乒乓,中国队简直不要太无敌!咱们虽然被日本队抢走了混双金牌,但其他项目就没让他们有什么盼头啦。看完比赛,二哥手痒痒的,好想打一把球。但是约人太困难,外面又太热,所以干脆在家里打一打乒乓球吧。  虽然说咱们国家乒乓球厉害,但这个机器居然是老外发明的……首先將机器的底座固定在地上,然后分别插上短轴和软轴,再把球插在软轴的末端,就可以开始打球了。拥有超强弹力的软轴会在球
期刊
作为一个土生土长的重庆人,火锅绝对是家常便饭。经常在家里和家人煮火锅的二哥,常常被下达捣蒜的命令。我也不知道为什么家里还有那种用杵捣蒜的土物件,总之每次在享受美食之前,手都特别酸。如果不是偶然看到了这件神器,不知道还要受多久的苦……小知识:为什么吃火锅要放生蒜?  二哥先要解释一下重庆火锅为什么喜欢在调料里面放生蒜泥。首先大蒜是当前发现的天然植物中抗菌效果最强的一种,对多种病菌都能起到抑制和杀灭的
期刊
这周重庆气温升到了40+℃,再加上疫情的加重,家人们,这个天气出门戴口罩真的会窒息的!保命要紧,师姐赶紧入了口罩清凉爆珠,这个真的人手必备一盒吧。打个广告,想入手其他好物的小可爱记得加师姐微信(微信号:yhmd0808)哦,同步更新福利群和朋友圈哈。专业选手做呼吸类产品真是信手拈来  “只要思想不滑坡,办法总比困难多”。在夏天戴口罩这件事上,我算是切身体会到了。在这个疫情加重的7月,师姐在被感染和
期刊
镭仕奇在全网的价格都是比较高的,毕竟品质专业出众,而我们联系到的镭仕奇经销商也每年只允许我们做一次打折活动,数量也有限制。產品的质感非常棒,拿来自己用、送给朋友或者是作为学生考试结束的礼物都是很合适的。
期刊