<address id="j51jj"></address>

            <address id="j51jj"><listing id="j51jj"><menuitem id="j51jj"></menuitem></listing></address><address id="j51jj"><nobr id="j51jj"><meter id="j51jj"></meter></nobr></address>

            <address id="j51jj"></address>
            <form id="j51jj"><nobr id="j51jj"></nobr></form>
            物聯網開發

            物聯網系統中的開發工作有哪些

              物聯網的概念已經被炒了好多年了,奇怪的是:市場中對這個概念的反應總是不慍不火。


              隨著5G 的迅速普及,不知道是否能夠再次把這個領域帶火起來。


              但是不管怎樣,很多大學已經把物聯網這個專業給坐實了。


              前幾天,一位大一的小伙伴私信我:進入物聯網專業已經快一年時間了,卻不知道以后出去干什么?


              這篇文章,我們就從開發者的角度,來簡單看一下物聯網這個領域使用了哪些技術棧、有哪些開發工作。


              物聯網系統

            物聯網開發


              這張圖從開發者的角度,展示了一個物聯網系統中的各種角色,包括它們之間的通信。


              如果從軟件開發崗位的角度來對這幾個模塊進行劃分的話,這個系統中主要包括:


              前端、后端開發:負責物聯網平臺和業務應用的開發;


              嵌入式軟件:主要是設備端的開發,這部分根據使用的不同技術(或者說硬件模塊),又可以分為很多不同的子領域;


              移動端開發:Android APP, iOS APP, H5 小程序,還有目前的鴻蒙系統APP。


              設備端的開發

            物聯網開發


              這里描述的設備,還是屬于比較狹隘的范疇,僅僅包含了具有通信功能的物理硬件實體。


              如果從廣義的物聯網來看,任何物品,只要能夠接入網絡,都可以稱之為設備,或者稱之為 thing。


              比如:把一件衣服附上一個電子標簽,也是物聯網的一個小分子。


            電子標簽


              我們這里,仍舊以傳統意義上的設備來講解,比如:智慧路燈,智能手表,智能家居里的門磁、報警器等等。


              對設備端的開發進行分類的話,從通信方式這個角度來進行劃分比較清晰。


              一個設備要想接入到網絡,肯定需要通信功能,包括:有線通信,無線通信。


              在一些傳統行業,或者對通信質量要求比較高的場景下,部署有線網絡還是比較常見的,例如一些工業場景中。


              對于一些民用領域,大部分還是以無線通信為主。


              1. 不需要網關的設備


              這一類設備,利用 2G/3G/4G 基站來進行數據的傳輸,產品的形態是:


            單片機


              也就是 單片機+通信模塊的方式。


              通信模塊包括:GPRS 模塊、4G 模塊、NB-IoT 等等。


              在開發這一類產品的時候,單片機負責產品的功能部分;通信模塊負責通信部分。


              單片機與通信模塊之間,在硬件上通過 UART 口通信居多,在協議上可以通過 AT 指令,或者其他的一些專有協議。


              近幾年,在傳統的消費類電子產品上,添加一個通信模塊,讓產品達到連網的功能,還是比較流行的。


              這一類的產品的軟件開發工作,與一般的單片機開發并無兩樣。無非是增加了一些通過網絡來上報數據,或者從網絡接收控制指令。


              只要熟悉所使用的通信協議即可。


              上面的這種產品形態,需要對硬件進行重新設計,比較適合從零開始的產品開發。


              那么對于那些已有的產品,如果想連接到物聯網平臺上,但是又不想重新設計,又該怎么辦呢?


              有需求就有供給!


              比如:一些掃地機、吸塵器的廠商,由于找不到其他可以創新、突破的點,于是就開始內卷,紛紛加上連網的功能。


            電路板


              他們直接在產品中,添加一個 ESP8266 或者 ESP32 模組,就立刻升級成一個智能產品,多么高大上。當然了, 價格也同樣高大上起來了!


              ESP8266 或者 ESP32 與一般的通信模組有一點不一樣:它是一個完整的單片機,只不過它們的主要用途就是專門用來解決通信問題,而不是一般的功能控制。


              2. 需要網關的設備


            物聯網設備


              如果提到智能家居,可能大部分的人會想到一個詞語 ZigBee,這是一個局域網的無線通信協議,大概在 2005 年左右就開始在智能家居中嶄露頭角了。


              與 ZigBee 類似的無線通信協議還有:ZWave、RF433、BLE 等等。


              它們的作用都是類似的:都是為了讓多個設備能夠組網,節點之間以多跳的方式傳輸數據,達到通信的目的。


              這些數據最終會匯總到一個叫做網關的設備,然后與云端的服務器進行通信。


            網關設備


              這一類產品的開發,包括:網關開發 和 設備開發這兩種。


              網關的開發稍微復雜一些。從功能上來說,網關需要實現:


              設備的管理(與物聯網平臺的設備管理不是一個概念);


              規則引擎(在斷網的狀態下實現場景聯動等功能);


              通信協議轉換(把物理網平臺的通信協議轉成設備私有協議);


              有些網關中,還會集成不同的無線通信協議模塊,比如:把 ZigBee、BLE、紅外等功能,集成在一個網關中,這樣的話,不同通信方式的設備就可以在一個系統中共存了。


            網關設備


              此時,網關就要做更多的工作:


              上行鏈路(連接到云平臺):需要做到協議的統一,也就是說云平臺才不關系下面到底是什么樣的無線通信技術,云平臺只會以統一的數據格式來表示每個設備;


              下行鏈路(連接到設備):協議轉換,把云平臺發來的統一的數據格式,轉換成不同的無線通信協議特有的數據格式;


              設備的開發工作就相對純粹一點了,它只需要處理某一種無線協議即可。


              這一類設備的開發,一般都是使用相應的通信模組,底層的協議棧都是提供好的。


              開發者需要做的工作主要就是熟悉應用層的通信協議,完成指令的解析和數據上報工作。


              3. WiFi 類設備


            WIFI設備


              這一類產品最常見的就是各種品牌的網絡攝像頭(IPCamera),比如:小米、360、螢石等等。


              攝像頭如果作為一個單品來使用,只要把家中的 WiFi SSID 和 密碼配置到攝像頭中,就可以使用官方的 APP 來遠程查看實時畫面了。


              如果把攝像頭集成在一個智能家居的系統中,就需要二次開發。


              攝像頭廠家一般都會提供 SDK,作為開發者需要做的事情就是:調用 SDK 中的 API 函數,獲取實時畫面、發送指令控制攝像頭云臺轉動。


              這里有一個底層的技術很有意思:P2P 網絡穿透。


              我們買來一個網絡攝像機,是不可能有一個獨立的 IP 地址的。也就是說:其他設備(手機)是沒辦法通過 IP:PORT 的編程方式,直接連接到攝像頭的。


              但是為了實時畫面的傳輸質量,為了減輕服務器的轉發壓力,手機最好可以直接與攝像頭建立 TCP 通信。


              此時,P2P 網絡穿透給這種需求提供了可能。


              在早期的時候,深圳有大批的攝像頭廠商使用的都是 TUTK 這家公司的 P2P 網絡穿透服務。


            p2p Master


              在 P2P Master(就是一臺服務器)的協助下,實現移動端與攝像頭之間的網絡穿透,直接建立 TCP 連接。


              物聯網平臺開發


              物聯網平臺,作為連接業務應用和設備的中間層,屏蔽了各種復雜的設備接口,實現設備的快速接入。


              目前,做的比較大的就是那么幾家巨頭:亞馬遜的 AWS 平臺,阿里云、騰訊、華為的物聯網平臺。


              以上這幾家的物聯網平臺,僅僅是他們的云平臺中的一個組成部分。


              它們的目標就是提供一個通用的通信標準和 SDK,快速的接入各種硬件設備,通過設備接入數量、通信數據的流量,以及提供各種業務層的服務來賺錢。


              另外,還有一些下一梯隊的公司,開發了自己的、專門針對物聯網領域的平臺。由于知名度不高,只能以合作開發項目的形式來吸引硬件設備的接入。


              從開發的角度來看,物聯網平臺的開發技術棧主要是后臺開發。由于這部分技術棧我不太熟悉,就不去深入討論了。


              物聯網平臺最寶貴的就是數據,如何利用這些數據,這就是業務應用的事情了。


              業務應用開發


              所謂的業務應用,簡單來說,就是通過調用物聯網平臺提供的 API,實現設備管理、數據上報、命令下發等業務場景。


              設備管理是在設備接入基礎上,提供了更豐富完備的設備管理能力,簡化海量設備管理復雜性,提升管理效率。


              從物聯網平臺的設備和數據中,可以衍生出各種不同的業務應用場景,這就要根據實際的系統功能來進行按需開發了。


              比如:智慧城市、智慧照明、智慧工業、車聯網等行業應用。


              涉及到的技術棧是:前端和后端開發。


            注:本站文章部分文字及圖片來自互聯網。如有侵權行為,請聯系我們,我們會及時刪除。