国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

集成式低功耗智能家居系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2019-10-08 11:55喬明澤邊凱宸王世喆
軟件 2019年8期
關(guān)鍵詞:樹莓派微信小程序藍(lán)牙

喬明澤 邊凱宸 王世喆

摘 ?要: 為了降低智能家居系統(tǒng)的配置成本,并通過集成式的解決方案,嘗試緩解智能家居市場的碎片化問題,提高用戶的購買和使用體驗(yàn)。設(shè)計(jì)了一套基于Raspberry Pi平臺,利用低功耗藍(lán)牙?紅外等無線數(shù)據(jù)傳輸技術(shù)進(jìn)行輔助控制的智能家居系統(tǒng)。本平臺可以通過手機(jī)微信小程序、PC智能語音助手“Cortana”對家用電器進(jìn)行控制,實(shí)現(xiàn)了通過個人智能設(shè)備控制家用電器的目的。本套智能家居系統(tǒng)使用方便,購置成本低廉,具有較好的實(shí)用性和應(yīng)用開發(fā)前景,將有望提高智能家居在我國的普及程度,緩解智能家居市場碎片化問題,使普通用戶可以更方便的接觸、體驗(yàn)到智能家居給生活帶來的便利。

關(guān)鍵詞: 樹莓派;智能家居;藍(lán)牙;微信小程序;語音助手

中圖分類號: TP274 ? ?文獻(xiàn)標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.08.009

本文著錄格式:喬明澤,邊凱宸,王世喆,等. 集成式低功耗智能家居系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件,2019,40(8):4245

【Abstract】: In order to reduce the configuration cost of the smart home system, and through the integrated solution, try to alleviate the fragmentation problem of the smart home market and improve the user's purchase and use experience. This team designed a smart home system that based on Raspberry Pi platform, using wireless data transmission technologies such as low-power Bluetooth and infrared to assist in the control of household appliances. The platform can control household appliances through the mobile phone WeChat applet and the PC intelligent voice assistant “Cortana”, which could realize the purpose of controlling household appliances through personal smart devi?ces. This smart home system is easy to use, low in cost, good in practicality and application development prospects, and it is expected to increase the popularity of smart homes in China, alleviate the fragmentation of the smart home market, and make it easier for ordinary users to contact. Experience the convenience that smart home brings to life.

【Key words】: Raspberry Pi; Smart home; Bluetooth; WeChat applet; Voice assistant

0 ?引言

近年來,智能家居系統(tǒng)在我國已經(jīng)開始逐漸普及,物聯(lián)網(wǎng)產(chǎn)業(yè)取得了長足進(jìn)步。目前市面上常見的智能家居系統(tǒng)有基于紅外、ZigBee與藍(lán)牙的系統(tǒng)[1]。華為?小米等數(shù)碼科技巨頭及國內(nèi)各大家用電器廠商都已開始進(jìn)行一定程度的智能家居系統(tǒng)的研發(fā)。然而目前智能家居的普及率仍處在較低水平,這與智能家居系統(tǒng)的高成本?碎片化以及人們對于智能家居系統(tǒng)的了解不足都有著很大關(guān)系,同時(shí),市場上常見的智能家居系統(tǒng)在單一系統(tǒng)內(nèi)搭建物聯(lián)網(wǎng)所使用的通訊手段通常較為單一與局限。智能家居存在安裝過程復(fù)雜、維護(hù)成本過高、穩(wěn)定性差、終端設(shè)備使用不方便、用戶體驗(yàn)欠佳等問題[2-3]?;谶@種情況,項(xiàng)目小組設(shè)計(jì)了一款基于Raspberry Pi平臺,利用低功耗藍(lán)牙(Bluetooth Low Energy,BLE)、紅外等無線數(shù)據(jù)傳輸技術(shù)進(jìn)行輔助控制的智能家居系統(tǒng)。本系統(tǒng)的實(shí)現(xiàn)目標(biāo),是降低智能家居系統(tǒng)的配置成本,并通過集成式的解決方案,嘗試緩解智能家居市場的碎片化問題,提高用戶的購買和使用體驗(yàn)。

1 ?樹莓派中控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

1.1 ?關(guān)于中控硬件的選擇

(1)初版硬件選擇為Arduino開發(fā)板,搭配HC-05藍(lán)牙擴(kuò)展芯片控制硬件,但是由于HC-05藍(lán)牙芯片與Arduino開發(fā)板之間連接困難?開發(fā)板處理能力低下等問題,放棄了Arduino開發(fā)板。

(2)在之后的開發(fā)實(shí)驗(yàn)中采用了Raspberry Pi與HC-05藍(lán)牙芯片搭配的開發(fā)方式。Raspberry Pi是一款基于Linux的單片機(jī)計(jì)算機(jī)。它由英國的樹莓派基金會所開發(fā),目的是以低價(jià)硬件及自由軟件促進(jìn)學(xué)校的基本計(jì)算機(jī)科學(xué)教育。樹莓派配備一枚博通出產(chǎn)的ARM架構(gòu)700 MHz BCM2835處理器,256 MB內(nèi)存(B型已升級到512 MB內(nèi)存),使用SD卡當(dāng)作存儲媒體,且擁有一個Ethernet?兩個USB接口?以及HDMI(支持聲音輸出)和RCA端子輸出支持[4]。(于2016年2月發(fā)布的第三代樹莓派已經(jīng)集成了WiFi和藍(lán)牙模塊,處理器也升級為博通BCM2837。項(xiàng)目組使用的為樹莓派一代版本,并未配備藍(lán)牙模塊,故而外接了一枚HC-05藍(lán)牙芯片。)

1.2 ?關(guān)于程序語言的選擇

(1)在使用Arduino開發(fā)板時(shí),使用的是Arduino語言,其基于C/C++。

(2)在改用Raspberry Pi之后,曾采用C語言結(jié)合wiringPi。但是由于接口使用相對復(fù)雜,最后放棄了該方案。

(3)最終版采用了Python語言,由于Python語言是一種高層次的解釋型語言,所以語言的可讀性很強(qiáng)。在編寫程序的時(shí)候可以引用的庫比較多,所以代碼量比較小,有助于中控程序的編寫?豐富與優(yōu)化。

1.3 ?設(shè)計(jì)思路

(1)采用樹莓派與HC-05芯片進(jìn)行串口連接,在用戶使用手機(jī)時(shí),可以通過接收用戶發(fā)過來的串口指令的方式進(jìn)行控制。在實(shí)驗(yàn)的過程中,設(shè)備連接與控制正常。

(2)由于Raspberry Pi上面擁有40Pin的引腳,并且有線連接的安全性比較高,所以采用引腳對硬件進(jìn)行直接控制的方式比較穩(wěn)妥。在此思路基礎(chǔ)上,我們團(tuán)隊(duì)決定使用引腳對硬件進(jìn)行控制。

(3)調(diào)查市面上的用電器基本情況后,我們發(fā)現(xiàn)可以將市面上的用電器大體分為兩類,分別是雙狀態(tài)電器(只有開和關(guān)兩狀態(tài)的用電器)和多狀態(tài)電器(例如風(fēng)扇有多個擋位),在進(jìn)行更深度調(diào)查后,我們發(fā)現(xiàn)雙狀態(tài)用電器可以采用供電控制的方式進(jìn)行控制。例如電燈只需要控制其是否供電,就可以對其進(jìn)行完全控制。而多狀態(tài)電器大多可以采用紅外對其遙控,所以可以采用樹莓派+紅外二極管的方式對信號進(jìn)行模擬。以上思路可以控制家庭內(nèi)大多數(shù)用電器。

(4)編程采用Python語言,腳本在樹莓派開機(jī)后自動執(zhí)行,等待藍(lán)牙設(shè)備的信號傳入。如果傳入信號,根據(jù)傳入的狀態(tài)碼自動運(yùn)行對應(yīng)的程序功能塊。

2 ?手機(jī)端交互程序設(shè)計(jì)與實(shí)現(xiàn)

藍(lán)牙(Bluetooth),一種無線技術(shù)標(biāo)準(zhǔn), 使用2.4—2.485 GHz的ISM波段的UHF無線電波,可實(shí)現(xiàn)固定設(shè)備?移動設(shè)備之間的短距離數(shù)據(jù)交換。藍(lán)牙技術(shù)最初由電信巨頭愛立信公司于1994年創(chuàng)制,當(dāng)時(shí)是作為RS232數(shù)據(jù)線的替代方案。藍(lán)牙可連接多個設(shè)備,克服了數(shù)據(jù)同步的難題。藍(lán)牙模塊是利用無線藍(lán)牙技術(shù)進(jìn)行藍(lán)牙傳輸?shù)囊环N模塊,藍(lán)牙模塊對外聯(lián)絡(luò)網(wǎng)絡(luò)環(huán)境,對內(nèi)聯(lián)絡(luò)單片機(jī),在智能家居系統(tǒng)中起到非常重要的銜接作用。

2.1 ?工作原理

本模塊旨在實(shí)現(xiàn):手機(jī)連接藍(lán)牙發(fā)送指令,藍(lán)牙模塊接收到指令,開啟適配器,進(jìn)行設(shè)備連接。最后,藍(lán)牙模塊將指令發(fā)送給單片機(jī)接口,完成無線傳輸。

在智能家居系統(tǒng)中采用BLE(低功耗藍(lán)牙)通訊技術(shù)具有以下優(yōu)勢:

(1)功耗低且傳輸速率較快

藍(lán)牙的短數(shù)據(jù)封包特性是其低功耗技術(shù)特點(diǎn)的根本,傳輸速度大概每秒195-215 KB左右,最高24 Mbps,也就是每秒3 MB。而功耗主要由傳輸速率和距離來決定,低功耗藍(lán)牙一開始是藍(lán)牙4.0核心規(guī)格的一部分,專門在低功耗?低帶寬?低成本與低復(fù)雜性方面做了優(yōu)化。

(2)建立連接時(shí)間短

藍(lán)牙用應(yīng)用程序打開到建立連接只需要短短的3 ms,同時(shí)能以數(shù)毫秒的傳輸速度完成經(jīng)認(rèn)可的數(shù)據(jù)傳遞后并立即關(guān)閉連接。

(3)兼容性較強(qiáng)

藍(lán)牙的普及性廣,也是基于其兼容性較強(qiáng),幾乎能夠兼容所有數(shù)碼設(shè)備,讓各種數(shù)碼設(shè)備之間能夠無線溝通。

同時(shí),選用藍(lán)牙做智能家居系統(tǒng)的無線連接技術(shù)也有幾點(diǎn)缺陷待改進(jìn),如:有一定傳輸距離的約束?藍(lán)牙的安全性不容易保證?穩(wěn)定性也有待加強(qiáng)。在本實(shí)驗(yàn)中,針對藍(lán)牙模塊,我們采用了微信小程序開發(fā)方式,調(diào)用微信官方的藍(lán)牙API文檔,使用微信小程序?qū)λ{(lán)牙進(jìn)行操作。

2.2 ?程序設(shè)計(jì)

2.2.1 ?藍(lán)牙建立連接過程梳理

首先,開啟藍(lán)牙適配,獲取藍(lán)牙適配器狀態(tài),判斷設(shè)備藍(lán)牙是否可用。判斷藍(lán)牙適配器可用時(shí)開啟掃描藍(lán)牙設(shè)備和開啟獲取已連接的藍(lán)牙設(shè)備。如果開啟掃描藍(lán)牙設(shè)備失敗,自動再次開啟掃描。開啟掃描藍(lán)牙設(shè)備成功后開啟監(jiān)聽已掃描的設(shè)備。開始連接設(shè)備,獲取已連接藍(lán)牙設(shè)備ID及name。開始連接某設(shè)備時(shí)停止掃描設(shè)備,停止循環(huán)獲取已連接設(shè)備。連接成功后停止掃描設(shè)備,停止循環(huán)獲取已連接設(shè)備。

2.2.2 ?關(guān)鍵步驟說明

Step1. 調(diào)用wx.openBluetoothAdapter(),初始化小程序藍(lán)牙模塊,生效周期為調(diào)用wx.openBlue?too-thAdapter至調(diào)用wx.closeBluetoothAdapter或小程序被銷毀為止。

Step2. 開啟藍(lán)牙適配,判斷藍(lán)牙是否可用wx.openBluetoothAdapter(OBJECT);

Step3. 調(diào)用wx.onBluetoothAdapterState?Chan?ge()監(jiān)聽藍(lán)牙適配器狀態(tài)變化事件;

Step4. 調(diào)用wx.onBluetoothDeviceFound()監(jiān)聽尋找到新設(shè)備的事件,在log文件中記錄下來設(shè)備ID和name。若初始適配器失敗,給出提示,“檢測手機(jī)藍(lán)牙是否打開”;

Step5. 調(diào)用wx.closeBluetoothAdapter()關(guān)閉藍(lán)牙模塊,使其進(jìn)入未初始化狀態(tài)。調(diào)用該方法將斷開所有已建立的鏈接并釋放系統(tǒng)資源。在使用小程序藍(lán)牙流程后調(diào)用,與wx.openBluetoothAdapter()成對調(diào)用;

Step6. 調(diào)用wx.startBluetoothDevicesDiscovery()開始搜尋附近的藍(lán)牙外圍設(shè)備。此操作比較耗費(fèi)系統(tǒng)資源,在搜索并連接到設(shè)備后需要立即調(diào)用 stop 方法停止搜索。即調(diào)用方法wx.stopBluetooth?Devi?ces-Discovery()停止搜尋附近的藍(lán)牙外圍設(shè)備。若已經(jīng)找到需要的藍(lán)牙設(shè)備并不需要繼續(xù)搜索時(shí),調(diào)用該接口停止藍(lán)牙搜索;

猜你喜歡
樹莓派微信小程序藍(lán)牙
藍(lán)牙音箱的直線之美
簡單、易用,可玩性強(qiáng)Q AcousticsBT3藍(lán)牙音箱
適合自己的才是最好的 德生(TECSUN) BT-50藍(lán)牙耳機(jī)放大器
當(dāng)圖書館遇上微信小程序
緊急:藍(lán)牙指尖陀螺自燃!安全隱患頻出
智能安全防盜探測小車
基于嵌入式技術(shù)的農(nóng)村醫(yī)療系統(tǒng)設(shè)計(jì)
信阳市| 万山特区| 天等县| 横峰县| 综艺| 洛隆县| 鲁山县| 四平市| 灵川县| 克东县| 慈利县| 中宁县| 安徽省| 得荣县| 吴旗县| 土默特右旗| 吴堡县| 莫力| 长海县| 建湖县| 泗阳县| 新民市| 综艺| 托里县| 高陵县| 舞钢市| 黄浦区| 昌吉市| 嘉鱼县| 武乡县| 舞阳县| 共和县| 惠东县| 莎车县| 怀化市| 呼伦贝尔市| 庆城县| 临潭县| 曲水县| 尼木县| 米易县|