基于Arduino开发环境的智能家居系统设计 下载本文

内容发布更新时间 : 2024/10/15 11:27:03星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

基于Arduino开发环境的智能家居系统设计

作者:陈为通 谭晶磊 赵子君 郑天帅 来源:《中国新通信》2016年第06期

【摘要】 本系统立足集成和创新,结合建设行业信息技术实际应用状况和国际上信息技术发展趋势,确定城市数字化标准规范与相关工具、城市数字化体系结构与信息集成关键技术、城市数字化应用软件开发与商品化为重点研究课题,基于Arduino开发环境设计智能家居系统的整体方案,实现防火、防盗、烟雾报警、软件报警、实时监控、温湿度显示等功能。通过火焰、烟雾、人体等传感器获得所需数据,结合自编软件对数据进行处理分析,并搭建模拟智能家居系统,试验运行稳定。

【关键词】 物联网 智能家居 防火 防盗 报警 引言

智能家居是家居平台物联网化的结果,在计算机技术、自动化技术和通信技术发展趋势下,通过物联网技术将家居中的各种设备相互联接,并能统一协调管理。家居智能化的概念已被很多人所接受,相关的智能化设备也进入到普通百姓家,给人们生活增添了不少便捷,尤其是在防火、防盗方面发挥了很大作用,能减少生命和财产的损失。

本系统利用Arduino平台强大的可拓展性和开源性来开发智能家居系统,选用Arduino单片机芯片作为控制核心,通过自建硬件平台模拟智能家居环境,将硬件传感器获取的数据反馈给自编软件集中处理,用户可通过客户端得知家中温度、湿度、人体警报、火焰警报、烟雾警报等情况并能实时监控。 一、系统设计 1.1系统组成

系统由Arduino控制模块、温湿度探测模块、防盗模块、防火模块、无线通信模块、客户端报警监控模块6个模块组成,如图1所示。Arduino控制模块负责处理温湿度探测模块、防盗模块、防火模块收集到的数据,并将结果反馈给客户端报警监控模块进行分析,最终实现所需功能。

龙源期刊网 http://www.qikan.com.cn

1.2模拟家居环境

采用市面流行的DIY小房子搭建小型家居环境模拟实际家居环境,可将模拟家居环境分为卧室、客厅、大门三个部分。 二、硬件系统设计 2.1单片机控制模块

主控芯片选择Arduino Mega2560单片机控制板,开源且有很强的拓展性。其处理器核心是ATmega2560,具有54通道数字输入/输出口(其中16通道可作为PWM输出)和16通道10bADC模拟量输入,4路UART接口,1个ICSP header,时钟晶振为16MHz。是采用USB接口的核心电路板,通过USB线可与电脑直接连接便于在线进行程序调试。 2.2数据采集模块

数据采集模块包括三个子模块,分别是温湿度探测模块,防盗模块,防火模块。温湿度探测模块采用AM2302数字温湿度传感器,防盗模块采用HC-SR505人体传感器,防火模块再分为火焰探测模块和烟雾探测模块,分别采用YL-38火焰传感器和YL-15烟雾传感器。 2.4无线通信模块

无线通信模块采用E12-TTL无线串口模块,优势是低功耗,控制方式灵活,中心频率为433MHz,具有TTL电平的串口通信接口,支持波特率为1200-57600多达7种波特率。经过复

龙源期刊网 http://www.qikan.com.cn

杂的无线通信配置以及传输算法,通过TTL串口连接到设备,2个模块即可取代一条传统的串口线,传输距离远达450m,完全满足家用。 2.5客户端报警监控模块

客户端报警模块分为PC端和移动端。PC客户端使用Visual Basic编程语言编写,这使得平板移动端可以兼容使用,通过串口将Arduino处理过的传感器传回的数据进行分析并予以显示,用户可以得知当前家中的温度和湿度情况以及人体、火焰、烟雾警报,并且在警报响起后可以打开家中布置好的监控设备实时查看家中情况。而手机移动端使用JAVA语言编写,可以在搭载Android系统的移动电话上使用,同样可以通过无线网络或移动数据的方式实时获知家里的情况并且能够查看监控。 三、软件系统设计

3.1 Arduino IDE集成开发环境

Arduino具有类似于Java和C语言的IDE集成开发环境,其编程语言类似于C语言,用户可以通过USB接口直接进行编程和通信。 3.2算法简述

本设计中,客户端会实时显示当前卧室温度和湿度数据。当家中没有起火和无人入侵时,客户端的人体、火焰、烟雾警报不会亮起。

而当家中起火时,YL-38火焰传感器和YL-15烟雾传感器若同时传回警报,则判定为家中某处起火,此时客户端报警;而家中若有人入侵,大门的人体警报会先亮起。当用户收到警报时,可以选择打开监控来实时观察家中情况从而作出对策,达到防火防盗等目的。 3.3传感器处理程序

传感器处理程序的功能是在Arduino上运行的,将传感器采集到的数据进行集中处理后通过E12-TTL无线串口模块反馈给客户端分析显示。以如下部分代码为例: void loop()

{// 输出2表示传感器感应到某种状态,如火焰、烟雾或人体 // 输出1表示传感器没有感应到 chk = DHT.read22(DHT22_PIN);