基于8051单片机及安卓平台的智能家居系统研究
2018-09-10岑毅
岑毅
摘 要:近年来,智能家居在人们的生活起居中得到越来越多的应用,通过各种无线技术与单片机技术的应用,人们逐渐构建起控制家庭设施与实施计划任务的智能化系统。本文描述了一套基于8051单片机系统与时下流行的安卓系统设计而成的智能家居系统。通过本系统,用户能利用蓝牙技术及红外遥控技术实现对各种家庭设备的控制。这套系统具有功能丰富、控制效率高和价格低廉等优点和较好的应用前景。
关键词:智能家居;单片机;安卓;蓝牙
中图分类号:TP315;TP273.5 文献标识码:A 文章编号:1003-5168(2018)07-0014-02
Research of Home Automation System Based on 8051
MCU and Android Platform
CEN Yi
(Department of Electro-mechanics, Guangdong Industry Polytechnic, Guangzhou Guangdong 510300)
Abstract: In recent years, the technology of home automation is playing a more and more important role in peoples everyday life. Combining different wireless communication and MCU technology, we are capable to build automation system which can organize our home. The home automation system described in this paper was based on the 8051MCU system and the popular android platform. By using this system, users are able control different kinds of home appliance and monitor their house.
Keywords: home automation;micro-controller;Android;Bluetooth
本文介绍的智能家居系统使用市面上常见的AT89C51单片机作为下位机控制芯片。AT89C51单片机具有体积小、低功耗、控制能力好和价格便宜等优点。通过蓝牙芯片连接单片机与安卓设备,使用安卓系统上的应用程序,读取单片机最小系统上的传感器探测数据,根据获得的传感器探测数据,根据使用者的喜好对家居内部的环境参数(如温度、湿度、房间亮度)进行调节,并通过安卓上位机的摄像头对家居进行监控,以达到家居智能化的目的。通过连接互联网,使用者可以通过本系统的红外遥控功能对家居中的电器(如空调、电视等)进行远程控制。本系统的原理如图1所示。
1 系统设计
1.1 8051单片机系统
为了降低成本,笔者以ATMEL公司的AT89C51单片机为基础,用常用的电子元件搭建了8051最小系统,以实现单片机的基本功能。最小系统由8051单片机、振荡电路、电容器和程序下载器电路组成。连接好以后,在电源输入VCC端输入5V电压后,此最小系统就能通过蓝牙芯片接收用户发来的指令,完成对家电设备的控制任务[1]。
1.2 蓝牙设备
该系统使用安卓提供的Bluetooth Adapter与单片机上的蓝牙模块通信,当安卓上位机通过蓝牙与单片机上的蓝牙模块连接后(通过输入密码,蓝牙设备默认密码是0000或1234),上位机上的APP创建一个Bluetooth Socket,用于和单片机上的蓝牙模块通信[2]。
该系统采用蓝牙芯片连接8051最小系统和安卓设备,蓝牙芯片的型号为HC06。此芯片上具有TXD、RXD两个接口,分别通过杜邦线与8051单片机的RXD(P3.0)、TXD(P3.1)接口连接。
HC06蓝牙模块使用AT指令作为蓝牙设置方式。如用手机向蓝牙模块发送“AT+BAUD1”命令,蓝牙串口波特率设为1 200。发送“AT+NAMEname”,蓝牙名称设为name等[3]。具体命令清单可参照HC06模块说明书。
1.3 安卓上位机程序设计
该系统采用安卓设备作为上位机。安卓设备(如廉价安卓手机)具有软件开发调试简便、集成众多实用硬件(如摄像头、麦克风和重力控制器等)、扩展性强(可连接蓝牙芯片等)和价格低廉等优点[4],可用于开发智能家居控制系统和安全监视系统。通过安卓开发工具ADT开发安卓应用程序控制单片机,并通过JSP服务器端程序,使用户能通过互联网远程监测与控制该智能家居系统。本系统中用到的应用程序由客户端网络通信程序、Internet服务器端组成。
笔者以用户通过远程控制安卓上位机打开空调调整家中空调温度的过程为例,详细介绍该系统的工作原理。系统工作流程为:①建立空调温度控制页面,用户用一个Edit Text控件输入设定的温度,然后把设置的温度值通过互联网发送到Tomcat服务器;②Tomcat服务器上的JSP网页接收到新设置的温度值后,修改数据库中相应的值,等待安卓上位机检测;③家中的安卓上位机通过互联网连接到Tomcat服务器,并以3s一次的频率不断检测Tomcat服务器上MySQL数据库中的相应值,当相应值符合条件时,安卓上位机通过蓝牙芯片控制8051单片机向家中空调发送红外信号,将空调温度设置为用户设置值[5]。
1.4 客户端网络通信程序
该系统安卓上位机采用Apache提供的Http Client接口进行网络通信,Http Client对JAVA提供的访问网络方法进行封装,使用HttpGet、HttpPost和HttpResponse类进行数据输出和输入操作。用户可远程连接Tomcat服务器,从而对Android上位机发送指令,进行如开启家中空调、开启热水器、打开窗帘等一系列操作[6]。
1.5 Internet服务器端程序设计
该系统使用JSP编写服务器端程序,并使用XAMPP服务器软件作为JSP集成开发环境套件。此套件集成Tomcat服务器、MySQL数据库等我们常用的开发工具,省去了单独设置各个组件的麻烦。当用户通过手机等移动设备发送指令后,指令通过互联网传送到Internet服務器上。服务器上的JSP网页分析指令后,通过JDBC(Java Data Base Connectivity,Java数据库连接,一种用于执行SQL语句的Java API)连接上XAMPP中集成的MySQL数据库,并用MySQL的UPDATE命令更新相应的指令数据。当安卓上位机检测到指令数据变动后,按照更新后的指令数据对相应电器设备进行操作。
2 结语
本文提出了一种智能家居系统的设计思路。本系统有别于市面上的其他智能家居系统,为了节省成本,采用8051单片机最小系统作为下位机。经过测试发现,此单片机最小系统能较好地完成控制任务,耗能小,反应较快。在上位机方面,由于采用的安卓系统具有较高的通用性,价格便宜,所以非常适合作为智能家居系统使用。综上所述,本系统具有较高可靠性,且成本较低,非常值得推广。
参考文献:
[1]Reto Meier.Professional Android 4 Application Development[M]. New York:Wiley Publishing Inc,2012.
[2]Simon Monk.Arduino+Android互动智作[M].唐乐,译.北京:科学出版社,2013.
[3]郭天祥.新概念51单片机C语言教程――入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009.
[4]李正明,吴波.基于物联网的智能家居控制系统研究[J].现代科学仪器,2012(2):68-71.
[5]郭海杰,吴飞,雷必成.嵌入式智能家居控制系统的研究[J].福建电脑,2009(3):111-112.
[6]申利民,刘冬香.基于GSM智能家居控制系统的设计[J].传感器世界,2011(1):32-36.