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

?

基于云計算及開源軟硬件的物聯(lián)網系統(tǒng)設計與實現

2018-01-04 12:02宋永生
電腦知識與技術 2018年29期
關鍵詞:云計算物聯(lián)網

摘要:物聯(lián)網系統(tǒng)涉及軟件、硬件及網絡等諸多技術,開發(fā)難度大。如何在技術及資金有限的條件下,設計與實現物聯(lián)網系統(tǒng),是不少創(chuàng)業(yè)公司面臨的難題。云計算技術、開源軟件及開源硬件將有助于降低物聯(lián)網系統(tǒng)設計與實現的難度與成本。

關鍵詞:物聯(lián)網;云計算;開源軟件;開源硬件

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)29-0129-03

Abstract: The Internet of things system involves many technologies such as software, hardware and network, so it is difficult to develop. How to design and implement the Internet of Things under the condition of limited technology and capital is a difficult problem faced by many start-ups. Cloud computing technology, open source software and open source hardware will help reduce the difficulty and cost of the design and implementation of the Internet of Things system.

Key words: internet of things; cloud computing; open source software; open source hardware;

物聯(lián)網是一門新興的交叉學科,是國家創(chuàng)新驅動發(fā)展戰(zhàn)略重要的組成部分。物聯(lián)網系統(tǒng)的設計和實現,牽涉到軟件、硬件及網絡通信等諸多技術。目前軟件工程師往往對硬件不是很了解,硬件工程師往往又對軟件不甚精通,同時精通軟件、硬件、網絡通信等技術的工程師少之又少,從而造成不少創(chuàng)業(yè)公司設計和實現物聯(lián)網系統(tǒng)步履維艱。

云計算技術風起云涌,國外知名的云計算服務平臺主要有亞馬遜AWS、Google云和微軟Azure,國內主要有華為云、百度云、阿里云和騰訊云。云計算服務平臺提供服務器、數據庫、安全防護、大數據分析、視頻直播點播、人工智能等諸多服務,助力中小企業(yè)發(fā)展。開源軟件匯聚了世界各地程序員的心血,其中有少開源軟件代碼質量相當高;開源硬件則將硬件設計的原理圖、電路圖、IDE及核心庫文件等開源,供人們學習和參考。創(chuàng)業(yè)公司可以參考和使用開源軟硬件進行設計開發(fā),降低成本。

物聯(lián)網系統(tǒng)的應用非常廣泛,比如對火災、大氣污染等監(jiān)控。以火災監(jiān)控為例,如果僅以現場的溫濕度、煙霧數據判斷火災通常不夠準確,輔以現場的音視頻進行判斷,將會提高準確率?;馂陌l(fā)生時,若能夠在第一時間采取措施進行滅火,將會減少損失。本文嘗試利用云計算、開源軟件及開源硬件等技術,以火災監(jiān)控為例,設計并實現物聯(lián)網系統(tǒng),力求簡化技術難度,降低成本。

1 系統(tǒng)架構

本文的物聯(lián)網系統(tǒng)主要分為三個部分:物聯(lián)網終端、網絡和物聯(lián)網服務平臺。物聯(lián)網終端主要負責各類數據的采集、將數據傳輸給物聯(lián)網服務平臺及執(zhí)行物聯(lián)網服務平臺發(fā)出的指令;網絡作為物聯(lián)網終端和物聯(lián)網服務平臺的數據傳輸通道,將兩者連接起來;物聯(lián)網服務平臺主要負責物聯(lián)網終端設備的接入服務、直播服務、數據分析、報警及發(fā)出控制指令等。溫濕度、煙霧等傳感器的數據和控制指令傳輸選用MQTT協(xié)議,音視頻傳輸采用RTMP協(xié)議,系統(tǒng)架構如圖1所示。

2 相關技術

2.1物聯(lián)網終端

物聯(lián)網終端包含傳感器、控制器和執(zhí)行器。各類傳感器負責采集數據,將數據傳輸給控制器,控制器通過網絡將數據傳輸給物聯(lián)網服務平臺。物聯(lián)網服務平臺對采集的數據進行分析處理,通過網絡發(fā)出控制指令給物聯(lián)網終端的控制器,控制器通過執(zhí)行器完成指令動作?;馂谋O(jiān)控中,傳感器選用溫濕度傳感器、煙霧傳感器、麥克風和攝像頭,執(zhí)行器選擇滅火器。

常用的開源控制器主要有Arduino及樹莓派。Arduino平臺是非常方便的開源硬件平臺,其硬件原理圖、電路圖、IDE及核心庫文件都是開源的[1]。Arduino是一個微型控制器平臺,可以用類C的語言進行編程。溫濕度、煙霧等傳感器通過串口與Arduino相連,Arduino將傳感器的數據轉發(fā)到物聯(lián)網服務平臺,并接收物聯(lián)網服務平臺發(fā)出的指令,通過執(zhí)行器完成指令。音視頻直播對硬件要求較高,Arduino無法勝任。

樹莓派有一個完整的ARM處理器,性能更強。樹莓派是為了幫助年輕人學習編程而設計的只有信用卡大小的電腦。樹莓派通常采用一種叫Raspbian的Linux系統(tǒng)。在Raspbian環(huán)境下,可以利用Python、C、C++、Java或匯編語言進行編程[2]。在樹莓派上安裝開源直播軟件OBS,可以完成音視頻數據的編碼并利用RTMP協(xié)議推送至騰訊云直播服務接口。

2.2網絡

網絡是物聯(lián)網終端和物聯(lián)網服務平臺數據傳輸的通道,網絡類型和通信協(xié)議兩個方面均需考慮。

1)網絡類型

物聯(lián)網在部署時,為了降低成本,有時會選用電池供電。如果網絡的功耗低,電池的壽命會更長,物聯(lián)網的維護成本會降低。常用的功耗低、覆蓋面廣的網絡主要有LoRa和NB-IOT。LoRa是Semtech公司力推的一種低功耗廣域網通信技術,為用戶提供一種能夠簡單實現距離遠、功耗低、組網節(jié)點多的傳感網絡。LoRa主要運行在免費頻段,用戶可以自行組網。NB-IOT主要運行在授權頻段,由運營商組網,支持低功耗設備在廣域網的蜂窩數據連接,支持待機時間長、對網絡連接要求較高設備的高效連接。NB-IoT的覆蓋更廣,功耗更低,僅為2G的1/10 [3]。

LoRa和NB-IOT網絡均能滿足Arduino的數據傳輸要求,但其速率無法勝任音視頻數據的實時傳輸。直播需要采用4G等移動通信網絡或者WiFi網絡,本文利用普通無線路由器接入以太網或者4G無線路由器接入4G網絡為樹莓派和Arduino提供WiFi網絡。

2)通信協(xié)議

物聯(lián)網通信協(xié)議主要有MQTT和CoAP。MQTT是基于TCP/IP協(xié)議構建的一種輕量靈活的網絡協(xié)議,已成為物聯(lián)網通信標準。MQTT采用的是Pub/Sub方式的協(xié)議,解除應用程序耦合,對負載內容屏蔽消息傳輸,開銷小、協(xié)議交換最小化,提供客戶端異常中斷機制,提供三種質量等級的消息發(fā)布服務。MQTT適用于設備間消息通信或需要反向控制的場景。

對有些小型設備而言,實現TCP協(xié)議要求過高,為了讓這些小型設備接入互聯(lián)網,設計了CoAP協(xié)議。CoAP是一種應用層的協(xié)議,運行在UDP協(xié)議之上,傳輸的內容小巧精簡。CoAP適用于純數據上報的場景,對資源的要求更低。由于需要實時反向控制,本文選擇MQTT作為Arduino與物聯(lián)網服務平臺的通信協(xié)議。

RTMP實時信息傳輸協(xié)議是Adobe公司提出的一種基于TCP的應用層協(xié)議,主要用來在流媒體及交互服務器之間進行音視頻和數據通信。音視頻數據采用RTMP協(xié)議推流至騰訊云的視頻直播服務接口。

2.3物聯(lián)網服務平臺

物聯(lián)網服務平臺是物聯(lián)網的大腦,分為服務層和應用層。服務層主要負責物聯(lián)網終端設備的接入,直播服務,存儲和分析采集到的數據;在服務層提供的基礎功能之上,應用層實現具體的業(yè)務。構建物聯(lián)網服務平臺,一般需要購置服務器、存儲設備、交換機、防火墻、IPS、WAF等,需要建設服務器機房,這對創(chuàng)業(yè)公司是不小的負擔。借助于云計算技術,利用云服務平臺的服務器及音視頻直播服務,不僅可以得到專業(yè)的技術支持,也可以降低成本。

本文的物聯(lián)網終端設備接入選用MQTT協(xié)議。MQTT Broker主要有Mosquitto、Apollo、Mosca、emqttd及hbmqtt等。Mosquitto是Eclipse基金會的一款輕量級的開源消息代理軟件,采用C語言編寫,實現MQTT協(xié)議 3.1和3.1.1,由MQTT協(xié)議創(chuàng)始人之一的Andy Stanford-Clark開發(fā)[4]。Mosquitto用來搭建MQTT Broker,作為訂閱者與發(fā)布者的消息中介,支持可發(fā)布可訂閱的消息推送模式。 Mosquitto接受來自客戶端的網絡連接、發(fā)布信息、處理客戶端的訂閱或取消訂閱請求,轉發(fā)消息給符合條件的訂閱客戶端,如圖2所示。消息在設備間流轉不需要流經數據庫,所以實時性很強。如果需要保存消息,MQTT客戶端則負責將消息寫入數據庫。

通過簡單的配置,音視頻數據即可通過RTMP協(xié)議推流至騰訊云視頻直播服務接口。利用Django2.0、Ajax及MySql5.6,構建物聯(lián)網管理系統(tǒng)。在物聯(lián)網管理系統(tǒng)的網頁中嵌入騰訊云Web直播播放器代碼,就可以在物聯(lián)網管理系統(tǒng)中觀看直播。騰訊云視頻直播服務還可以將直播內容錄制下來用于點播。在管理系統(tǒng)的網頁上可以展示物聯(lián)網終端采集的溫濕度、煙霧等數據,以及現場的音視頻直播,并可以向物聯(lián)網終端發(fā)送控制指令。

3 平臺實現

物聯(lián)網服務平臺的服務器選用騰訊云服務器,服務器的配置為2核CPU、4G內存、30Mbps帶寬、100G硬盤,操作系統(tǒng)選用CentOS 7.4 64位,采用Django 2.0框架結合Ajax構建物聯(lián)網管理系統(tǒng),Web服務器選用nginx 1.4,應用服務器選用uwsgi 2.0,數據庫選用MySql 5.6 64位,開發(fā)語言選用Python 3.6。在服務器上安裝Mosquitto 1.5,完成MQTT Broker的構建。

參照Eclipse Paho Python,開發(fā)物聯(lián)網服務平臺的MQTT客戶端,完成MQTT客戶端的消息訂閱、發(fā)布并將消息存入MySQL數據庫。通過Python調用騰訊云短信API,實現物聯(lián)網服務平臺的短信發(fā)送功能。

選用帶WiFi功能的Arduino 開發(fā)板,參照GitHub上的Arduino Client for MQTT,開發(fā)Arduino的MQTT客戶端, 通過WiFi網絡連接物聯(lián)網服務平臺。

在樹莓派上接入攝像頭和麥克風,并在樹莓派上安裝OBS,OBS是用于音視頻編碼并推送直播視頻源到服務器的免費開源直播軟件[5]。采用RTMP推流至騰訊云直播服務接口,在物聯(lián)網服務平臺的網頁中嵌入騰訊Web直播播放器代碼,就可以將音視頻直播。

在物聯(lián)網管理系統(tǒng)中查看物聯(lián)網終端各傳感器的數據及音視頻直播。當溫濕度及煙霧傳感器探測到火災,將會自動發(fā)送短信報警,監(jiān)管人員通過音視頻判斷無誤后,向物聯(lián)網終端發(fā)送滅火指令,執(zhí)行器自動進行滅火。

4 結束語

本文借助于騰訊云服務器、直播服務及短信服務,Mosquitto、Paho及Django等開源軟件,Arduino及樹莓派等開源硬件,設計并實現了物聯(lián)網系統(tǒng),完成對火災的監(jiān)控,降低了物聯(lián)網開發(fā)的技術難度,壓縮了成本,有利于創(chuàng)業(yè)公司進行物聯(lián)網技術開發(fā)。本文的傳感器數據在傳輸過程中沒有加密,將來可以對數據進行加密傳輸,采用時序數據庫來存儲傳感器數據,并利用人工智能對采集到的數據進行分析,提升物聯(lián)網應用水平。

參考文獻:

[1] 施金磊,高谷剛. 基于LoRa技術的家庭物聯(lián)網安防系統(tǒng)設計[J]. 電子技術與軟件工程,2017,10:218-220.

[2] Wolfram Donat.Python樹莓派編程 [M]. 韓德強,譯.北京:機械工業(yè)出版社,2016.

[3] 安翔. 物聯(lián)網Python開發(fā)實踐 [M]. 北京:電子工業(yè)出版社,2018.

[4] 黃峰達. 自己動手設計物聯(lián)網 [M]. 北京:電子工業(yè)出版社,2016.

[5] 宋永生. 基于HTML5及云計算的高職院校移動學習平臺設計與實現[J]. 電腦知識與技術,2016,12(29):59-61.

【通聯(lián)編輯:梁書】

猜你喜歡
云計算物聯(lián)網
基于LABVIEW的溫室管理系統(tǒng)的研究與設計
論智能油田的發(fā)展趨勢及必要性
實驗云:理論教學與實驗教學深度融合的助推器
中國或成“物聯(lián)網”領軍者
武威市| 黄梅县| 乌恰县| 苏尼特左旗| 霍山县| 阳曲县| 横山县| 太仓市| 泸溪县| 通州区| 凤山县| 商洛市| 淮南市| 临颍县| 肃宁县| 承德市| 青阳县| 宜都市| 南召县| 钟山县| 津市市| 信丰县| 安图县| 扬州市| 福建省| 景谷| 清远市| 垦利县| 宣化县| 富顺县| 浑源县| 竹北市| 郑州市| 玛多县| 商丘市| 丁青县| 峨山| 桦南县| 重庆市| 陇西县| 尼木县|