摘? 要: 臥室門智能化對(duì)凈化環(huán)境具有重要意義。開發(fā)者通常需要自己搭建硬件平臺(tái),以及限用c和c++語言開發(fā)智能門系統(tǒng),其系統(tǒng)開發(fā)具有較大的難度。為降低開發(fā)難度,本文探討了基于SL4A的臥室門智能系統(tǒng),先闡述SL4A體系結(jié)構(gòu)和藍(lán)牙相關(guān)技術(shù),然后給出了系統(tǒng)分析與設(shè)計(jì),最后使用PHP腳本實(shí)現(xiàn)了系統(tǒng)。實(shí)踐表明文中系統(tǒng)能智能控制門開關(guān)和停止,具有開發(fā)難度低和適應(yīng)多種開發(fā)語言等優(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ì)在封閉臥室開空調(diào)睡覺。臥室長期不通風(fēng)會(huì)對(duì)人的身體健康帶來危害,這將大大降低生活品質(zhì)。臥室通過窗戶雖然可以實(shí)現(xiàn)自然通風(fēng)換氣,但霧霾、寒風(fēng)、冷熱空氣和噪音也會(huì)隨之而來,室溫會(huì)瞬間變冷變熱,室內(nèi)空氣會(huì)快速受污,室內(nèi)會(huì)變得吵雜。臥室通過新風(fēng)系統(tǒng)雖然可以長時(shí)間擁有新鮮空氣,但新風(fēng)系統(tǒng)存在維護(hù)問題,使用不當(dāng)容易造成二次污染。讓臥室門根據(jù)睡眠時(shí)段和關(guān)門時(shí)間長度自動(dòng)定期開門連通大客廳,這不僅使臥室能通風(fēng)換氣保持新鮮空氣,而且不會(huì)出現(xiàn)室溫瞬間變冷變熱問題,不會(huì)存在二次污染問題,不會(huì)出現(xiàn)大量室外噪音影響睡眠問題,能大大提高生活品質(zhì)。
許多研究者基于不同硬件設(shè)計(jì)和實(shí)現(xiàn)了智能門,但是研究者主要關(guān)注智能門的監(jiān)控和安防問題,對(duì)智能門的智能家居環(huán)境問題還未引起太多關(guān)注。王宏[1]等人基于樹莓派開源硬件開發(fā)了遠(yuǎn)程智能門控制系統(tǒng),具有近距拍照記錄、遠(yuǎn)程視頻監(jiān)控、遠(yuǎn)程協(xié)助門控和智能門鑰等功能。周運(yùn)道[2]等人基于STM32設(shè)計(jì)了智能門控系統(tǒng)。余騰偉[3]等人基于單片機(jī)設(shè)計(jì)了智能家居門控制系統(tǒng),系統(tǒng)具有實(shí)現(xiàn)遠(yuǎn)程控制門的開關(guān)、進(jìn)出門的權(quán)限、實(shí)時(shí)監(jiān)控門前情況和進(jìn)出記錄查詢等功能。郭艷平[4]基于ARM設(shè)計(jì)和實(shí)現(xiàn)了智能門警系統(tǒng)。盡管這些系統(tǒng)具有功能強(qiáng)大等優(yōu)點(diǎn),但是其不足是,系統(tǒng)覆蓋硬件類型較多,開發(fā)者需要熟悉各種硬件特性和自行搭建硬件平臺(tái),另外,開發(fā)者只能采用c或c++語言開發(fā)系統(tǒng),系統(tǒng)開發(fā)難度具有較大的困難。針對(duì)這些問題,本文提出了一種基于SL4A[5]設(shè)計(jì)和開發(fā)臥室門智能控制系統(tǒng)的方法。
1? SL4A相關(guān)技術(shù)
1.1? SL4A工作原理
SL4A的英文全稱為Scripting Layer for Android,它是Android原生態(tài)應(yīng)用,它面向腳本語言提供Android原生態(tài)服務(wù),使Android開發(fā)簡單和快速。SL4A支持的腳本語言包括Python、JavaScript和PHP等。SL4A基于JSON-RPC遠(yuǎn)程調(diào)用原理為腳本提供Android原生態(tài)服務(wù),腳本應(yīng)用通過TCP/IP協(xié)議以遠(yuǎ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ù)。腳本訪問Android服務(wù)體系結(jié)構(gòu)如圖1所示,圖以python腳本訪問Android服務(wù)為例,腳本程序myscript.py由python腳本引擎解釋運(yù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ù)是一種低成本和短距離的無線通信技術(shù)。由于藍(lán)牙技術(shù)具有成本低、功耗低、連接快速、移植性較強(qiáng)、安全性較高、組網(wǎng)容易和設(shè)計(jì)開發(fā)簡單等優(yōu)點(diǎn),因此,藍(lán)牙技術(shù)近幾年受到了較多關(guān)注[9]。為簡化開發(fā),飛音云電子將藍(lán)牙技術(shù)與單片機(jī)技術(shù)整合開發(fā)出YS-BLK藍(lán)牙控制模塊,開發(fā)者只需遵循藍(lán)牙協(xié)議就可以控制IO端口完成系統(tǒng)功能。圖2是YS-BLK藍(lán)牙控制模塊的結(jié)構(gòu)圖。藍(lán)牙模塊長寬度為28*23 mm,供電電壓為5 V,共有10個(gè)IO端口A1-A10,IO端口高電平為5 V,藍(lán)牙模塊可根據(jù)遠(yuǎn)程發(fā)送過來的指令對(duì)IO端口進(jìn)行控制,IO端根據(jù)指令可以實(shí)現(xiàn)高電平輸出、低電平輸出、自鎖、電機(jī)控制、0.3-3 s(0.3 s為等級(jí))點(diǎn)動(dòng)和狀態(tài)查詢功能。端口A1和A2可聯(lián)合起來控制電機(jī)的正反轉(zhuǎn)和停止。表1列出了藍(lán)牙模塊指令及其控制的電機(jī)狀態(tài)。
2? 臥室門智能控制系統(tǒng)
2.1? 需求分析
圖3是系統(tǒng)功能結(jié)構(gòu)圖。由圖可知,系統(tǒng)由門控模塊、設(shè)置模塊、環(huán)境光感應(yīng)模塊和計(jì)時(shí)模塊等組成。門控模塊用于控制門的開關(guān)和停止。智能控制的生效時(shí)間段、門開關(guān)環(huán)境光閾值等條件可通過設(shè)置模塊完成。環(huán)境光感應(yīng)模塊用于實(shí)時(shí)采集當(dāng)前環(huán)境光值。計(jì)時(shí)模塊可以控制門開關(guān)的時(shí)間長度,通過時(shí)間長度實(shí)現(xiàn)現(xiàn)臥室門的開合度。
2.2? 系統(tǒng)設(shè)計(jì)
圖4是系統(tǒng)結(jié)構(gòu)圖。系統(tǒng)由安卓手機(jī)、終端、電機(jī)和臥室門等硬件和實(shí)體組成。安桌手機(jī)用于環(huán)境光采集和智能控制決策。終端用于接收安卓手機(jī)的指令,控制電機(jī)正反轉(zhuǎn)和停止。電機(jī)固定于門底端,連接單個(gè)車輪,電機(jī)帶動(dòng)車輪正反轉(zhuǎn)實(shí)現(xiàn)門開關(guān)。安卓手機(jī)由環(huán)境光傳感器、設(shè)置模塊、計(jì)時(shí)模塊、藍(lán)牙模塊和SL4A組件構(gòu)成。為了達(dá)到智能控制臥室門,①用戶通過設(shè)置模塊事先設(shè)置好智能控制條件,條件包括生效時(shí)間段、門開關(guān)環(huán)境光閾值和門開關(guān)/停止指令;②應(yīng)用程序通過環(huán)境光傳感器收集當(dāng)前環(huán)境光值;③應(yīng)用程序?qū)?dāng)前環(huán)境光值、當(dāng)前時(shí)間和智能控制條件進(jìn)行比較,如果滿足用戶設(shè)置的智能控制條件就通過藍(lán)牙向終端發(fā)送開關(guān)門指令控制門的開和關(guān),否則繼續(xù)②;④應(yīng)用程序通過計(jì)時(shí)模塊開始門開關(guān)倒計(jì)時(shí),如果倒計(jì)時(shí)結(jié)束,則通過藍(lán)牙向終端發(fā)送門停止指令控制門停止。
2.3? 系統(tǒng)模塊實(shí)現(xiàn)
本文使用PHP語言開發(fā)了系統(tǒng),為便于開發(fā),本文設(shè)置了一個(gè)全局變量$android,它是一個(gè)連接SL4A服務(wù)的對(duì)象,通過該對(duì)象可以訪問SL4A的藍(lán)牙等服務(wù)。
2.3.1? 設(shè)置模塊
3? 實(shí)驗(yàn)和分析
本文在安裝有SL4A的小米公司紅米note 4x等手機(jī)測(cè)試通過。圖5是智能參數(shù)設(shè)置。從圖中可知,用戶設(shè)置了一條智能開門條件,條件由觸發(fā)時(shí)間、環(huán)境光閾值和門動(dòng)作等組成,觸發(fā)時(shí)間為凌晨02點(diǎn)30分10秒,環(huán)境光閾值是10,門動(dòng)作是開門。當(dāng)時(shí)間處于半夜2點(diǎn)半,室內(nèi)未開燈,周邊環(huán)境較暗時(shí),臥室門就會(huì)自動(dòng)打開。由于臥室與客廳大空間等連通,以及空調(diào)帶來的臥室內(nèi)外溫差,所以空氣就會(huì)流動(dòng),臥室換進(jìn)新鮮空氣。由于本文采用手機(jī)作為硬件平臺(tái),而手機(jī)通常都帶有環(huán)境光傳感器等傳感器,所以開發(fā)者無需關(guān)心環(huán)境光傳感器等硬件,只需通過SL4A接口[10]便可便捷地采集到環(huán)境光,這大大降低了開發(fā)難度。由于本文采用SL4A作為軟件平臺(tái),因此軟件開發(fā)者可以選用合適的開發(fā)語言來完成系統(tǒng),而無需使用具有較高難度的c或c++語言。本文不足的,本文方法需要手機(jī)擁有超級(jí)用戶權(quán)限,這對(duì)普通用戶是個(gè)問題。
4? 結(jié)論
文中探討了臥室門智能控制系統(tǒng)的設(shè)計(jì)和開發(fā),由于基于SL4A軟件,開發(fā)者只需借助較簡單硬件便可以構(gòu)建出系統(tǒng),開發(fā)者還可以使用PHP等多種開發(fā)語言快速開發(fā)出系統(tǒng)原型。這對(duì)降低企業(yè)的成本和提高開發(fā)進(jìn)度具有較大的意義。下一步工作是讓系統(tǒng)智能學(xué)習(xí)用戶習(xí)慣,使生活更加智能化。
參考文獻(xiàn)
王宏, 何洋等. 基于樹莓派的遠(yuǎn)程智能門控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 智能計(jì)算機(jī)與應(yīng)用, 2018, (3): 79-83.
周運(yùn)道, 周海軍等. 基于STM32的可視化智能門控系統(tǒng)設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù), 2017, (19): 140-141.
余騰偉, 童旭. 基于單片機(jī)的智能家居門控制系統(tǒng)設(shè)計(jì)[J]. 山東工業(yè)技術(shù), 2016, (19): 105.
郭艷平. 基于ARM的智能門警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息通信, 2016, 61-62.
邢益良, 雷華軍等. Android腳本應(yīng)用開發(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開發(fā)入門與實(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.
錢志鴻, 劉丹 . 藍(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.