亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于百度云的物聯(lián)網(wǎng)應(yīng)用搭建

        2023-06-17 08:39:34王葦棋陳文印吳同德陳亞平謝飛武吳科甲
        物聯(lián)網(wǎng)技術(shù) 2023年6期
        關(guān)鍵詞:服務(wù)端網(wǎng)關(guān)代碼

        王葦棋,陳文印,吳同德,陳亞平,謝飛武,吳科甲

        (福建信息職業(yè)技術(shù)學(xué)院,福建 福州 350000)

        0 引 言

        物聯(lián)網(wǎng)是計(jì)算機(jī)、電子、通信等應(yīng)用技術(shù)的集中體現(xiàn),是近些年科技發(fā)展的幾種體現(xiàn),是人民生活的重要技術(shù)支撐。隨著物聯(lián)網(wǎng)應(yīng)用技術(shù)涉足的產(chǎn)業(yè)越來(lái)越廣、實(shí)際應(yīng)用越來(lái)越多、相關(guān)產(chǎn)品越來(lái)越豐富,物聯(lián)網(wǎng)已經(jīng)成為了一個(gè)千億級(jí)的行業(yè)市場(chǎng)[1-3]。

        隨著物聯(lián)網(wǎng)行業(yè)迅速發(fā)展,帶動(dòng)了物聯(lián)網(wǎng)云服務(wù)應(yīng)用的提升,國(guó)內(nèi)代表廠商有百度、阿里、騰訊、小米、海爾等。按照商業(yè)模式的不同,物聯(lián)網(wǎng)云平臺(tái)可以分為公有云和私有云。公有云物聯(lián)網(wǎng)平臺(tái)一般由相關(guān)企業(yè)提供,開(kāi)放了大量物聯(lián)網(wǎng)服務(wù)和接口,方便設(shè)備接入和管理。物聯(lián)網(wǎng)公有云對(duì)設(shè)備的協(xié)議有更為嚴(yán)格規(guī)定,且大部分物聯(lián)網(wǎng)管理應(yīng)用功能由廠家定義。而物聯(lián)網(wǎng)私有云平臺(tái)是用戶自己搭建底層運(yùn)行框架,自定義業(yè)務(wù)邏輯功能,使用靈活但開(kāi)發(fā)維護(hù)門檻高。近年來(lái),部分公有云廠家也提供私有云部署業(yè)務(wù),可以為客戶定制開(kāi)發(fā)功能。對(duì)于個(gè)人用戶而言,想開(kāi)發(fā)一套自己的物聯(lián)網(wǎng)私有云系統(tǒng),一般還需要租用一臺(tái)云服務(wù)器。

        利用百度物聯(lián)網(wǎng)云平臺(tái)提供的一種通用的MQTT 發(fā)布訂閱功能,可以將私有云物聯(lián)網(wǎng)平臺(tái)部署到自己的個(gè)人計(jì)算機(jī)上。將百度物聯(lián)網(wǎng)云平臺(tái)當(dāng)作一個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)中心,把設(shè)備上報(bào)的數(shù)據(jù)轉(zhuǎn)發(fā)給部署私有云的服務(wù)端。同理,私有云也可以利用百度云將控制指令下發(fā)到設(shè)備。這樣,就可以無(wú)需租用云服務(wù)器也能實(shí)現(xiàn)對(duì)設(shè)備進(jìn)行數(shù)據(jù)采集和控制下發(fā),能夠降低私有云的開(kāi)發(fā)門檻,縮短項(xiàng)目驗(yàn)證周期。

        通過(guò)測(cè)試驗(yàn)證表明,該方案實(shí)用性強(qiáng)、快速可靠,能有效提高私有云開(kāi)發(fā)效率。若設(shè)計(jì)得當(dāng),還可以作為物聯(lián)網(wǎng)應(yīng)用個(gè)人開(kāi)發(fā)者的實(shí)際業(yè)務(wù)系統(tǒng)。

        1 總體設(shè)計(jì)

        基于百度云的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的核心是具有MQTT 發(fā)布訂閱功能的百度云平臺(tái),設(shè)備端包括采集設(shè)備和轉(zhuǎn)換協(xié)議的智能網(wǎng)關(guān),業(yè)務(wù)端是一個(gè)私有云服務(wù)端。

        系統(tǒng)的通信協(xié)議使用了百度提供的MQTT。MQTT 協(xié)議的角色可以分為服務(wù)代理端(Broker)和客戶端(Client),代理服務(wù)器可以支持多種服務(wù)質(zhì)量,客戶端根據(jù)功能劃分為發(fā)布者(Publish)和訂閱者(Subscribe),客戶端通過(guò)協(xié)議與代理服務(wù)器進(jìn)行連接[4]??傮w架構(gòu)如圖1所示。

        圖1 總體架構(gòu)圖

        百度云平臺(tái)作為數(shù)據(jù)透?jìng)鞯闹修D(zhuǎn)站,不處理具體業(yè)務(wù)邏輯。設(shè)備和私有云都是MQTT 客戶端,利用發(fā)布訂閱功能實(shí)現(xiàn)數(shù)據(jù)交互,進(jìn)而進(jìn)行設(shè)備遠(yuǎn)程監(jiān)控和運(yùn)維升級(jí)。

        物聯(lián)網(wǎng)網(wǎng)關(guān)通過(guò)RS 485 等采集總線和ModBus 等采集協(xié)議獲取到采集設(shè)備的數(shù)據(jù)后,將數(shù)據(jù)按照百度云規(guī)定的格式打包后發(fā)給平臺(tái)。接收到平臺(tái)的控制指令后,將指令轉(zhuǎn)換成控制設(shè)備可識(shí)別的信號(hào),實(shí)現(xiàn)設(shè)備間聯(lián)動(dòng)控制。

        采集控制設(shè)備具有環(huán)境數(shù)據(jù)采集與控制功能,例如植物工廠中的溫濕度、CO2、LED 補(bǔ)光燈、光照傳感器、噴灌等。要具備現(xiàn)場(chǎng)通信能力和協(xié)議處理能力,接收處理網(wǎng)關(guān)下發(fā)的終端命令[5]。

        私有云服務(wù)端是運(yùn)行物聯(lián)網(wǎng)業(yè)務(wù)邏輯功能的主體,由于百度云的存在,服務(wù)端只需要能夠連上網(wǎng)絡(luò)即可實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)采集。因此,服務(wù)端的載體可以是個(gè)人計(jì)算機(jī)、手機(jī)APP,甚至是嵌入式設(shè)備,在開(kāi)發(fā)上更為靈活方便。

        2 百度云配置

        2.1 百度物聯(lián)云平臺(tái)與MQTT

        百度物聯(lián)網(wǎng)云平臺(tái)是面向物聯(lián)網(wǎng)行業(yè)開(kāi)發(fā)的云管理平臺(tái),它提供設(shè)備接入與管理、規(guī)則引擎及物聯(lián)網(wǎng)邊緣等功能[6]。云端可接入、管理設(shè)備并建立安全可靠的連接;規(guī)則引擎提供物聯(lián)網(wǎng)設(shè)備與云平臺(tái)其他產(chǎn)品之間的數(shù)據(jù)互傳;物聯(lián)網(wǎng)邊緣可將云計(jì)算能力拓展至用戶現(xiàn)場(chǎng),并且在工作條件差的區(qū)域也可以提供計(jì)算服務(wù)。

        MQTT(消息隊(duì)列遙測(cè)傳輸)是一種基于發(fā)布訂閱(Publish Subscribe)模式的“輕量級(jí)”通信協(xié)議,該協(xié)議構(gòu)建于TCPIP 協(xié)議簇上。為了適應(yīng)硬件功能不穩(wěn)定或者網(wǎng)絡(luò)條件差等情況下而設(shè)計(jì)的一款發(fā)布訂閱型消息協(xié)議。它的最大優(yōu)勢(shì)在于可以提供實(shí)時(shí)可靠的消息傳遞服務(wù),用很少的代碼和有限的帶寬連接遠(yuǎn)程設(shè)備,低開(kāi)銷、低帶寬,因此被廣泛應(yīng)用于物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等領(lǐng)域[7]。云平臺(tái)配置流程包括創(chuàng)建IoTCore 實(shí)例、創(chuàng)建模板、創(chuàng)建設(shè)備、獲取連接信息、測(cè)試MQTT 通信。

        2.2 云平臺(tái)配置

        百度云平臺(tái)作為物聯(lián)網(wǎng)網(wǎng)關(guān)、私有云服務(wù)端的“中介”,提供了MQTT 服務(wù),需要注冊(cè)賬號(hào)并生成通信密鑰,實(shí)現(xiàn)智能設(shè)備與云端之間建立安全的連接,防止設(shè)備被不法分子攻擊。

        (1)創(chuàng)建IoTCore 實(shí)例

        在使用物聯(lián)網(wǎng)核心套件前,需要?jiǎng)?chuàng)建一個(gè)百度智能云賬號(hào),登錄后在云平臺(tái)開(kāi)通IoTCore,點(diǎn)擊“創(chuàng)建IoTCore”,輸入名稱與描述,即可創(chuàng)建實(shí)例。

        (2)創(chuàng)建模板

        設(shè)備模板是提供當(dāng)前設(shè)備的主題描述,默認(rèn)的設(shè)備模板包含兩個(gè)主題。按照?qǐng)D2和圖3步驟新創(chuàng)建SertoCli 和ClitoSer 兩個(gè)主題。

        圖2 創(chuàng)建一個(gè)模板

        圖3 創(chuàng)建主題

        (3)創(chuàng)建設(shè)備

        填寫設(shè)備名稱、認(rèn)證方式、描述、設(shè)備模板,其中認(rèn)證方式選密鑰認(rèn)證,描述可以不寫。

        (4)獲取連接信息

        在云平臺(tái)配置好設(shè)備信息后,自動(dòng)生成新的設(shè)備信息和連接密鑰。進(jìn)入設(shè)備詳情頁(yè),在連接信息欄目,點(diǎn)擊右側(cè)圖標(biāo),即可查看設(shè)備信息:IoTCoreId、DeviceKey 和DeviceSecret。

        針對(duì)不同項(xiàng)目需求創(chuàng)建相應(yīng)IoT Core 實(shí)例庫(kù),在庫(kù)中添加需要的物聯(lián)網(wǎng)傳感器,從而獲取傳感器采集傳輸?shù)南鄳?yīng)的實(shí)時(shí)數(shù)據(jù),實(shí)現(xiàn)云端部署管理[8]。

        2.3 MQTT 數(shù)據(jù)收發(fā)

        2.3.1 生成用戶名和密碼

        MQTT 測(cè)試需要將獲取到的設(shè)備信息生成登錄用戶名和密碼,然后通過(guò)MQTT 測(cè)試工具或者軟件實(shí)現(xiàn)通信,具體流程可以分為以下幾個(gè)步驟:

        (1)生成用戶名

        創(chuàng)建設(shè)備時(shí)選的認(rèn)證方式為密鑰認(rèn)證后需通過(guò)拼接連接成用戶名,使用拿到的IoTCoreId、DeviceKey 和DeviceSecret,生成MQTT 連接所需的用戶名及密碼。用戶名具體拼接如下:

        {adp_type}@{IoTCoreId}|{DeviceKey}|{timestamp}|{algorithm_type}

        具體含義見(jiàn)表1所列。

        表1 用戶名字段定義

        例如:IoTCoreId 為"avmbgrk",DeviceKey 為"zwgcDevice",則用戶名可以為"thingidp@avmbgrk|zwgcDevice|0|MD5"。

        (2)生成密碼

        組合加密字符串具體拼接如下:

        {DeviceKey}&{timestamp}&{algorithm_type}{DeviceSecret}

        具體含義見(jiàn)表2所列。

        表2 用戶名字段定義

        例如:DeviceKey 為"zwgcDevice",DeviceSecret 為"oGciBvqglTuaVKlu",則加密字符串可以為"zwgcDevice&0&MD5oGciBvqglTuaVKlu"。

        使用MD5 對(duì)加密字符串的UTF-8 字符集比特?cái)?shù)組進(jìn)行加密,并將結(jié)果轉(zhuǎn)換為小寫形式,密碼為“53b1e44951df2329 70a624d8dc4945c8”。

        具體Python 參考代碼如下:

        2.3.2 MQTT 數(shù)據(jù)收發(fā)

        MQTT 數(shù)據(jù)收發(fā)功能測(cè)試可以使用mqtt.fx 等軟件進(jìn)行測(cè)試,使用方法與網(wǎng)絡(luò)調(diào)試助手類似。本文提供一種基于Python 代碼的MQTT 數(shù)據(jù)收發(fā)測(cè)試方法。

        本文MQTT 代碼是基于Anaconda 環(huán)境,Python 版本為3.7.6,需要安裝paho-mqtt 模塊,可以通過(guò)指令安裝,也可以通過(guò)Anaconda 環(huán)境管理功能進(jìn)行安裝。

        使用paho-mqtt 模塊前需要導(dǎo)入相關(guān)模塊,然后需要編寫連接回調(diào)函數(shù)和收到消息的回調(diào)函數(shù),緊接著連接到對(duì)應(yīng)的服務(wù)端,最后啟動(dòng)線程服務(wù)就完成了paho-mqtt 功能開(kāi)發(fā)。具體Python 參考代碼如下:

        通過(guò)發(fā)布消息函數(shù),發(fā)布到對(duì)應(yīng)主題就可以接受到對(duì)應(yīng)的數(shù)據(jù):

        In [6]:mqttser.publish(topicSertoCli,'{data:"mqttser1"}',qos = 1)

        mqttser.publish(topicSertoCli,'{data:"mqttser2"}',qos = 1)

        Out[6]:

        dev_onmsg,$iot/zwgcDevice/user/SertoCli ,b’{data:"mqttser1"}’

        dev_onmsg,$iot/zwgcDevice/user/SertoCli ,b’{data:"mqttser2"}'

        3 服務(wù)端與設(shè)備端功能設(shè)計(jì)與實(shí)現(xiàn)

        3.1 服務(wù)端與設(shè)備端設(shè)計(jì)

        私有云服務(wù)端主要流程包括生成登錄賬號(hào)和密碼、登錄百度云平臺(tái)、通過(guò)MQTT 發(fā)送控制指令、通過(guò)MQTT 接收遙測(cè)數(shù)據(jù)等,具體流程如圖4所示。

        圖4 服務(wù)端流程

        接收到遙測(cè)數(shù)據(jù)后,根據(jù)需求進(jìn)行處理,例如對(duì)數(shù)據(jù)進(jìn)行解析、將報(bào)文存儲(chǔ)到數(shù)據(jù)庫(kù)中、將數(shù)據(jù)轉(zhuǎn)發(fā)至展示平臺(tái)、對(duì)數(shù)據(jù)進(jìn)行告警判斷等[9]。

        當(dāng)發(fā)生告警時(shí)或者人為下發(fā)控制指令等情況需要對(duì)設(shè)備進(jìn)行遠(yuǎn)程控制時(shí),服務(wù)端將命令通過(guò)MQTT 服務(wù)端下發(fā)至網(wǎng)關(guān),網(wǎng)關(guān)解析命令后實(shí)現(xiàn)對(duì)遠(yuǎn)程設(shè)備進(jìn)行調(diào)控。

        設(shè)備端網(wǎng)關(guān)功能主要是硬件設(shè)備初始化、生成登錄賬號(hào)和密碼、登錄百度云平臺(tái)、接收服務(wù)端控制指令、采集傳感器數(shù)據(jù)并上報(bào),具體流程如圖5所示。

        圖5 設(shè)備端流程

        硬件部分最重要的是智能網(wǎng)關(guān)模塊,網(wǎng)關(guān)一般包括采集電路、通信模塊、主控模塊。智能網(wǎng)關(guān)模塊主要負(fù)責(zé)將采集到的傳感器數(shù)據(jù)打包后上傳至云平臺(tái),解析云平臺(tái)下發(fā)的指令并執(zhí)行,復(fù)雜的智能網(wǎng)關(guān)模塊還應(yīng)具有邊緣計(jì)算能力。

        3.2 參考測(cè)試代碼

        為了更方便測(cè)試,首先將Token 生成相關(guān)代碼封裝成一個(gè)BaiduMqttTockenClass 類,將所有用到的參數(shù)存到類里,具體Python 參考代碼如下。同理,將MQTT 連接功能封裝成一個(gè)BaiduMqttConClass 類,將所有連接過(guò)程封裝到類里。

        服務(wù)端測(cè)試代碼首先要?jiǎng)?chuàng)建一個(gè)MQTT 連接,并訂閱設(shè)備上報(bào)主題用于接收設(shè)備上報(bào)的數(shù)據(jù),具體Python 參考代碼如下:

        測(cè)試代碼模擬一個(gè)服務(wù)端下發(fā)控制指令過(guò)程,每隔1 s,交替下發(fā)風(fēng)扇開(kāi)啟和關(guān)閉指令,具體Python 參考代碼如下:

        同理,設(shè)備端測(cè)試代碼首先要?jiǎng)?chuàng)建一個(gè)MQTT 連接,并訂閱服務(wù)端下發(fā)指令主題,用于接收服務(wù)端下發(fā)的指令,具體Python 參考代碼如下:

        測(cè)試代碼模擬一個(gè)設(shè)備端上報(bào)數(shù)據(jù)的過(guò)程,每隔2 s,隨機(jī)生成溫度和濕度值,并上報(bào)至服務(wù)端,具體Python 參考代碼如下:

        4 測(cè) 試

        測(cè)試運(yùn)行結(jié)果具體Python 參考代碼如下,服務(wù)端每隔2 s 接收到設(shè)備端上報(bào)的數(shù)據(jù),設(shè)備端每隔1 s 接收到服務(wù)端下發(fā)的指令。

        5 結(jié) 語(yǔ)

        本文的研究充分證明了該物聯(lián)網(wǎng)模型的可行性和實(shí)用性,提供了一套搭建簡(jiǎn)易物聯(lián)網(wǎng)模型的思路,實(shí)現(xiàn)了用戶快速搭建一套物聯(lián)網(wǎng)項(xiàng)目的需求。在此基礎(chǔ)上,開(kāi)發(fā)者可以增加數(shù)據(jù)庫(kù)系統(tǒng)、可視化界面等其他模塊以便于構(gòu)建一套更完整的物聯(lián)網(wǎng)系統(tǒng)。

        注:本文通訊作者為陳文印。

        猜你喜歡
        服務(wù)端網(wǎng)關(guān)代碼
        基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計(jì)
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
        在Windows Server 2008上創(chuàng)建應(yīng)用
        LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
        應(yīng)對(duì)氣候變化需要打通“網(wǎng)關(guān)”
        好大好硬好爽免费视频| 中文字幕影片免费人妻少妇| 亚洲熟女精品中文字幕| 精产国品一二三产品蜜桃| 狠狠色综合播放一区二区 | 国内精品卡一卡二卡三| 国产成人无码区免费内射一片色欲| 欧美日韩精品一区二区三区不卡| 亚洲无码夜夜操| 国产免费人成视频在线观看播放| 亚州中文热码在线视频| 岛国av无码免费无禁网站| 天天爽天天爽天天爽| 亚洲AV专区一专区二专区三| 成年网站在线91九色| 国产精品亚洲а∨无码播放不卡| 三年片免费观看大全国语| 久久无码人妻一区二区三区午夜| 四虎成人精品国产一区a| 日本视频一区二区三区三州| 精品人无码一区二区三区| 亚洲丁香五月天缴情综合| 亚洲精品无码久久毛片| 国内精品九九久久精品小草| 免费在线视频亚洲色图| 精品区2区3区4区产品乱码9| 91精品国产综合成人| av最新版天堂在资源在线| 超级乱淫片国语对白免费视频 | 亚洲人午夜射精精品日韩 | 婷婷五月六月综合缴情| 欧美xxxx黑人又粗又长精品| 国产av无码专区亚洲aⅴ | 日本av天堂一区二区三区| 草草浮力影院| 亚洲熟女网站| 超碰青青草手机在线免费观看 | 成人免费看www网址入口| 免费一区二区三区视频狠狠| 青青草免费在线视频久草| 成年美女黄网站色大免费视频 |