基于arduino的简易智能家居系统设计
2017-11-08林敏
林敏
摘 要:随着科技的进步,家用电器逐步走向智能化,网络化。市场上有很多现成的智能家居方案,功能各有不同,但是大多成本较高,一定程度上影响了大面积推广应用。本项目主要利用arduino结合蓝牙模块以及相关的继电器等器件,实现通过手机客户端控制电灯、插座等家用电器。
关键词:arduino 蓝牙 家用电器
中图分类号:TP274 文献标识码:A 文章编号:1672-3791(2017)09(b)-0001-02
智能家居(英文:smart home, home automation)是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。目前市场上的智能家居产品很多,功能各有特点,但是大多成本较高,一定程度上影响了大面积推广应用。
本项目利用现在非常流行的开源硬件arduino,结合蓝牙模块等外部设备,实现简单的智能家居遥控,具有体积小巧,可靠性高,成本低廉,扩展改造性强等特点。
1 Arduino简介
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(arduino IDE)。它适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
2 项目目标
本项目设想通过Arduino来控制两只电灯、一个插座来模拟简单的家用电器场景,在手机上安装客户端,通过蓝牙和Arduino建立连接,然后就可以在手机端通过点击不同的按钮来实现对电灯、插座等的遥控,并在手机端实时反应出来。
3 项目设计方案
3.1 硬件电路设计
本项目的电路原理图如图1所示,电源模块将220V市电转换为5V直流电源输出给Arduino uno控制器供电,Arduino通过HC-05主从机一体蓝牙模块和手机进行通信,D3-D5这3个数字输出口分别控制KA1,KA2,KA3继电器的线圈,继电器的触电又控制相应的电灯和插座,这样,Arduino控制器的D3-D5这3个数字输出口的状态就直接控制了电灯及插座的工作状态。
3.2 软件设计
本项目的软件包括两部分:Arduino uno控制器的控制程序,手机端控制程序,下面分别介绍。
(1)Arduino uno控制器控制程序。
控制程序如下所示:
long val;int l1=3;int l2=4;int k1=5;
void setup()
{ Serial.begin(9600);pinMode( l1 , OUTPUT);pinMode( l2 , OUTPUT);pinMode( k1 , OUTPUT);}
void loop()
{ val=Serial.read();if(val=='1'){digitalWrite( l1 , 1 );}else if(val=='2'){digitalWrite( l1 , 0 );}else if(val=='3'){digitalWrite( l2 , 1 ); }else if(val=='4'){digitalWrite( l2 , 0 ); }else if(val=='5'){digitalWrite( k1 , 1 ); } else if(val=='6'){digitalWrite( k1 , 0 ); }}
简要说明:本控制程序中int l1=3;int l2=4;int k1=5;这段是将Arduino控制器上D3——D5端口声明为整形变量l1、l2、k1;Serial.begin(9600)是打开Arduino控制器的串口并设置波特率为9600;pinMode( l1 ,OUTPUT);
pinMode( l2 , OUTPUT);pinMode( k1 , OUTPUT);这段是把D3——D5端口设置为输出模式;val=Serial.read()这句是将通过蓝牙模块接收到的手机端发送的信息赋值给val;然后开始判断,如果收到的信息为“1“(if(val=='1'))则将D3口输出高电平(digitalWrite( l1 , 1 ) );如果收到的信息为“2“(if(val=='2'))则将D3口输出低电平(digitalWrite( l1 , 0 ) )。D4、D5端口的控制类似。
(2)手机端控制软件
手机端的控制软件,采用谷歌开源的安卓开发工具App Inventor来开发,App Inventor 原是Google实验室的一个子计划,由一群Google工程师勇于挑战的Google使用者共同参与。App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程序代码而使用积木式的堆叠法来完成您的Android程式。对于Android初学者或是简单应用开发者来说是一大福音。因为他们不大需要太华丽的界面,只要使用基本元件例如按钮、文字输入输出即可。App Inventor非常适合这类开发。
4 总结
经过调试和实际测试,手机端可以在20米范围内连接成功并实现对相应终端的控制,连接稳定,控制反应迅速,体积小巧,功耗较低,经测试可以24小时不间断运行,本項目做为南京机电职业技术学院2017年度三创大赛参赛作品,目前在后期改进工作中,下一步主要改进方向是:1、增加控制对象数量;2、改进控制软件,增加控制功能,比如延时打开或关闭,预约定时打开或关闭等等。
参考文献
[1] simon monk ,创客电子电子制作DIY指南,人民邮电出版社,2014
[2] simon monk ,arduino编程从零开始,科学出版社,2013.
[3] 陈吕洲,arduino程序设计基础,北京航空航天大学出版社,2015.endprint