基于華為云物聯(lián)網(wǎng)平臺(tái)的部分智能家居系統(tǒng)實(shí)現(xiàn)_第1頁
基于華為云物聯(lián)網(wǎng)平臺(tái)的部分智能家居系統(tǒng)實(shí)現(xiàn)_第2頁
基于華為云物聯(lián)網(wǎng)平臺(tái)的部分智能家居系統(tǒng)實(shí)現(xiàn)_第3頁
基于華為云物聯(lián)網(wǎng)平臺(tái)的部分智能家居系統(tǒng)實(shí)現(xiàn)_第4頁
基于華為云物聯(lián)網(wǎng)平臺(tái)的部分智能家居系統(tǒng)實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于華為云物聯(lián)網(wǎng)平臺(tái)的部分智能家居系統(tǒng)實(shí)現(xiàn)物聯(lián)網(wǎng)應(yīng)用案例3.1背景與需求分析3.2功能設(shè)計(jì)3.3系統(tǒng)實(shí)現(xiàn)3.4總結(jié)與展望目錄隨著物聯(lián)網(wǎng)技術(shù)的逐漸強(qiáng)大和不斷發(fā)展,智能家居在日常生活中的應(yīng)用也日漸廣泛。作為物聯(lián)化的重要體現(xiàn),智能家居系統(tǒng)通過各種網(wǎng)絡(luò)方式的交互和控制,將家中的一系列設(shè)備聯(lián)系在一起,使用戶能夠通過終端輕易地對(duì)家中的各類環(huán)境因素或各種設(shè)備的工作狀態(tài)進(jìn)行實(shí)時(shí)的監(jiān)視、探測(cè)或控制。這種科技性與人性化的結(jié)合,適應(yīng)了現(xiàn)代社會(huì)發(fā)展的需要,為人們的生活和工作創(chuàng)造了舒適的體驗(yàn),提供了很大的便利。智能門禁作為智能家居系統(tǒng)中非常重要的幾個(gè)部分之一,對(duì)人們居住環(huán)境的安全性和出入的便利性有著重要意義。而智能燈控對(duì)于智能家居系統(tǒng)來說,更是不可或缺的一個(gè)部分。本案例將不僅實(shí)現(xiàn)單獨(dú)的門禁系統(tǒng)與燈控系統(tǒng),也將兩者通過云端進(jìn)行互聯(lián),使得用戶在開門后可以繼續(xù)享受燈控系統(tǒng)的服務(wù)。通過不同系統(tǒng)的交叉控制,人們不僅可以享受單獨(dú)的服務(wù)體驗(yàn),也可以感受到更加人性化的服務(wù),這是創(chuàng)造生活方式多樣性與便利性的重要體現(xiàn)。3.1.1案例背景傳統(tǒng)門禁一般僅僅采用鑰匙來解鎖,當(dāng)鑰匙遺失時(shí),如何開門就會(huì)變成一個(gè)很大的問題,同時(shí),傳統(tǒng)門禁缺乏對(duì)門鎖狀態(tài)的監(jiān)控,安全程度較低,常常會(huì)發(fā)生門被撬導(dǎo)致家中失竊等不安全事件。而基于物聯(lián)網(wǎng)的智能門禁系統(tǒng)則可以解決這個(gè)問題。通過手機(jī)微信登錄小程序之后,用戶即可用程序?qū)﹂T鎖的開關(guān)進(jìn)行控制,即便自身手機(jī)遺失,也可通過同伴的手機(jī)進(jìn)行登錄控制。同時(shí),由于可以進(jìn)行遠(yuǎn)程解鎖,也可讓家人遠(yuǎn)程幫我們解鎖或者我們遠(yuǎn)程幫家人解鎖。此外,由于可以實(shí)時(shí)監(jiān)測(cè)門鎖的狀態(tài),門禁的安全性將大大提高,一旦發(fā)現(xiàn)有非法開門等情況發(fā)生,即可快速采取報(bào)警的措施,以減小損失。因此,智能門禁對(duì)傳統(tǒng)門禁的替代可以說是趨勢(shì)所在。3.1.2需求分析而對(duì)于燈光,現(xiàn)階段人們?cè)诩依镞M(jìn)行的活動(dòng)越來越多樣,不同的生活場景對(duì)燈光效果,尤其是亮度等有著不同的要求,傳統(tǒng)裝修方案中單一的燈光布局已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)代家庭生活的需求。當(dāng)然,也有一些新興的裝修策略來滿足這一需求,如在客廳四周安裝多個(gè)射燈,以燈陣來滿足照明需求,或者在臥室弱化頂燈,強(qiáng)化床頭閱讀燈的布局設(shè)計(jì)等。這些雖然在一定程度上滿足了用戶根據(jù)生活場景不同來選擇不同的照明效果的需求,但是裝修初期布線吊頂較為復(fù)雜,且需要多個(gè)開關(guān)單獨(dú)控制才能滿足這種需求。因此,智能燈光系統(tǒng)的運(yùn)用可謂勢(shì)在必行。所有燈光的控制用手機(jī)集中完成,并且小程序內(nèi)自帶的燈光數(shù)據(jù)分析與推薦模式,可以自動(dòng)為用戶匹配個(gè)性化的燈光照明方案,從而免去調(diào)節(jié)燈光的麻煩。在進(jìn)行家居裝修時(shí),只需留有集成控制面板而不需要大量開關(guān),就可以在為人們的生活帶來便利的同時(shí),也用科技提升了人們的生活質(zhì)量。3.1.2需求分析本案例是一個(gè)針對(duì)家居生活智能化及網(wǎng)絡(luò)化優(yōu)化的設(shè)計(jì)方案,方案針對(duì)的群體是現(xiàn)代化社會(huì)中追求高品質(zhì)、人性化、個(gè)性化生活的家庭,希望能夠通過向運(yùn)營者推廣我們的方案來支持案例的開發(fā)與運(yùn)營。本案例以物聯(lián)網(wǎng)傳輸技術(shù)為基礎(chǔ),以華為云物聯(lián)網(wǎng)平臺(tái)作為技術(shù)骨架,以期通過對(duì)于傳統(tǒng)門禁和燈光系統(tǒng)的物聯(lián)化改造,在實(shí)現(xiàn)智能門禁和智能燈控的同時(shí)做到兩者的互聯(lián)。門禁系統(tǒng)采用手機(jī)控制,安全性由手機(jī)的安全性來保證;燈控系統(tǒng)可以實(shí)現(xiàn)燈光亮滅、亮度、色溫等調(diào)節(jié),以適應(yīng)不同場景的需要。同時(shí)門禁和燈控系統(tǒng)的互聯(lián)可以做到用戶開門后,燈光自動(dòng)調(diào)節(jié)到用戶習(xí)慣使用的效果。本案例基于智能家居設(shè)備互聯(lián),構(gòu)建一個(gè)移動(dòng)客戶端,讓用戶可以通過手機(jī)實(shí)現(xiàn)一體化控制,也可以通過網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控家居情況和操控家居設(shè)備。本案例的目標(biāo)成果展現(xiàn)形式是改造后的門禁和燈光設(shè)備,以及后臺(tái)運(yùn)營平臺(tái)和移動(dòng)客戶端實(shí)例,基本功能包括用戶的智能解門禁,燈光調(diào)控和門禁、燈光互聯(lián)等。3.1.3案例內(nèi)容本案例的開發(fā)工具包括:微信Web開發(fā)者工具、PyCharm、華為云物聯(lián)網(wǎng)平臺(tái)。本案例的運(yùn)行環(huán)境:Windows10,64-bit。3.1.4軟件開發(fā)環(huán)境本案例中涉及以下專業(yè)名詞的縮略語。3.1.5名詞解釋1324

NB-IoT:NarrowBandInternetofThings窄帶物聯(lián)網(wǎng)。API:ApplicationProgrammingInterface應(yīng)用程序編程接口。RFID:RadioFrequencyIdentification無線射頻識(shí)別技術(shù)。IoT:InternetofThings物聯(lián)網(wǎng)。3.2.1系統(tǒng)架構(gòu)NB-IoT正在全球飛速發(fā)展,華為作為行業(yè)領(lǐng)先者,率先發(fā)布了商用芯片和網(wǎng)絡(luò)版本,并已經(jīng)在全球建成了超過30萬張NB-IoT的商用網(wǎng)絡(luò),擁有比較成熟的技術(shù),因此,我們選擇采用華為“1+2+1”的物聯(lián)網(wǎng)解決方案,南向設(shè)備為以單片機(jī)為核心的智能門鎖、智能燈光及NB-IoT模組組成的系統(tǒng),北向應(yīng)用為當(dāng)前比較流行的微信小程序,并通過華為云物聯(lián)網(wǎng)云平臺(tái),實(shí)現(xiàn)南北向數(shù)據(jù)互通互聯(lián),以實(shí)現(xiàn)整個(gè)智能家居中的智能門鎖與燈光的功能。窄帶物聯(lián)網(wǎng)(NB-IoT)是萬物互聯(lián)網(wǎng)絡(luò)的一個(gè)重要分支。NB-IoT構(gòu)建于蜂窩網(wǎng)絡(luò),只消耗大約180kHz的帶寬,可直接部署于GSM網(wǎng)絡(luò)、UMTS網(wǎng)絡(luò)或LTE網(wǎng)絡(luò),以降低部署成本、實(shí)現(xiàn)平滑升級(jí)。NB-IoT是物聯(lián)網(wǎng)領(lǐng)域一個(gè)新興的技術(shù),支持低功耗設(shè)備在廣域網(wǎng)的蜂窩數(shù)據(jù)連接,也被叫作低功耗廣域網(wǎng)(LPWAN)。NB-IoT支持待機(jī)時(shí)間長、對(duì)網(wǎng)絡(luò)連接要求較高的設(shè)備的高效連接。據(jù)估測(cè)NB-IoT設(shè)備電池壽命可以提高至少10年,同時(shí)NB-IoT還能提供非常全面的室內(nèi)蜂窩數(shù)據(jù)連接覆蓋。解決方案01OPTION3.2.1系統(tǒng)架構(gòu)技術(shù)實(shí)現(xiàn)02OPTION本案例采用華為的“1+2+1”物聯(lián)網(wǎng)解決方案,如圖3-1所示。南向設(shè)備由單片機(jī)加上電磁門鎖、程控陣列燈光、溫度傳感器及濕度傳感器,加上NB-IoT模組構(gòu)成。其中,電磁門鎖、程控陣列燈光的狀態(tài)實(shí)時(shí)受到單片機(jī)的檢測(cè)與控制,溫、濕度傳感器可以監(jiān)測(cè)當(dāng)前房屋內(nèi)的溫、濕度情況。而NB-IoT模組則用于與基站連接,從而向華為云物聯(lián)網(wǎng)平臺(tái)上報(bào)數(shù)據(jù),或者接收平臺(tái)下發(fā)的命令。北向應(yīng)用使用微信Web開發(fā)者工具實(shí)現(xiàn)小程序的開發(fā),結(jié)合騰訊云平臺(tái)進(jìn)行開發(fā)者服務(wù)器和環(huán)境依賴部署,申請(qǐng)新浪云服務(wù)器作為華為云物聯(lián)網(wǎng)平臺(tái)調(diào)用的代理服務(wù)器。而華為云物聯(lián)網(wǎng)平臺(tái)則充當(dāng)中間連接的作用,將南向設(shè)備上報(bào)的數(shù)據(jù)儲(chǔ)存起來,并為北向應(yīng)用提供API來調(diào)用和使用;同時(shí)將北向應(yīng)用下發(fā)的命令儲(chǔ)存起來,然后適時(shí)地發(fā)送給南向設(shè)備。圖3-1華為“1+2+1”物聯(lián)網(wǎng)解決方案3.2.2硬件架構(gòu)(南向)2.BC95模組BC95模組是一款高性能、低功耗的NB-IoT無線通信模塊。其尺寸僅為23.6mm×19.9mm×2.2mm,能最大限度地滿足終端設(shè)備對(duì)小尺寸模塊產(chǎn)品的需求,有效幫助客戶減小產(chǎn)品尺寸,并降低產(chǎn)品成本。BC95模組在設(shè)計(jì)上兼容移遠(yuǎn)通信GSM/GPRS系列的M35模塊,方便客戶快速、靈活地進(jìn)行產(chǎn)品設(shè)計(jì)和升級(jí)。

1.NB476開發(fā)板本案例選用了NB476開發(fā)板作為核心硬件。NB476開發(fā)板是基于ST(意法半導(dǎo)體)低功耗系列STM32L476RGT6微控制器、物聯(lián)網(wǎng)模塊NB-IoT、華為LiteOS操作系統(tǒng)設(shè)計(jì)的開發(fā)板,包含多種傳感器等外設(shè)資源。3.2.2硬件架構(gòu)(南向)電磁門鎖03OPTION本案例使用電磁門鎖來控制門的開啟與關(guān)閉。通過給電磁門鎖提供12V的直流電讓裝置內(nèi)的繼電器工作,實(shí)現(xiàn)門的開閉,從而實(shí)現(xiàn)門禁功能。電磁門鎖如圖3-2所示。DC-DC升壓模塊04OPTION我們擬用單片機(jī)IO口的輸出來控制鎖的開關(guān),但單片機(jī)IO口輸出電壓只有3V,因此我們使用DC-DC升壓模塊,如圖3-3所示,將單片機(jī)3V輸出電壓轉(zhuǎn)換至12V,用以控制上述電磁門鎖的通斷。圖3-3DC-DC升壓模塊圖3-2電磁門鎖3.2.2硬件架構(gòu)(南向)WS2812B彩燈模塊05OPTION我們使用WS2812B彩燈模塊來模擬一個(gè)可以改變色調(diào)與亮度的吊燈。WS2812B彩燈模塊是一個(gè)集控制電路與發(fā)光電路于一體的智能外控LED光源,如圖3-4所示。其結(jié)構(gòu)與5050LED燈珠相同,每個(gè)元件即為一個(gè)像素點(diǎn)。像素點(diǎn)內(nèi)部包含了智能數(shù)字接口數(shù)據(jù)鎖存信號(hào)整形放大驅(qū)動(dòng)電路,還包含高精度的內(nèi)部振蕩器和12V高壓可編程控制電流模塊,有效保證了像素點(diǎn)光的顏色高度一致。圖3-4WS2812B彩燈模塊3.2.3管理平臺(tái)(華為云物聯(lián)網(wǎng)平臺(tái))Profile文件01OPTION開發(fā)者使用華為云物聯(lián)網(wǎng)平臺(tái)集成設(shè)備時(shí),需要準(zhǔn)備此設(shè)備的能力描述文件,即設(shè)備的Profile文件。設(shè)備的Profile文件是用來描述一款設(shè)備“是什么”“能做什么”及“應(yīng)該如何控制”的文件。該文件會(huì)被上傳到華為云物聯(lián)網(wǎng)平臺(tái)。對(duì)設(shè)備類型、服務(wù)類型、服務(wù)標(biāo)識(shí),我們要采用首字母大寫的命名法,如MultiSensor、Switch;參數(shù)使用首字母小寫、其余單詞首字母大寫的駝峰式命名法。Profile文件打包結(jié)構(gòu)如圖3-5所示。圖3-5Profile文件打包結(jié)構(gòu)3.2.3管理平臺(tái)(華為云物聯(lián)網(wǎng)平臺(tái))編解碼插件02OPTION編解碼插件用來將上報(bào)數(shù)據(jù)(16進(jìn)制數(shù)據(jù))解碼為json格式供服務(wù)器(Appserver)“閱讀”,將下行命令(json格式)編碼為16進(jìn)制格式供南向設(shè)備(UE)“理解執(zhí)行”。華為的編解碼插件的整體方案如圖3-6所示。通過上報(bào)編碼、下發(fā)解碼的運(yùn)算操作進(jìn)行數(shù)據(jù)傳輸。圖3-6華為的編解碼插件整體方案3.2.3管理平臺(tái)(華為云物聯(lián)網(wǎng)平臺(tái))如圖3-7所示,(a)為編解碼插件的上行消息處理流程,(b)為編解碼插件的下行消息處理流程。圖3-7編解碼插件的上下行消息處理流程(續(xù))(a)上行消息處理流程(b)下行消息處理流程3.2.4移動(dòng)客戶端(北向)為實(shí)現(xiàn)物聯(lián)網(wǎng)開發(fā)“輕量型”的目的,北向應(yīng)用選擇微信小程序而不是普通的移動(dòng)端App,這樣既可以避免用戶在手機(jī)上下載過多應(yīng)用,又可以實(shí)現(xiàn)與華為云物聯(lián)網(wǎng)平臺(tái)的通信;同時(shí),微信小程序自身封裝了很多API和SDK接口,在滿足開發(fā)便捷性的同時(shí),又能夠進(jìn)行規(guī)范、完整的信息傳遞。微信小程序到華為云物聯(lián)網(wǎng)平臺(tái)之間的數(shù)據(jù)傳遞如圖3-8所示。微信小程序新浪云服務(wù)器華為OC平臺(tái)圖3-8微信小程序到華為云物聯(lián)網(wǎng)平臺(tái)之間的數(shù)據(jù)傳遞3.2.4移動(dòng)客戶端(北向)在數(shù)據(jù)傳輸過程中,各平臺(tái)和服務(wù)器主要涉及的工作如下。(1)微信小程序北向應(yīng)用,是用戶主要操作界面,實(shí)現(xiàn)數(shù)據(jù)讀取和命令下發(fā)。(2)開發(fā)者服務(wù)器存儲(chǔ)用戶信息。(3)新浪云服務(wù)器代理服務(wù)器,是非備案域名與備案域名、HTTPS與HTTP協(xié)議間的橋梁,是前端與后端間的橋梁,實(shí)現(xiàn)Python文件調(diào)用。3.3.1感知層(LiteOS)LiteOS操作系統(tǒng)01OPTIONLiteOS是華為面向物聯(lián)網(wǎng)領(lǐng)域構(gòu)建的“統(tǒng)一物聯(lián)網(wǎng)操作系統(tǒng)和中間件”的軟件平臺(tái),是以輕量級(jí)(內(nèi)核小于10KB)、低功耗(1節(jié)5號(hào)電池最多可以工作5年)、快速啟動(dòng)、互聯(lián)互通、安全等關(guān)鍵能力,為開發(fā)者提供“一站式”服務(wù)的完整軟件平臺(tái)。LiteOS能有效降低開發(fā)門檻,縮短開發(fā)周期。LiteOS目前主要應(yīng)用于智能家居、可穿戴式設(shè)備、車聯(lián)網(wǎng)、智能抄表、工業(yè)互聯(lián)網(wǎng)等物聯(lián)網(wǎng)領(lǐng)域的智能硬件上。LiteOS操作系統(tǒng)基礎(chǔ)內(nèi)核框圖如圖3-9所示。圖3-9LiteOS操作系統(tǒng)基礎(chǔ)內(nèi)核框圖3.3.1感知層(LiteOS)功能實(shí)現(xiàn)02OPTION(1)溫濕度檢測(cè)。利用NB476板載的溫濕度傳感器DHT11,我們可以實(shí)現(xiàn)當(dāng)前環(huán)境下溫濕度的檢測(cè)。DHT11是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,使用單線制串行接口進(jìn)行通信。通過單片機(jī)的GPIO口進(jìn)行通信模擬,可實(shí)現(xiàn)MCU和DHT11之間的數(shù)據(jù)傳輸,從而得到當(dāng)前環(huán)境下的溫濕度數(shù)據(jù)。圖3-10為DHT11與單片機(jī)的接線圖。圖3-10DHT11與單片機(jī)的接線圖3.3.1感知層(LiteOS)(2)電磁門鎖通斷切換。首先配置單片機(jī)的GPIO口。我們使用某一個(gè)數(shù)字端口,通過邏輯程序控制引腳輸出0V或3V的高低電平。然后通過升壓模塊,將高電平提升至12V,從而控制門鎖的通斷,如圖3-11所示。圖3-10DHT11與單片機(jī)的接線圖(3)彩燈色調(diào)與亮度改變。WS2812B彩燈模塊采用單線歸零碼進(jìn)行通信,相同周期、不同時(shí)間的高低電平分別表示為“1”和“0”,如圖3-12所示。3-12WS2812B采用的單線歸零碼通信方式3.3.1感知層(LiteOS)通過設(shè)置并發(fā)送不同的串行數(shù)據(jù)給WS2812B彩燈模塊,我們可以利用單片機(jī)實(shí)現(xiàn)對(duì)彩燈模塊的色調(diào)和亮度的控制。彩燈色調(diào)與亮度展示圖如圖3-13所示,左、右圖分別為中亮度紅色和白色的彩燈樣式。圖3-13彩燈色調(diào)與亮度展示圖3.3.1感知層(LiteOS)開發(fā)板程序模塊03OPTION本案例硬件開發(fā)代碼主要有以下幾個(gè)部分。040103UART1串口函數(shù)。NB-IoT通信函數(shù)。門鎖與燈光控制函數(shù)。02DTH11溫濕度采集函數(shù)。3.3.2控制層(華為云物聯(lián)網(wǎng)平臺(tái))Profile文件開發(fā)01OPTION華為云物聯(lián)網(wǎng)平臺(tái)為用戶提供了圖形化操作編寫Profile文件的服務(wù),使得整個(gè)煩瑣的開發(fā)過程變得非常簡單明了。圖3-14所示為華為云物聯(lián)網(wǎng)平臺(tái)上的在線Profile開發(fā),也是本案例在華為云物聯(lián)網(wǎng)平臺(tái)上定義的Profile格式。圖3-14華為云物聯(lián)網(wǎng)平臺(tái)上的在線Profile開發(fā)3.3.2控制層(華為云物聯(lián)網(wǎng)平臺(tái))編解碼插件開發(fā)02OPTION同樣地,華為為了簡化開發(fā)編解碼插件的煩瑣過程,為開發(fā)者提供了圖形化操作流程。圖3-15所示為華為云物聯(lián)網(wǎng)平臺(tái)上的編解碼插件開發(fā)展示圖。圖3-15華為云物聯(lián)網(wǎng)平臺(tái)上的編解碼插件開發(fā)3.3.2控制層(華為云物聯(lián)網(wǎng)平臺(tái))Profile文件與編解碼插件測(cè)試03OPTION在華為云物聯(lián)網(wǎng)平臺(tái)上完成Profile文件與編解碼插件的開發(fā)工作之后,即可對(duì)其進(jìn)行測(cè)試。首先需要在華為云物聯(lián)網(wǎng)平臺(tái)上注冊(cè)設(shè)備。選用剛定義好的Profile文件,并填入設(shè)備名稱與設(shè)備唯一標(biāo)識(shí)號(hào),即可完成設(shè)備注冊(cè)。如圖3-16所示,剛注冊(cè)好的設(shè)備還處于離線狀態(tài),需要我們將南向設(shè)備與其綁定方可激活。激活后的設(shè)備如圖3-17所示。圖3-16華為云物聯(lián)網(wǎng)平臺(tái)上剛注冊(cè)好的設(shè)備圖3-17激活后的設(shè)備3.3.2控制層(華為云物聯(lián)網(wǎng)平臺(tái))通過串口工具,用NB-IoT模組向平臺(tái)發(fā)送數(shù)據(jù),可以看到,在該設(shè)備的歷史數(shù)據(jù)中,出現(xiàn)了我們上報(bào)的數(shù)據(jù),如圖3-18所示。同時(shí),使用平臺(tái)中的命令下發(fā)功能,分別下發(fā)我們?cè)赑rofile文件中定義的兩個(gè)命令,如圖3-19所示,此時(shí)命令處于等待下發(fā)狀態(tài),而并沒有馬上下發(fā)。這是由于NB-IoT設(shè)備為了節(jié)省功耗,一般情況下都處于休眠狀態(tài),因此平臺(tái)只有在NB-IoT設(shè)備上報(bào)數(shù)據(jù)時(shí),才真正將命令下發(fā)至南向設(shè)備。圖3-18上報(bào)數(shù)據(jù)解碼后的顯示圖3-19上報(bào)數(shù)據(jù)前下發(fā)命令的顯示3.3.2控制層(華為云物聯(lián)網(wǎng)平臺(tái))如圖3-20所示,在上報(bào)數(shù)據(jù)之后,命令的狀態(tài)變成了“已送達(dá)”。經(jīng)過測(cè)試可以看到,Profile文件與編解碼插件已經(jīng)可以正常使用,既可以接收南向設(shè)備上報(bào)的數(shù)據(jù),供北向應(yīng)用調(diào)用,也可以接收北向應(yīng)用下發(fā)的命令,并將其下發(fā)至南向設(shè)備中。圖3-20上報(bào)數(shù)據(jù)后下發(fā)命令的顯示3.3.3軟件開發(fā)技術(shù)(北向)微信小程序開發(fā)01OPTION小程序代碼結(jié)構(gòu)如圖3-21所示。由上述代碼結(jié)構(gòu)可知,小程序的代碼主要包括:客戶端client,服務(wù)器端server和相應(yīng)的配置文件。其中,客戶端pages文件夾內(nèi)主要定義了小程序兩個(gè)主要工作界面的信息;promise文件夾為引入的第三方庫;utils文件夾內(nèi)定義了util.js文件,包含部分全局變量;vendor文件夾內(nèi)包含小程序事先封裝好的SDK。服務(wù)器端controllers文件夾內(nèi)包含開發(fā)者服務(wù)器的路由和存儲(chǔ)數(shù)據(jù),middlewares文件夾內(nèi)定義了KOA方法,routes文件夾內(nèi)包含路由器信息index.js,tools文件夾內(nèi)包含基于Knex的數(shù)據(jù)庫接口。圖3-21小程序代碼結(jié)構(gòu)3.3.3軟件開發(fā)技術(shù)(北向)服務(wù)器端開發(fā)02OPTION(1)開發(fā)者服務(wù)器。(2)新浪云服務(wù)器。開發(fā)者服務(wù)器主要進(jìn)行的是數(shù)據(jù)的讀取和上報(bào),主要涉及的方法為GET和PUT,基于小程序自身快速添加CGI的代碼介紹對(duì)服務(wù)器進(jìn)行本地編寫即可完成。開發(fā)者服務(wù)器的域名可以自行申請(qǐng)?jiān)O(shè)置。由于小程序?qū)Πl(fā)出HTTPS請(qǐng)求的域名有備案要求,所以我們?cè)趯?shí)現(xiàn)的過程中申請(qǐng)了新浪云服務(wù)器作為代理服務(wù)器,新浪云服務(wù)器申請(qǐng)到的域名為二級(jí)域名,其一級(jí)域名均已備案,所以能夠?qū)π〕绦虻恼?qǐng)求做出響應(yīng)。新浪云中部署的代碼基于php5.6環(huán)境,主要涉及的方法為GET。新浪云服務(wù)器可以自行申請(qǐng)?jiān)O(shè)置。(3)新浪云服務(wù)器后端代碼。后端代碼由Python實(shí)現(xiàn),在與華為云物聯(lián)網(wǎng)平臺(tái)的數(shù)據(jù)交互中所涉及的鑒權(quán)、數(shù)據(jù)獲取和命令下發(fā)均基于此來實(shí)現(xiàn),主要涉及的方法為GET和POST。3.3.3軟件開發(fā)技術(shù)(北向)北向應(yīng)用技術(shù)難點(diǎn)03OPTION(1)wx.request()不支持同步。小程序?yàn)榱吮苊獯a運(yùn)行過程中的阻塞問題,在wx.request()函數(shù)中取消了同步變量的設(shè)置,同時(shí)在1.3.0版本之后取消了內(nèi)部封裝的Promise方法,所以需要自己引入Promise庫來將request函數(shù)得到的結(jié)果返回到已經(jīng)定義的用于接收的變量中。(2)騰訊提供的Demo版本不一致。騰訊雖然提供了詳細(xì)的Demo(示例)和SDK給開發(fā)人員下載,但是其在GitHub中上傳的代碼示例會(huì)出現(xiàn)因index接口過期而無法正常登錄的問題,需要在注冊(cè)騰訊云賬號(hào)之后,基于空文件建立Node.js騰訊云啟動(dòng)模板,才能使客戶端和服務(wù)器端代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論