岑毅
摘 要:近年來(lái),智能家居在人們的生活起居中得到越來(lái)越多的應(yīng)用,通過(guò)各種無(wú)線技術(shù)與單片機(jī)技術(shù)的應(yīng)用,人們逐漸構(gòu)建起控制家庭設(shè)施與實(shí)施計(jì)劃任務(wù)的智能化系統(tǒng)。本文描述了一套基于8051單片機(jī)系統(tǒng)與時(shí)下流行的安卓系統(tǒng)設(shè)計(jì)而成的智能家居系統(tǒng)。通過(guò)本系統(tǒng),用戶能利用藍(lán)牙技術(shù)及紅外遙控技術(shù)實(shí)現(xiàn)對(duì)各種家庭設(shè)備的控制。這套系統(tǒng)具有功能豐富、控制效率高和價(jià)格低廉等優(yōu)點(diǎn)和較好的應(yīng)用前景。
關(guān)鍵詞:智能家居;單片機(jī);安卓;藍(lán)牙
中圖分類號(hào):TP315;TP273.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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
本文介紹的智能家居系統(tǒng)使用市面上常見(jiàn)的AT89C51單片機(jī)作為下位機(jī)控制芯片。AT89C51單片機(jī)具有體積小、低功耗、控制能力好和價(jià)格便宜等優(yōu)點(diǎn)。通過(guò)藍(lán)牙芯片連接單片機(jī)與安卓設(shè)備,使用安卓系統(tǒng)上的應(yīng)用程序,讀取單片機(jī)最小系統(tǒng)上的傳感器探測(cè)數(shù)據(jù),根據(jù)獲得的傳感器探測(cè)數(shù)據(jù),根據(jù)使用者的喜好對(duì)家居內(nèi)部的環(huán)境參數(shù)(如溫度、濕度、房間亮度)進(jìn)行調(diào)節(jié),并通過(guò)安卓上位機(jī)的攝像頭對(duì)家居進(jìn)行監(jiān)控,以達(dá)到家居智能化的目的。通過(guò)連接互聯(lián)網(wǎng),使用者可以通過(guò)本系統(tǒng)的紅外遙控功能對(duì)家居中的電器(如空調(diào)、電視等)進(jìn)行遠(yuǎn)程控制。本系統(tǒng)的原理如圖1所示。
1 系統(tǒng)設(shè)計(jì)
1.1 8051單片機(jī)系統(tǒng)
為了降低成本,筆者以ATMEL公司的AT89C51單片機(jī)為基礎(chǔ),用常用的電子元件搭建了8051最小系統(tǒng),以實(shí)現(xiàn)單片機(jī)的基本功能。最小系統(tǒng)由8051單片機(jī)、振蕩電路、電容器和程序下載器電路組成。連接好以后,在電源輸入VCC端輸入5V電壓后,此最小系統(tǒng)就能通過(guò)藍(lán)牙芯片接收用戶發(fā)來(lái)的指令,完成對(duì)家電設(shè)備的控制任務(wù)[1]。
1.2 藍(lán)牙設(shè)備
該系統(tǒng)使用安卓提供的Bluetooth Adapter與單片機(jī)上的藍(lán)牙模塊通信,當(dāng)安卓上位機(jī)通過(guò)藍(lán)牙與單片機(jī)上的藍(lán)牙模塊連接后(通過(guò)輸入密碼,藍(lán)牙設(shè)備默認(rèn)密碼是0000或1234),上位機(jī)上的APP創(chuàng)建一個(gè)Bluetooth Socket,用于和單片機(jī)上的藍(lán)牙模塊通信[2]。
該系統(tǒng)采用藍(lán)牙芯片連接8051最小系統(tǒng)和安卓設(shè)備,藍(lán)牙芯片的型號(hào)為HC06。此芯片上具有TXD、RXD兩個(gè)接口,分別通過(guò)杜邦線與8051單片機(jī)的RXD(P3.0)、TXD(P3.1)接口連接。
HC06藍(lán)牙模塊使用AT指令作為藍(lán)牙設(shè)置方式。如用手機(jī)向藍(lán)牙模塊發(fā)送“AT+BAUD1”命令,藍(lán)牙串口波特率設(shè)為1 200。發(fā)送“AT+NAMEname”,藍(lán)牙名稱設(shè)為name等[3]。具體命令清單可參照HC06模塊說(shuō)明書(shū)。
1.3 安卓上位機(jī)程序設(shè)計(jì)
該系統(tǒng)采用安卓設(shè)備作為上位機(jī)。安卓設(shè)備(如廉價(jià)安卓手機(jī))具有軟件開(kāi)發(fā)調(diào)試簡(jiǎn)便、集成眾多實(shí)用硬件(如攝像頭、麥克風(fēng)和重力控制器等)、擴(kuò)展性強(qiáng)(可連接藍(lán)牙芯片等)和價(jià)格低廉等優(yōu)點(diǎn)[4],可用于開(kāi)發(fā)智能家居控制系統(tǒng)和安全監(jiān)視系統(tǒng)。通過(guò)安卓開(kāi)發(fā)工具ADT開(kāi)發(fā)安卓應(yīng)用程序控制單片機(jī),并通過(guò)JSP服務(wù)器端程序,使用戶能通過(guò)互聯(lián)網(wǎng)遠(yuǎn)程監(jiān)測(cè)與控制該智能家居系統(tǒng)。本系統(tǒng)中用到的應(yīng)用程序由客戶端網(wǎng)絡(luò)通信程序、Internet服務(wù)器端組成。
筆者以用戶通過(guò)遠(yuǎn)程控制安卓上位機(jī)打開(kāi)空調(diào)調(diào)整家中空調(diào)溫度的過(guò)程為例,詳細(xì)介紹該系統(tǒng)的工作原理。系統(tǒng)工作流程為:①建立空調(diào)溫度控制頁(yè)面,用戶用一個(gè)Edit Text控件輸入設(shè)定的溫度,然后把設(shè)置的溫度值通過(guò)互聯(lián)網(wǎng)發(fā)送到Tomcat服務(wù)器;②Tomcat服務(wù)器上的JSP網(wǎng)頁(yè)接收到新設(shè)置的溫度值后,修改數(shù)據(jù)庫(kù)中相應(yīng)的值,等待安卓上位機(jī)檢測(cè);③家中的安卓上位機(jī)通過(guò)互聯(lián)網(wǎng)連接到Tomcat服務(wù)器,并以3s一次的頻率不斷檢測(cè)Tomcat服務(wù)器上MySQL數(shù)據(jù)庫(kù)中的相應(yīng)值,當(dāng)相應(yīng)值符合條件時(shí),安卓上位機(jī)通過(guò)藍(lán)牙芯片控制8051單片機(jī)向家中空調(diào)發(fā)送紅外信號(hào),將空調(diào)溫度設(shè)置為用戶設(shè)置值[5]。
1.4 客戶端網(wǎng)絡(luò)通信程序
該系統(tǒng)安卓上位機(jī)采用Apache提供的Http Client接口進(jìn)行網(wǎng)絡(luò)通信,Http Client對(duì)JAVA提供的訪問(wèn)網(wǎng)絡(luò)方法進(jìn)行封裝,使用HttpGet、HttpPost和HttpResponse類進(jìn)行數(shù)據(jù)輸出和輸入操作。用戶可遠(yuǎn)程連接Tomcat服務(wù)器,從而對(duì)Android上位機(jī)發(fā)送指令,進(jìn)行如開(kāi)啟家中空調(diào)、開(kāi)啟熱水器、打開(kāi)窗簾等一系列操作[6]。
1.5 Internet服務(wù)器端程序設(shè)計(jì)
該系統(tǒng)使用JSP編寫(xiě)服務(wù)器端程序,并使用XAMPP服務(wù)器軟件作為JSP集成開(kāi)發(fā)環(huán)境套件。此套件集成Tomcat服務(wù)器、MySQL數(shù)據(jù)庫(kù)等我們常用的開(kāi)發(fā)工具,省去了單獨(dú)設(shè)置各個(gè)組件的麻煩。當(dāng)用戶通過(guò)手機(jī)等移動(dòng)設(shè)備發(fā)送指令后,指令通過(guò)互聯(lián)網(wǎng)傳送到Internet服務(wù)器上。服務(wù)器上的JSP網(wǎng)頁(yè)分析指令后,通過(guò)JDBC(Java Data Base Connectivity,Java數(shù)據(jù)庫(kù)連接,一種用于執(zhí)行SQL語(yǔ)句的Java API)連接上XAMPP中集成的MySQL數(shù)據(jù)庫(kù),并用MySQL的UPDATE命令更新相應(yīng)的指令數(shù)據(jù)。當(dāng)安卓上位機(jī)檢測(cè)到指令數(shù)據(jù)變動(dòng)后,按照更新后的指令數(shù)據(jù)對(duì)相應(yīng)電器設(shè)備進(jìn)行操作。
2 結(jié)語(yǔ)
本文提出了一種智能家居系統(tǒng)的設(shè)計(jì)思路。本系統(tǒng)有別于市面上的其他智能家居系統(tǒng),為了節(jié)省成本,采用8051單片機(jī)最小系統(tǒng)作為下位機(jī)。經(jīng)過(guò)測(cè)試發(fā)現(xiàn),此單片機(jī)最小系統(tǒng)能較好地完成控制任務(wù),耗能小,反應(yīng)較快。在上位機(jī)方面,由于采用的安卓系統(tǒng)具有較高的通用性,價(jià)格便宜,所以非常適合作為智能家居系統(tǒng)使用。綜上所述,本系統(tǒng)具有較高可靠性,且成本較低,非常值得推廣。
參考文獻(xiàn):
[1]Reto Meier.Professional Android 4 Application Development[M]. New York:Wiley Publishing Inc,2012.
[2]Simon Monk.Arduino+Android互動(dòng)智作[M].唐樂(lè),譯.北京:科學(xué)出版社,2013.
[3]郭天祥.新概念51單片機(jī)C語(yǔ)言教程――入門(mén)、提高、開(kāi)發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009.
[4]李正明,吳波.基于物聯(lián)網(wǎng)的智能家居控制系統(tǒng)研究[J].現(xiàn)代科學(xué)儀器,2012(2):68-71.
[5]郭海杰,吳飛,雷必成.嵌入式智能家居控制系統(tǒng)的研究[J].福建電腦,2009(3):111-112.
[6]申利民,劉冬香.基于GSM智能家居控制系統(tǒng)的設(shè)計(jì)[J].傳感器世界,2011(1):32-36.