您好,欢迎来到六九路网。
搜索
您的当前位置:首页基于arduino智能家居控制系统

基于arduino智能家居控制系统

来源:六九路网
技术应用TECHNOLOGYANDMARKET

Vol.27,No.1,2020

基于Arduino智能家居控制系统

余 鹏

(四川轻化工大学物理与电子工程学院,四川宜宾644005)

摘 要:物联网的发展使得智能家居得以兴起。在生活中为了满足智能及自动控制家居的发展,使家庭变得更加舒适及安全,设计了智能家居控制系统。以ArduinoDUE嵌入式最小系统与物联网为平台,制作并设计一款智能的家居控制器。通过使用ESP8266网络模块、STH30温湿度模块、TFT显示屏、红外测距传感器、人体红外感应传感器、气体检测传感器等外围电路,实现智能家居控制器而设计的。

关键词:智能家居控制器;Arduino嵌入式系统;物联网

Arduinobasedintelligenthomecontrolsystem

YUPeng

(SchoolofPhysicsandElectronicEngineering,SichuanUniversityofLightand

ChemicalTechnology,Yibin644005,China)

Abstract:WiththedevelopmentoftheInternetofthings,smarthomerises.Inordertosatisfythedevelopmentofsmartandauto

maticcontrolhome,smarthomecontrolsystemisdesignedtomakethehomemorecomfortableandsafe.AnintelligenthomecontrollerisdesignedbasedonArduinodueembeddedminimumsystemandInternetofthings.Throughtheuseofesp8266networkmodule,sth30temperatureandhumiditymodule,TFTdisplay,infrareddistancesensor,humaninfraredsensor,gasdetectionsensorandotherperipheralcircuitstoachievethedesignofsmarthomecontroller.Keywords:Smarthomecontroller;Arduinoembeddedsystem;Internetofthingsdoi:10.3969/j.issn.1006-8554.2020.01.030󰀡 引言

随着科技的不断发展,智能家居已经在我们生活的品质中起到关键作用,智能家居的兴起的趋势已势不可挡。物联网就是把世界上的万物连接到一起的形式,是由互联网为基础延伸的一种网络,其将不同模块得到的热度、光亮、气味、电压值等信息通过网络传输到需要的人与物上,从而实现对外界事物大感知。科技的快速发展使我们的生活水平得以飞跃,智能家居的声影已经逐渐进入人们的生活中,小到智能控制的插线板,大到机器人管家,智能家居控制系统发展变得丰富多样化。这个领域刚兴起不久,就得到人们的一致好评,使得智能家居控制系统发展得迅速。网络的发展,使得网络控制、语音控制、隔空控制变为可能,智能家居使我们的生活水平及质量得到了飞的智悦,也使得智能家居更加的人性化与普及化。

󰀢 智能家居控制硬件设计

网络的控制需要客户端和控制端处于网络畅通才能运行控制指令,需要搭载服务器,对控制端传过来的数据及客户端发来的数据指令进行交互,这样才能满足使智能家居达到需要的要求。该设计通过Blinker的网络服务器平台,使用ESP8266模块挂载到服务器,通过客户端进入相应的软件来对挂载到网络服务器上的控制端进行指令控制,服务器把客户端发来的控制指令通过网络传输到ESP8266网络模块。ESP8266交互式的返回交互信息,并对接收到数据通过串口发送数据到Arduino系统板,此时Arduino通过对网络传输而得到的数据进行解析。对解析的数据进行判断,从而执行相应的操作。其硬件组成部分如图1所示。

图1 系统框图

1.1 Arduino嵌入式系统

整个家居的自动控制都是ArduinoDUE板完成,对接收到的各种模块数据、指令等进行处理,完成相应的控制要求。

1.2 温湿度测量

温湿度硬件电路使用的SHT30数字型的温湿度传感器,采用IIC通信方式对得到的温湿度数据进行传输。湿度测量

70

技术与市场2020年第27卷第1期

的范围在0~199%RH,精度为±3%RH;温度测量的范围在-40℃~125℃,精度在±0.3℃。该传感器已经满足了正常家居的使用范围。1.3 TFT_1.44显示屏

显示器使用的TFT屏,因其可以地对各个像素点进行控制,优越的反应速度及可视的角度达到了130度,是高端产品必备的部件。TFT_1.44显示屏模块采用SPI通信方式,与IIC相比SPI的速度更快。1.4 网络模块

使用ESP8266网络传感器,其工作电压为3.3V,网络工作频率范围在2.412~2.484GHz,因其模块有丰富的硬件接口,可支持UART、GPIO、IIC、ADC等,在各种场合都非常的适用。1.5 气体检测

气体无色无味,人的各种器官很难辨别出来,当一些有害气体泄露,无一不危害到人的生命,所以为系统设计增加了气体检测传感器。气体检测使用MQ-2烟雾传感器,其特点在于有非常高的灵敏度、稳定性高、使用寿命长,兼顾烟雾、甲烷、液化气等可燃气体的检测,适合家居的使用场景。1.6 测距模块

一般情况下,人最大能承受的36V的电压,而家用是

220V的交流电对人来说万一触电,伤害是巨大的,所以在人生安全的情况下,为系统设计手挥即关的功能,避免由触碰而触电的风险。该设计使用GP2D12红外线测距传感器完成手挥动距离,其具有结构简单、易于小型化、成本低、抗干扰强等优点,易于家居的使用。1.7 人体检测

当室内没有人,都外出了,屋内的钱财、物品没人看管,无疑不会让外出的人心存顾虑。或者当你在熟睡的时候,小偷入室盗窃,对钱财和人都是一种威胁。由此在该系统增添HC-SR501人体红外感应传感器,其传感器可调的监测范围适合家居报警功能的使用。

󰀧 系统的设计及实现

要实现智能终端的控制,软件部分就要分为两个部分:一块是上位机手机的设计;另一块则是下位机及受控系统。而受控系统的设计又分为两个部件,由ArduinoDUE硬件完成自动控制的操作和ESP8266网络传感器完成网络的数据交互。ArduinoDUE主要的功能是对IO端口连接的传感器获取的数据进行处理和对ESP8266在网上获取到的日期和时间,用TFT进行显示。由ESP8266网络模块通过上位机得来的控制指令解析后通过串口传送,ArduinoDUE控制部分接收到串口信息后完成相应的控制。ESP8266网络模块的主要功能是连接到互联网,从网络获取时间日期,并且把手机控制端通过网络发来的数据进行解析,然后传送给ArduinoDUE,从而完成整个控制。2.1 上位机APP部分

上位机的APP软件(Blinker)通过网络连接到Blinker平台,获取ESP8266网络模块通过网络上传的数据,同时等待数据的发送。2.2 下位机部分

整个设计的核心组成就在下位机部分,所有的数据指令,控制指令都在这个部分作用给人或者物上。2.2.1 ArduinoDUE控制系统

Arduino系统会在开机时去判断ESP8266网络模块是否连

技术应用

上网络,当网络不通时会在TFT显示屏上提示连接网络,当判断ESP8266网络模块已经连上网络则获取ESP8266模块得到的时间等信息。开机过后Arduino一直通过串口检测ESP8266模块发送过来的信息,当其中有控制指令则完成相应的控制功能。同时ArduinoDUE对自己芯片IO端口挂接的模块的检测数据进行解析处理通过TFT显示屏显示。

1)整个系统开机需要先获取时间,首先需要调用“Blinker.h”库,然后通过相应代码获取时间。

//Getthetime

  time_sec=Blinker.second()  time_m=Blinker.minute()  time_h=Blinker.hour()  time_wday=Blinker.wday()  time_month=Blinker.month()  time_mday=Blinker.mday()time_year=Blinker.year()

2)获取温湿度则调用“ClosedCube_SHT3XD.h”库,初始化SHT30温湿度传感器后,通过相应代码获取传感器的测量值。

//获取温湿度

  printResult(sht3xd.readTempAndHumidity(REPEATABILITY_HIGH,MODE_POLLING,50));

3)红外线测距模块用于挥手即可开关灯的功能,ArduinoDUE通过模拟量输入端口A0获取GP2D12测距传感器的输出电压值,然后通过运算处理获得测距值。在使用时首先应该考虑挥手动作后要延迟一段时间后再测距判断挥手动作,所以调用控制器运行时间已达到避免一挥手即多次动作的情况。

//手挥开关灯

  data=analogRead(A0)

 cm=2547.8/((float)data0.49-10.41)-0.42if((zz!=0)&&(cm<20)){Blinker.delay(15)   data=analogRead(A0)

  cm=2547.8/((float)data0.49-10.41)-0.42   if(cm<20){

    if(millis()/2000!=millis_backup){     millis_backup=millis()/2000

     digitalWrite(D2,!digitalRead(D2));//开关灯控制IO口

4)整个系统开机时,MQ-2传感器需要>30s的时间进行加热后才能得到准确的阻值。该传感器的阻值R与室内被测的有害气体的浓度C的数学关系式为:logR=mlogCn(m,n为常数)。n的值与传感器灵敏度有关,不仅与传感器的材料有关,还与气体种类和室内温度等有关系。m的值为气体浓度变化的灵敏度。设置模拟端口A0检测传感器输出的电压值来判定室内空气情况。

 //气体检测

 intval=analogRead(A0);//读取气体传感器输出电压值

 if(val>500)

 digitalWrite(D3,HIGH);//有害气体浓度过高触发报警 else

 digitalWrite(D3,LOW)

71

技术应用

5)人体红外感应模块的输出方式为开关方式,当人进入其感应范围则输出高电平并延时一段时间,当人离开一段时间后则自动跳变到低电平。传感器上可设置重复或不可重复触发、感应范围、延时时间,通过传感器上的电位器进行相应的调节。把对应的输出IO口接到ArduinoDUE的IO端口D4。当夜晚或者屋内人员离开则对该IO端口进行判断;当有人闯入则触发人体红外感应传感器,ArduinoDUE检测到后触发警报,并通过ESP8266网络模块传输到上位机进行提示。

 time_h=Blinker.hour();//Acquisitionhours

if((time_h>0)&&(time_h<5)){//判断是否是凌晨1~5点

 if(digitalRead(D3))//检测D3端口是否为高电平,为“高”则触发报警

 digitalWrite(D5,HIGH)

if(!digitalRead(D3)){//检测D3端口是否为低电平,为“低”则关闭报警

 digitalWrite(D5,LOW)2.2.2 ESP8266网络模块

在开机运行时,要ESP8266网络模块接入网络,使之能挂接到平台,所以最开始需要对ESP8266进行相应的配置,则需要将SSID名称、密码设置到模式当中。首先配置固定的SSID名称、密码及Blinker的个人设备密钥,然后通过调用Blinker库把固定的AT指令和Blinker个人用户的密钥写入ESP8266控制器中,然后由Blinker库函数来控制ESP8266的控制器自动连接WIFI,最后挂接到Blinker服务器平台。

1)SSID名称、密码及密钥配置

charauth[]="f2b812c58ff2"; //YourDeviceSecretKeycharssid[]="wifi"; //YourWiFinetworkSSIDornamecharpswd[]="yupeng123"; //YourWiFinetworkWPApasswordorWEPkey

2)调用Blinker库写入AT指令到控制器(上接第69页)

法是通过利用数学上的解析法和关系距离法来进行放样,如采用经纬仪的方向交会放样法、全站仪的边角放样法(角度和距离)等,它们都要求仪器和放样点之间必须通视良好,通常需要2~3人协助操作才能将某个设计点位放样出来,此种方法需要多次来回移动棱镜至目标点位,在实际生产应用中效率非常低下。利用JSCORS网络RTK技术进行放样测量时,仅仅需要1个人扛着GPS,只需要放样前在随机的手簿中输入点位坐标,连接上JSCORS网络后,手簿屏幕上有箭头指示偏移方位和偏移量,方便迅速找到放样点位,直到满足放样精度要求为止。此种放样方式精度高且误差不会累计,通过坐标直接进行放样,大大提高了放样测量的效率。2.4 其他方面的工程测量

其他方面的工程测量比如城市地下管线测量、建构筑物变形监测、不动产测量、航空摄影像控点测量等,JSCORS网络RTK技术都可以利用其优势进行广泛的应用。2.5 应用小结

通过以上应用的介绍,总结出JSCORS网络RTK技术的主要优势有:用户仅需1台流动站①省去了购买基准站的费用,

作者简介:

TECHNOLOGYANDMARKET

Vol.27,No.1,2020

BLINKER_DEBUG.stream(Serial)

Blinker.begin(auth,ssid,pswd); //WriteSSIDorkey Blinker.attachData(dataRead)

 Blinker.setTimezone(8.0); //Settimezone

󰀨 结语

该系统设计的主要思想是便利家居生活,提高生活的品质,并以当今生活的发展趋势设计了该系统。该设计的重要组成部分为上位机和下位机,下位机又分为ArduinoDUE控制部分和ESP8266网络模块,整个系统的核心就在于此部分的组成。上位机主要负责发送控制指令;而下位机的ArduinoDUE各种器件的触发及各模块数据的检测显示,ESP8266网络模块则通过网络完成下位机ArduinoDUE和上位机之间的数据交互传输。通过网络的便利和快速反应等特点,使家居生活更加的方便与智能。参考文献:

[1] 张金,叶艾,岳伟甲,等.Arduino程序设计与实践[M].北

京:电子工业出版社,2019.

[2] 沈金鑫著.创客教育丛书Arduino探究实验[M].北京:

北京航空航天大学出版社,2017.

[3] (美)埃文斯,(美)诺布尔,(美)霍肯鲍姆著.Arduino实

战[M].北京:人民邮电出版社,2014.

[4] 余云飞,朱得元,章平.基于Arduino和ESP8266的多终

端智能家居控制平台的设计与实现[J].安庆师范大学学报(自然科学版),2019,25(3):36-40.

[5] 赵英杰.完美图解物联网IoT实操ESP8266ArduinoCor

dova物联网移动App[M].北京:电子工业出版社,2018.[6] 沈华刚,吕刚磊.基于ESP8266串口WiFi智能插座设计

[J].电子世界,2019(7):202.

余鹏(1993-),男,四川南充人,四川轻化工大学。就可实现单机作业的模式。②相比传统的电台基站方式,JSCORS网络RTK技术缩短了卫星初始化的时间,大大扩展了测量作业范围。③用户使用起来方便快捷,并可全天候作业,显

并提供远程著提高了作业效率。④拥有完善的数据监控系统,网络服务,由此实现了全省用户的数据共享。

󰀨 结语

JSCORS网络RTK具有操作简便、高精度、高效率、24h全天候应用等优势,其不仅在操作方法上还是在可靠性方面都满足工程测量的要求。在使用中,我们发现其在卫星信号较弱的测区(建筑物密集区、树林区、磁场区、)应用时,由于接收卫星数量少初始化变慢,固定解难以锁定,因此,我们要充分利用其优势,采用与传统测量相结合的方法,高效率、高精度地完成各种工程测量任务。参考文献:

[1] 北京市测绘设计研究院.CJJ8-99城市测量规范[S].北

京:中国建筑工业出版社,1999.

[2] 刘经南,刘晖.连续运行卫星定位服务系统:城市空间数

据的基础设施[J].武汉大学学报,2003(6):259-264.

72

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务