岑毅

摘 要:近年來,智能家居在人們的生活起居中得到越來越多的應用,通過各種無線技術與單片機技術的應用,人們逐漸構建起控制家庭設施與實施計劃任務的智能化系統。本文描述了一套基于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.