摘? 要: 臥室門(mén)智能化對(duì)凈化環(huán)境具有重要意義。開(kāi)發(fā)者通常需要自己搭建硬件平臺(tái),以及限用c和c++語(yǔ)言開(kāi)發(fā)智能門(mén)系統(tǒng),其系統(tǒng)開(kāi)發(fā)具有較大的難度。為降低開(kāi)發(fā)難度,本文探討了基于SL4A的臥室門(mén)智能系統(tǒng),先闡述SL4A體系結(jié)構(gòu)和藍(lán)牙相關(guān)技術(shù),然后給出了系統(tǒng)分析與設(shè)計(jì),最后使用PHP腳本實(shí)現(xiàn)了系統(tǒng)。實(shí)踐表明文中系統(tǒng)能智能控制門(mén)開(kāi)關(guān)和停止,具有開(kāi)發(fā)難度低和適應(yīng)多種開(kāi)發(fā)語(yǔ)言等優(yōu)點(diǎn)。
關(guān)鍵詞: SL4A;PHP;Android;智能;藍(lán)牙
【Abstract】: Smart systems for bedroom doors are of great significance for purifying the environment. Developers usually need to build their own hardware platforms and can only use C or C++ language to develop smart door systems. The development of smart door systems has great difficulty. In order to reduce the difficulty of development, this paper discusses a smart system for bedroom door based on SL4A. This paper first introduces the related technologies of the SL4A and Bluetooth, then gives analysis and design of the system, and finally develops the system using PHP script. Practice shows that the system can control the switch and stop of a bedroom door intelligently, and it has the advantages of low development difficulty and adaptability to various development languages.
【Key words】: SL4A; PHP; Android; Smart; Bluetooth
0? 引言
冬夏季,人們經(jīng)常會(huì)在封閉臥室開(kāi)空調(diào)睡覺(jué)。臥室長(zhǎng)期不通風(fēng)會(huì)對(duì)人的身體健康帶來(lái)危害,這將大大降低生活品質(zhì)。臥室通過(guò)窗戶(hù)雖然可以實(shí)現(xiàn)自然通風(fēng)換氣,但霧霾、寒風(fēng)、冷熱空氣和噪音也會(huì)隨之而來(lái),室溫會(huì)瞬間變冷變熱,室內(nèi)空氣會(huì)快速受污,室內(nèi)會(huì)變得吵雜。臥室通過(guò)新風(fēng)系統(tǒng)雖然可以長(zhǎng)時(shí)間擁有新鮮空氣,但新風(fēng)系統(tǒng)存在維護(hù)問(wèn)題,使用不當(dāng)容易造成二次污染。讓臥室門(mén)根據(jù)睡眠時(shí)段和關(guān)門(mén)時(shí)間長(zhǎng)度自動(dòng)定期開(kāi)門(mén)連通大客廳,這不僅使臥室能通風(fēng)換氣保持新鮮空氣,而且不會(huì)出現(xiàn)室溫瞬間變冷變熱問(wèn)題,不會(huì)存在二次污染問(wèn)題,不會(huì)出現(xiàn)大量室外噪音影響睡眠問(wèn)題,能大大提高生活品質(zhì)。
許多研究者基于不同硬件設(shè)計(jì)和實(shí)現(xiàn)了智能門(mén),但是研究者主要關(guān)注智能門(mén)的監(jiān)控和安防問(wèn)題,對(duì)智能門(mén)的智能家居環(huán)境問(wèn)題還未引起太多關(guān)注。王宏[1]等人基于樹(shù)莓派開(kāi)源硬件開(kāi)發(fā)了遠(yuǎn)程智能門(mén)控制系統(tǒng),具有近距拍照記錄、遠(yuǎn)程視頻監(jiān)控、遠(yuǎn)程協(xié)助門(mén)控和智能門(mén)鑰等功能。周運(yùn)道[2]等人基于STM32設(shè)計(jì)了智能門(mén)控系統(tǒng)。余騰偉[3]等人基于單片機(jī)設(shè)計(jì)了智能家居門(mén)控制系統(tǒng),系統(tǒng)具有實(shí)現(xiàn)遠(yuǎn)程控制門(mén)的開(kāi)關(guān)、進(jìn)出門(mén)的權(quán)限、實(shí)時(shí)監(jiān)控門(mén)前情況和進(jìn)出記錄查詢(xún)等功能。郭艷平[4]基于ARM設(shè)計(jì)和實(shí)現(xiàn)了智能門(mén)警系統(tǒng)。盡管這些系統(tǒng)具有功能強(qiáng)大等優(yōu)點(diǎn),但是其不足是,系統(tǒng)覆蓋硬件類(lèi)型較多,開(kāi)發(fā)者需要熟悉各種硬件特性和自行搭建硬件平臺(tái),另外,開(kāi)發(fā)者只能采用c或c++語(yǔ)言開(kāi)發(fā)系統(tǒng),系統(tǒng)開(kāi)發(fā)難度具有較大的困難。針對(duì)這些問(wèn)題,本文提出了一種基于SL4A[5]設(shè)計(jì)和開(kāi)發(fā)臥室門(mén)智能控制系統(tǒng)的方法。
1? SL4A相關(guān)技術(shù)
1.1? SL4A工作原理
SL4A的英文全稱(chēng)為Scripting Layer for Android,它是Android原生態(tài)應(yīng)用,它面向腳本語(yǔ)言提供Android原生態(tài)服務(wù),使Android開(kāi)發(fā)簡(jiǎn)單和快速。SL4A支持的腳本語(yǔ)言包括Python、JavaScript和PHP等。SL4A基于JSON-RPC遠(yuǎn)程調(diào)用原理為腳本提供Android原生態(tài)服務(wù),腳本應(yīng)用通過(guò)TCP/IP協(xié)議以遠(yuǎn)程代理方式間接訪問(wèn)Android原生態(tài)服務(wù)。先由本地腳本傳遞JSON數(shù)據(jù)向“SL4A RPC Server”組件請(qǐng)求Android原生態(tài)服務(wù),然后由“SL4A RPC Server”組件調(diào)用Android系統(tǒng)函數(shù)完成服務(wù),再然后將服務(wù)的執(zhí)行結(jié)果以JSON數(shù)據(jù)格式返回給本地腳本,最后本地腳本解析JSON數(shù)據(jù)和讀出Android原生態(tài)服務(wù)的數(shù)據(jù)。任何本地腳本,只要實(shí)現(xiàn)了這套兼容的JSON-RPC通信接口,就可以呼叫 “SL4A RPC Server”組件共享Android服務(wù)。腳本訪問(wèn)Android服務(wù)體系結(jié)構(gòu)如圖1所示,圖以python腳本訪問(wèn)Android服務(wù)為例,腳本程序myscript.py由python腳本引擎解釋運(yùn)行,腳本要訪問(wèn)Android系統(tǒng)服務(wù),需經(jīng)腳本引擎的“Android RPC Module”模塊向“SL4A RPC Server”發(fā)出Android服務(wù)請(qǐng)求,請(qǐng)求數(shù)據(jù)格式使用JSON數(shù)據(jù)格式,再由“SL4A RPC Server”調(diào)用Android原生態(tài)API獲取Android服務(wù),之后再按原路以JSON數(shù)據(jù)格式把Android服務(wù)結(jié)果返回給腳本處理。關(guān)于SL4A技術(shù),邢等人基于JavaScipt[6]和PHP[7]探討了SL4A和研發(fā)了地圖應(yīng)用等示范應(yīng)用。
1.2? YS-BLK藍(lán)牙控制模塊[8]
藍(lán)牙技術(shù)是一種低成本和短距離的無(wú)線通信技術(shù)。由于藍(lán)牙技術(shù)具有成本低、功耗低、連接快速、移植性較強(qiáng)、安全性較高、組網(wǎng)容易和設(shè)計(jì)開(kāi)發(fā)簡(jiǎn)單等優(yōu)點(diǎn),因此,藍(lán)牙技術(shù)近幾年受到了較多關(guān)注[9]。為簡(jiǎn)化開(kāi)發(fā),飛音云電子將藍(lán)牙技術(shù)與單片機(jī)技術(shù)整合開(kāi)發(fā)出YS-BLK藍(lán)牙控制模塊,開(kāi)發(fā)者只需遵循藍(lán)牙協(xié)議就可以控制IO端口完成系統(tǒng)功能。圖2是YS-BLK藍(lán)牙控制模塊的結(jié)構(gòu)圖。藍(lán)牙模塊長(zhǎng)寬度為28*23 mm,供電電壓為5 V,共有10個(gè)IO端口A1-A10,IO端口高電平為5 V,藍(lán)牙模塊可根據(jù)遠(yuǎn)程發(fā)送過(guò)來(lái)的指令對(duì)IO端口進(jìn)行控制,IO端根據(jù)指令可以實(shí)現(xiàn)高電平輸出、低電平輸出、自鎖、電機(jī)控制、0.3-3 s(0.3 s為等級(jí))點(diǎn)動(dòng)和狀態(tài)查詢(xún)功能。端口A1和A2可聯(lián)合起來(lái)控制電機(jī)的正反轉(zhuǎn)和停止。表1列出了藍(lán)牙模塊指令及其控制的電機(jī)狀態(tài)。
2? 臥室門(mén)智能控制系統(tǒng)
2.1? 需求分析
圖3是系統(tǒng)功能結(jié)構(gòu)圖。由圖可知,系統(tǒng)由門(mén)控模塊、設(shè)置模塊、環(huán)境光感應(yīng)模塊和計(jì)時(shí)模塊等組成。門(mén)控模塊用于控制門(mén)的開(kāi)關(guān)和停止。智能控制的生效時(shí)間段、門(mén)開(kāi)關(guān)環(huán)境光閾值等條件可通過(guò)設(shè)置模塊完成。環(huán)境光感應(yīng)模塊用于實(shí)時(shí)采集當(dāng)前環(huán)境光值。計(jì)時(shí)模塊可以控制門(mén)開(kāi)關(guān)的時(shí)間長(zhǎng)度,通過(guò)時(shí)間長(zhǎng)度實(shí)現(xiàn)現(xiàn)臥室門(mén)的開(kāi)合度。
2.2? 系統(tǒng)設(shè)計(jì)
圖4是系統(tǒng)結(jié)構(gòu)圖。系統(tǒng)由安卓手機(jī)、終端、電機(jī)和臥室門(mén)等硬件和實(shí)體組成。安桌手機(jī)用于環(huán)境光采集和智能控制決策。終端用于接收安卓手機(jī)的指令,控制電機(jī)正反轉(zhuǎn)和停止。電機(jī)固定于門(mén)底端,連接單個(gè)車(chē)輪,電機(jī)帶動(dòng)車(chē)輪正反轉(zhuǎn)實(shí)現(xiàn)門(mén)開(kāi)關(guān)。安卓手機(jī)由環(huán)境光傳感器、設(shè)置模塊、計(jì)時(shí)模塊、藍(lán)牙模塊和SL4A組件構(gòu)成。為了達(dá)到智能控制臥室門(mén),①用戶(hù)通過(guò)設(shè)置模塊事先設(shè)置好智能控制條件,條件包括生效時(shí)間段、門(mén)開(kāi)關(guān)環(huán)境光閾值和門(mén)開(kāi)關(guān)/停止指令;②應(yīng)用程序通過(guò)環(huán)境光傳感器收集當(dāng)前環(huán)境光值;③應(yīng)用程序?qū)?dāng)前環(huán)境光值、當(dāng)前時(shí)間和智能控制條件進(jìn)行比較,如果滿(mǎn)足用戶(hù)設(shè)置的智能控制條件就通過(guò)藍(lán)牙向終端發(fā)送開(kāi)關(guān)門(mén)指令控制門(mén)的開(kāi)和關(guān),否則繼續(xù)②;④應(yīng)用程序通過(guò)計(jì)時(shí)模塊開(kāi)始門(mén)開(kāi)關(guān)倒計(jì)時(shí),如果倒計(jì)時(shí)結(jié)束,則通過(guò)藍(lán)牙向終端發(fā)送門(mén)停止指令控制門(mén)停止。
2.3? 系統(tǒng)模塊實(shí)現(xiàn)
本文使用PHP語(yǔ)言開(kāi)發(fā)了系統(tǒng),為便于開(kāi)發(fā),本文設(shè)置了一個(gè)全局變量$android,它是一個(gè)連接SL4A服務(wù)的對(duì)象,通過(guò)該對(duì)象可以訪問(wèn)SL4A的藍(lán)牙等服務(wù)。
2.3.1? 設(shè)置模塊
3? 實(shí)驗(yàn)和分析
本文在安裝有SL4A的小米公司紅米note 4x等手機(jī)測(cè)試通過(guò)。圖5是智能參數(shù)設(shè)置。從圖中可知,用戶(hù)設(shè)置了一條智能開(kāi)門(mén)條件,條件由觸發(fā)時(shí)間、環(huán)境光閾值和門(mén)動(dòng)作等組成,觸發(fā)時(shí)間為凌晨02點(diǎn)30分10秒,環(huán)境光閾值是10,門(mén)動(dòng)作是開(kāi)門(mén)。當(dāng)時(shí)間處于半夜2點(diǎn)半,室內(nèi)未開(kāi)燈,周邊環(huán)境較暗時(shí),臥室門(mén)就會(huì)自動(dòng)打開(kāi)。由于臥室與客廳大空間等連通,以及空調(diào)帶來(lái)的臥室內(nèi)外溫差,所以空氣就會(huì)流動(dòng),臥室換進(jìn)新鮮空氣。由于本文采用手機(jī)作為硬件平臺(tái),而手機(jī)通常都帶有環(huán)境光傳感器等傳感器,所以開(kāi)發(fā)者無(wú)需關(guān)心環(huán)境光傳感器等硬件,只需通過(guò)SL4A接口[10]便可便捷地采集到環(huán)境光,這大大降低了開(kāi)發(fā)難度。由于本文采用SL4A作為軟件平臺(tái),因此軟件開(kāi)發(fā)者可以選用合適的開(kāi)發(fā)語(yǔ)言來(lái)完成系統(tǒng),而無(wú)需使用具有較高難度的c或c++語(yǔ)言。本文不足的,本文方法需要手機(jī)擁有超級(jí)用戶(hù)權(quán)限,這對(duì)普通用戶(hù)是個(gè)問(wèn)題。
4? 結(jié)論
文中探討了臥室門(mén)智能控制系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā),由于基于SL4A軟件,開(kāi)發(fā)者只需借助較簡(jiǎn)單硬件便可以構(gòu)建出系統(tǒng),開(kāi)發(fā)者還可以使用PHP等多種開(kāi)發(fā)語(yǔ)言快速開(kāi)發(fā)出系統(tǒng)原型。這對(duì)降低企業(yè)的成本和提高開(kāi)發(fā)進(jìn)度具有較大的意義。下一步工作是讓系統(tǒng)智能學(xué)習(xí)用戶(hù)習(xí)慣,使生活更加智能化。
參考文獻(xiàn)
王宏, 何洋等. 基于樹(shù)莓派的遠(yuǎn)程智能門(mén)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 智能計(jì)算機(jī)與應(yīng)用, 2018, (3): 79-83.
周運(yùn)道, 周海軍等. 基于STM32的可視化智能門(mén)控系統(tǒng)設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù), 2017, (19): 140-141.
余騰偉, 童旭. 基于單片機(jī)的智能家居門(mén)控制系統(tǒng)設(shè)計(jì)[J]. 山東工業(yè)技術(shù), 2016, (19): 105.
郭艷平. 基于ARM的智能門(mén)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息通信, 2016, 61-62.
邢益良, 雷華軍等. Android腳本應(yīng)用開(kāi)發(fā)技術(shù)[M]. 北京: 清華大學(xué)出版社, 2017.
Yiliang Xing, Huajun Lei. Design and Implementation of Integrating Geographic Location into Web Map Based on Scripting Layer for Android[C]. Hangzhou, China : Proceedings of 2016 IEEE International Conference on Big Data Analysis, 2016. 197- 200.
邢益良, 裴云等. Android PHP 和Web開(kāi)發(fā)入門(mén)與實(shí)踐[M]. 北京: 清華大學(xué)出版社, 2014.
飛音云電子(2018, August 19). 藍(lán)牙控制器[Online] Avail able: https: //item. taobao. com/item. htm?spm=a1z10. 1-c. w4004-7614499511. 23. 50256e88nLyXw4&id=40339080657.
錢(qián)志鴻, 劉丹 . 藍(lán)牙技術(shù)數(shù)據(jù)傳輸綜述[J]. 通信學(xué)報(bào), 2012, 33 (4) : 143-15.
www.mithril.com.au(2018, August 19). SL4A API Help [Online]. Available: http://www.mithril.com.au/android/doc/ index.html.