基于Arduino的智能家居监控系统设计
2022-05-30张雪峰黄榕张海榆牛国锋钱振江
张雪峰 黄榕 张海榆 牛国锋 钱振江
摘要:该设计采用Arduino控制器以及温湿度传感器、数字环境光照传感器、模拟声音传感器、继电器控制、LCD液晶显示屏和SD存储卡等设计一款智能家居监测控制系统。Arduino控制器通过数字和I/O扩展接口分别连接不同的传感器和LCD液晶显示屏,实现对温度、湿度、环境光以及噪音等变化情况的实时数据监测和采集,采用LCD液晶显示屏显示并将数据写入SD卡中进行保存和研究。该智能家居监测控制系统简洁、直观、方便、可靠,能实现相应的监测和提示功能,应用在一些特定场所具有较高的实用性和成本优势。
关键词:Arduino控制器;传感器;智能家居;数据监测
中图分类号:TM383.4 文献标识码:A
文章编号:1009-3044(2022)10-0004-02
目前,市场上的一些家居监测控制系统基本都是采用51单片机作为核心控制模块,而且在环境数据监测类别和显示功能方面比较单一,进行功能的扩展也需要更改单片机内部硬件结构和寄存器的设置等,存在诸多缺点和不便。Arduino是一款便捷灵活、方便开发者使用和开发的开源电子原型平台,核心是AVR芯片,整块板子类似于单片机开发板,外接各种单片机扩展接口,小巧方便,但在功能上却非常强大[1]。利用该平台结合成熟的传感器技术和液晶显示技术,通过其强大的端口作用开发设计多种系统,为人们的生活和生产带来便捷。本设计基于Arduino平台设计一个智能环境监控系统,用来检测居住环境下室内一天中温度、湿度、光照以及噪音变化情况,并将数据写入SD卡中进行分析,具有很高的实用性。
1 主控板及监控传感器
本系统设计采用Arduino控制器为核心,同时还要用到DHT11温湿度传感器、BH1750FV数字环境光照传感器、MIC(microphone) 模拟声音传感器,温度、湿度、光照和声音传感器采集到的都是模拟信号,需要从模拟量到数字量的转换,最终实现数字信号的终端输出和显示。各个传感器与Arduino核心控制器连接也非常方便,采用杜邦线将其输入输出端接到Arduino相应的I/O引脚上,正负极电源通过接线相应的电源引脚来供电。
1.1 Arduino UNO主控板
Arduino是一个微控制器平台,它由基于Atmel AVR单片机的开放源码硬件和专门的开发环境组成。Arduino Uno是目前使用最广泛的Arduino控制器,具有Arduino的所有基本功能[2]。Uno的处理器核心是ATmega328,处理速度可达20MIPS,它包括14路数字输入/输出接口,I/O口功能强大,具有A/D转换等电路。另外主控板上还集成了一个16MHZ晶体振荡器、USB接口、电源接口、ICSP接口和复位键开关按钮等,可实现功能扩展[3]。
1.2 溫湿度监控设计
温湿度传感器DHT11采用专用数字模块采集技术和温湿度传感技术,易于MCU处理和控制[4],是一款含有校准数字信号输出的单总线数据传输的温湿度复合传感器,使得该传感器模块具有极高的可靠性与卓越的长期稳定性能,且该传感器体积小、功耗低,信号传输距离可达20米以上,同时具有精度准确、读取灵敏等优点[5]。
1.3 光照控制设计
光照强度采用BH1750FVI数字环境光照传感器对所处环境的温度进行检测。该传感器的优点在于接受光照的输入光范围大、灵敏度高、光源依赖性弱、识别能力强,对于光的感知灵敏度很接近人类视觉灵敏度,通过Arduino扩展模拟口便可以读取模拟值,用以对周围环境光的强度进行检测[6]。结合继电器控制实现对光照强度的测量,根据室内光照强度情况及需要,控制继电器打开、闭合来制控制电动窗帘的打开和闭合操作。
1.4 声音传感器
MIC声音传感器是一款基于麦克风为声音检测的传感器,对环境声音强度较为敏感,可用来对周围环境中的声音强度进行检测,具有300倍的放大器,输出模拟信号能使用3.3V和5V为基准AD采集,可以用来实现根据声音大小进行互动的效果、制作声控机器人、声控开关、声控报警等,传感器灵敏度可通过数字电位器调节。
1.5 LED灯预警设计
本设计中采用LED灯作为预警显示灯,其连接电源正负极端,电压为高电压时,LED灯亮。系统在工作过程中设置预警灯主要起到一个辅助预警的作用,当室内实时温湿度值、光照强度、声音强度达到预警值时,LED灯闪烁提示预警。
2 硬件设计
2.1 系统硬件结构设计
各个传感器与Arduino Uno主控板上相应的数字引脚或模拟引脚通过杜邦线引线连接,主板上不够用的引脚采用Arduino传感器扩展板接口进行了接口扩展。各个模块相应的接口连接如下[7]:
(1) 将DHT11温湿度模块的VCC、GND、DOUT引脚分别接至Arduino UNO控制板上的+5V、GND、数字端口2,为了防止电流过大烧坏还需要在VCC与DOUT之间串联一个5KΩ的上拉电阻适当进行电流控制。
(2) BH1750FV数字环境光照传感器的VCC、GND、DOUT引脚分别接至Arduino UNO控制板上的+5V、GND、模拟引脚端口A0。
(3) 将声音传感器VCC、GND、DOUT引脚分别接至Arduino UNO控制板上的+5V、GND、模拟引脚端口A1。
(4) 将SD卡模块VCC、GND引脚分别接至Arduino UNO控制板上的+5V和GND,MISO、MOSI、SCLK、CS四个引脚分别连接控制板上的10、11、12、13端口。
(5) 将继电器模块的正负引脚分别接至Arduino UNO控制板上的+5V、GND,进行电源供电。
(6) LED预警灯模块的正负引脚分别接至Arduino UNO控制板上的+5V、GND,进行电源供电。
传感器采集到的温度、湿度、光照和声音实时数据通过D/A转换器将实时数据转换为模拟信号进行传输,在显示终端再通过A/D转换将模拟信号转换为比较直观的数字信号,最终实现实时数据的输出和显示。系统硬件连接示意图如图1所示。
2.2 显示设计
本设计中LCD液晶显示屏采用1602LCD,显示的内容为16X2个字符,即可显示两行,每行16个字符液晶模块(显示字符和数字) 的字型。本设计中两行即可显示所有内容,显示格式如图2所示。
第一行左起,温度显示占8个字符,提示符T,温度值占4位(包含小数点和一位小数) 以C结尾,显示温度范围为0到99.9。声音强度占后8个字符,提示符S,声音强度值占4位,以dB结束,显示声音强度范围为0到9999。
第二行左起,湿度显示占8个字符,提示符H,湿度值占4位(包含小数点和一位小数) 以%结尾,显示湿度范围为0到99.9。光照强度占后8个字符,提示符S,声音强度值占5位,以L结束,显示声音强度范围为0到99999。
3 软件设计及实现
3.1 Arduino IDE
Arduino IDE是一款专用Arduino开发板编程软件,在电脑端安装好Arduino IDE软件开发环境后,使用USB线将Arduino Uno连接至电脑的USB端口, 同时,USB为控制板及传感器供电。连接完成后,在IDE中首选要选择相应的Arduino板卡,本设计中选择Uno,然后定位到Tools-Serial Port菜单选择恰当的COM端口,将程序编写调试好后,就可以通过此软件下载并烧写到Arduino开发板中执行[8],主板上状态灯会显示主板及传感器工作状态。
3.2 实现结果
本设计实施例中,智能家居监测控制系统应用在室内居住环境的监测数据显示。经实地检测,温度显示:T:24.0C,湿度显示:H: 36.0%,声音强度显示:S:193dB,光照强度显示:L:54612L,LCD显示结果如图3所示。通过测试,本智能家居环境监控系统可为人们的居家生活提供很好的环境保障。
本智能家居监测控制系统还可根据需求继续扩展和完善更多的功能,比如无线传感器技术Zigbee模块的日趋成熟,无线网络传感器被良好地应用于此设计中,实现网络中各个节点之间信息更加便捷的传输与通讯,对环境状态的实时监测将更加方便、及时和有效。另外可以采用LCD分屏进行日期和时间的显示,设置预警值进行温湿度的预警功能灯等,使其显示的内容更具体更丰富,能够更好地为人们的生产和生活服务。
4 数据导出及图表分析
4.1 SD卡数据写入及读取
SD卡数据的写入是把用于存储数据连接的SD卡将采集到的不同传感器数据直接写入到SD中的过程,储存数据的文件是log.csv。当第一行代码运行后会在SD卡中自动创建一个log.csv的新文件,采集到的数据会每隔5s写入这个文件中,在CSV文件的每一行中都有當前时间和数据,这些就是系统数据记录器所采集到的环境数据[9]。
SD卡记录中数据读取时会新建一个speed.txt的TXT文件,在此文件中设定好数据刷新速率,按照设定的数据刷新速率来更新抽取想要的数据域。分析数据并绘制图表的方法很多,可以采用相关的数据分析软件完成,本设计对采集的家居环境数据结合Excel进行了一些相关数据的图表分析。
4.2 绘制图表分析
本设计中采集到的温度、湿度、声音、光照强度数据经过读取导出后,可利用相关数据进行分析研究。根据其中某天不同时间段采集到的相关数据生成相应的图表如图4所示,可清晰、直观反映出该天不同时间段各项数据值的变化情况。
5 结束语
基于Arduino的智能家居检测控制系统简洁、直观、方便、可靠,能实现相应的室内环境监测和控制,为人们的生活和出行提供各种方便与便捷服务,也可适用于计算机机房、图书馆、储存粮仓、温室大棚测温、空调室温控制等环境要求较为敏感和温度控制要求较高的场所,在价格成本上具有一定优势。本设计系统主要研究利用现有的成熟传感技术和互联网技术实现获取实时的环境状况信息,这种实现方法简单快速、成本低廉、具有很高的实用性。
参考文献:
[1] 吕新远,夏银飞,尹盛,等.基于Arduino的智能家居环境远程监控系统设计[J].信息与电脑(理论版),2019(5):78-80.
[2] 蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155-157.
[3] Arduino UNO管脚标注[EB/OL].[2011-10-28].http://my.oschina.net/jingshishengxu/blog/34134.
[4] 向镍锌,邝乙桐,王雪.基于单片机的智能家居监控系统设计[J].电脑知识与技术,2020,16(28):198-201.
[5] 鲁成洋,何坚强.基于单片机的智能家居环境监控系统设计[J].智能机器人,2019(5):59-62.
[6] 幸联星.基于单片机的智能家居环境检测系统设计[J].电子技术与软件工程,2020(1):59-61.
[7] 渠淼,牛国锋,冒张霄,等.基于Arduino的智能环境监控系统设计[J].微型机与应用,2014,33(20):83-85.
[8] 陈吕洲.Arduino程序设计基础[M].2版.北京:北京航空航天大学出版社,2015.
[9] (美)Jeremy BlumArduino魔法书:实现梦想的工具和技术[M].况琪,王俊升,译.北京:电子工业出版社,2014.
【通联编辑:代影】
收稿日期:2021-08-09
基金项目:2019年江苏省高校“青蓝工程”中青年学术带头人培养对象项目(2019) ; 2021年常熟理工学院省级创新项目(项目编号:202110333014Z)
作者简介:牛国锋,通讯作者,实验师,硕士,主要研究方向为无线传感网技术、嵌入式系统应用。