自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從程序員的角度,來(lái)拆解物聯(lián)網(wǎng)系統(tǒng)中的開(kāi)發(fā)工作

物聯(lián)網(wǎng) 物聯(lián)網(wǎng)應(yīng)用
物聯(lián)網(wǎng)的概念已經(jīng)被炒了好多年了,奇怪的是:市場(chǎng)中對(duì)這個(gè)概念的反應(yīng)總是不慍不火。這篇文章,我們就從開(kāi)發(fā)者的角度,來(lái)簡(jiǎn)單看一下物聯(lián)網(wǎng)這個(gè)領(lǐng)域使用了哪些技術(shù)棧、有哪些開(kāi)發(fā)工作。

[[406907]]

物聯(lián)網(wǎng)的概念已經(jīng)被炒了好多年了,奇怪的是:市場(chǎng)中對(duì)這個(gè)概念的反應(yīng)總是不慍不火。

隨著5G 的迅速普及,不知道是否能夠再次把這個(gè)領(lǐng)域帶火起來(lái)。

但是不管怎樣,很多大學(xué)已經(jīng)把物聯(lián)網(wǎng)這個(gè)專業(yè)給坐實(shí)了。

前幾天,一位大一的小伙伴私信我:進(jìn)入物聯(lián)網(wǎng)專業(yè)已經(jīng)快一年時(shí)間了,卻不知道以后出去干什么?

這篇文章,我們就從開(kāi)發(fā)者的角度,來(lái)簡(jiǎn)單看一下物聯(lián)網(wǎng)這個(gè)領(lǐng)域使用了哪些技術(shù)棧、有哪些開(kāi)發(fā)工作。

物聯(lián)網(wǎng)系統(tǒng)

這張圖從開(kāi)發(fā)者的角度,展示了一個(gè)物聯(lián)網(wǎng)系統(tǒng)中的各種角色,包括它們之間的通信。

如果從軟件開(kāi)發(fā)崗位的角度來(lái)對(duì)這幾個(gè)模塊進(jìn)行劃分的話,這個(gè)系統(tǒng)中主要包括:

  • 前端、后端開(kāi)發(fā):負(fù)責(zé)物聯(lián)網(wǎng)平臺(tái)和業(yè)務(wù)應(yīng)用的開(kāi)發(fā);
  • 嵌入式軟件:主要是設(shè)備端的開(kāi)發(fā),這部分根據(jù)使用的不同技術(shù)(或者說(shuō)硬件模塊),又可以分為很多不同的子領(lǐng)域;
  • 移動(dòng)端開(kāi)發(fā):Android APP, iOS APP, H5 小程序,還有目前的鴻蒙系統(tǒng)APP。

設(shè)備端的開(kāi)發(fā)

[[406908]]

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

如果從廣義的物聯(lián)網(wǎng)來(lái)看,任何物品,只要能夠接入網(wǎng)絡(luò),都可以稱之為設(shè)備,或者稱之為 thing。

比如:把一件衣服附上一個(gè)電子標(biāo)簽,也是物聯(lián)網(wǎng)的一個(gè)小分子。

[[406909]]

我們這里,仍舊以傳統(tǒng)意義上的設(shè)備來(lái)講解,比如:智慧路燈,智能手表,智能家居里的門磁、報(bào)警器等等。

對(duì)設(shè)備端的開(kāi)發(fā)進(jìn)行分類的話,從通信方式這個(gè)角度來(lái)進(jìn)行劃分比較清晰。

一個(gè)設(shè)備要想接入到網(wǎng)絡(luò),肯定需要通信功能,包括:有線通信,無(wú)線通信。

在一些傳統(tǒng)行業(yè),或者對(duì)通信質(zhì)量要求比較高的場(chǎng)景下,部署有線網(wǎng)絡(luò)還是比較常見(jiàn)的,例如一些工業(yè)場(chǎng)景中。

對(duì)于一些民用領(lǐng)域,大部分還是以無(wú)線通信為主。

1. 不需要網(wǎng)關(guān)的設(shè)備

這一類設(shè)備,利用 2G/3G/4G 基站來(lái)進(jìn)行數(shù)據(jù)的傳輸,產(chǎn)品的形態(tài)是:

也就是 單片機(jī)+通信模塊的方式。

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

在開(kāi)發(fā)這一類產(chǎn)品的時(shí)候,單片機(jī)負(fù)責(zé)產(chǎn)品的功能部分;通信模塊負(fù)責(zé)通信部分。

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

近幾年,在傳統(tǒng)的消費(fèi)類電子產(chǎn)品上,添加一個(gè)通信模塊,讓產(chǎn)品達(dá)到連網(wǎng)的功能,還是比較流行的。

這一類的產(chǎn)品的軟件開(kāi)發(fā)工作,與一般的單片機(jī)開(kāi)發(fā)并無(wú)兩樣。無(wú)非是增加了一些通過(guò)網(wǎng)絡(luò)來(lái)上報(bào)數(shù)據(jù),或者從網(wǎng)絡(luò)接收控制指令。

只要熟悉所使用的通信協(xié)議即可。

上面的這種產(chǎn)品形態(tài),需要對(duì)硬件進(jìn)行重新設(shè)計(jì),比較適合從零開(kāi)始的產(chǎn)品開(kāi)發(fā)。

那么對(duì)于那些已有的產(chǎn)品,如果想連接到物聯(lián)網(wǎng)平臺(tái)上,但是又不想重新設(shè)計(jì),又該怎么辦呢?

有需求就有供給!

比如:一些掃地機(jī)、吸塵器的廠商,由于找不到其他可以創(chuàng)新、突破的點(diǎn),于是就開(kāi)始內(nèi)卷,紛紛加上連網(wǎng)的功能。

他們直接在產(chǎn)品中,添加一個(gè) ESP8266 或者 ESP32 模組,就立刻升級(jí)成一個(gè)智能產(chǎn)品,多么高大上。當(dāng)然了, 價(jià)格也同樣高大上起來(lái)了!

ESP8266 或者 ESP32 與一般的通信模組有一點(diǎn)不一樣:它是一個(gè)完整的單片機(jī),只不過(guò)它們的主要用途就是專門用來(lái)解決通信問(wèn)題,而不是一般的功能控制。

2. 需要網(wǎng)關(guān)的設(shè)備

如果提到智能家居,可能大部分的人會(huì)想到一個(gè)詞語(yǔ) ZigBee,這是一個(gè)局域網(wǎng)的無(wú)線通信協(xié)議,大概在 2005 年左右就開(kāi)始在智能家居中嶄露頭角了。

與 ZigBee 類似的無(wú)線通信協(xié)議還有:ZWave、RF433、BLE 等等。

它們的作用都是類似的:都是為了讓多個(gè)設(shè)備能夠組網(wǎng),節(jié)點(diǎn)之間以多跳的方式傳輸數(shù)據(jù),達(dá)到通信的目的。

這些數(shù)據(jù)最終會(huì)匯總到一個(gè)叫做網(wǎng)關(guān)的設(shè)備,然后與云端的服務(wù)器進(jìn)行通信。

這一類產(chǎn)品的開(kāi)發(fā),包括:網(wǎng)關(guān)開(kāi)發(fā) 和 設(shè)備開(kāi)發(fā)這兩種。

網(wǎng)關(guān)的開(kāi)發(fā)稍微復(fù)雜一些。從功能上來(lái)說(shuō),網(wǎng)關(guān)需要實(shí)現(xiàn):

  1. 設(shè)備的管理(與物聯(lián)網(wǎng)平臺(tái)的設(shè)備管理不是一個(gè)概念);
  2. 規(guī)則引擎(在斷網(wǎng)的狀態(tài)下實(shí)現(xiàn)場(chǎng)景聯(lián)動(dòng)等功能);
  3. 通信協(xié)議轉(zhuǎn)換(把物理網(wǎng)平臺(tái)的通信協(xié)議轉(zhuǎn)成設(shè)備私有協(xié)議);

有些網(wǎng)關(guān)中,還會(huì)集成不同的無(wú)線通信協(xié)議模塊,比如:把 ZigBee、BLE、紅外等功能,集成在一個(gè)網(wǎng)關(guān)中,這樣的話,不同通信方式的設(shè)備就可以在一個(gè)系統(tǒng)中共存了。

此時(shí),網(wǎng)關(guān)就要做更多的工作:

  1. 上行鏈路(連接到云平臺(tái)):需要做到協(xié)議的統(tǒng)一,也就是說(shuō)云平臺(tái)才不關(guān)系下面到底是什么樣的無(wú)線通信技術(shù),云平臺(tái)只會(huì)以統(tǒng)一的數(shù)據(jù)格式來(lái)表示每個(gè)設(shè)備;
  2. 下行鏈路(連接到設(shè)備):協(xié)議轉(zhuǎn)換,把云平臺(tái)發(fā)來(lái)的統(tǒng)一的數(shù)據(jù)格式,轉(zhuǎn)換成不同的無(wú)線通信協(xié)議特有的數(shù)據(jù)格式;

設(shè)備的開(kāi)發(fā)工作就相對(duì)純粹一點(diǎn)了,它只需要處理某一種無(wú)線協(xié)議即可。

這一類設(shè)備的開(kāi)發(fā),一般都是使用相應(yīng)的通信模組,底層的協(xié)議棧都是提供好的。

開(kāi)發(fā)者需要做的工作主要就是熟悉應(yīng)用層的通信協(xié)議,完成指令的解析和數(shù)據(jù)上報(bào)工作。

3. WiFi 類設(shè)備

這一類產(chǎn)品最常見(jiàn)的就是各種品牌的網(wǎng)絡(luò)攝像頭(IPCamera),比如:小米、360、螢石等等。

攝像頭如果作為一個(gè)單品來(lái)使用,只要把家中的 WiFi SSID 和 密碼配置到攝像頭中,就可以使用官方的 APP 來(lái)遠(yuǎn)程查看實(shí)時(shí)畫面了。

如果把攝像頭集成在一個(gè)智能家居的系統(tǒng)中,就需要二次開(kāi)發(fā)。

攝像頭廠家一般都會(huì)提供 SDK,作為開(kāi)發(fā)者需要做的事情就是:調(diào)用 SDK 中的 API 函數(shù),獲取實(shí)時(shí)畫面、發(fā)送指令控制攝像頭云臺(tái)轉(zhuǎn)動(dòng)。

這里有一個(gè)底層的技術(shù)很有意思:P2P 網(wǎng)絡(luò)穿透。

我們買來(lái)一個(gè)網(wǎng)絡(luò)攝像機(jī),是不可能有一個(gè)獨(dú)立的 IP 地址的。也就是說(shuō):其他設(shè)備(手機(jī))是沒(méi)辦法通過(guò) IP:PORT 的編程方式,直接連接到攝像頭的。

但是為了實(shí)時(shí)畫面的傳輸質(zhì)量,為了減輕服務(wù)器的轉(zhuǎn)發(fā)壓力,手機(jī)最好可以直接與攝像頭建立 TCP 通信。

此時(shí),P2P 網(wǎng)絡(luò)穿透給這種需求提供了可能。

在早期的時(shí)候,深圳有大批的攝像頭廠商使用的都是 TUTK 這家公司的 P2P 網(wǎng)絡(luò)穿透服務(wù)。

在 P2P Master(就是一臺(tái)服務(wù)器)的協(xié)助下,實(shí)現(xiàn)移動(dòng)端與攝像頭之間的網(wǎng)絡(luò)穿透,直接建立 TCP 連接。

物聯(lián)網(wǎng)平臺(tái)開(kāi)發(fā)

物聯(lián)網(wǎng)平臺(tái),作為連接業(yè)務(wù)應(yīng)用和設(shè)備的中間層,屏蔽了各種復(fù)雜的設(shè)備接口,實(shí)現(xiàn)設(shè)備的快速接入。

目前,做的比較大的就是那么幾家巨頭:亞馬遜的 AWS 平臺(tái),阿里云、騰訊、華為的物聯(lián)網(wǎng)平臺(tái)。

以上這幾家的物聯(lián)網(wǎng)平臺(tái),僅僅是他們的云平臺(tái)中的一個(gè)組成部分。

它們的目標(biāo)就是提供一個(gè)通用的通信標(biāo)準(zhǔn)和 SDK,快速的接入各種硬件設(shè)備,通過(guò)設(shè)備接入數(shù)量、通信數(shù)據(jù)的流量,以及提供各種業(yè)務(wù)層的服務(wù)來(lái)賺錢。

另外,還有一些下一梯隊(duì)的公司,開(kāi)發(fā)了自己的、專門針對(duì)物聯(lián)網(wǎng)領(lǐng)域的平臺(tái)。由于知名度不高,只能以合作開(kāi)發(fā)項(xiàng)目的形式來(lái)吸引硬件設(shè)備的接入。

從開(kāi)發(fā)的角度來(lái)看,物聯(lián)網(wǎng)平臺(tái)的開(kāi)發(fā)技術(shù)棧主要是后臺(tái)開(kāi)發(fā)。由于這部分技術(shù)棧我不太熟悉,就不去深入討論了。

物聯(lián)網(wǎng)平臺(tái)最寶貴的就是數(shù)據(jù),如何利用這些數(shù)據(jù),這就是業(yè)務(wù)應(yīng)用的事情了。

業(yè)務(wù)應(yīng)用開(kāi)發(fā)

[[406913]]

所謂的業(yè)務(wù)應(yīng)用,簡(jiǎn)單來(lái)說(shuō),就是通過(guò)調(diào)用物聯(lián)網(wǎng)平臺(tái)提供的 API,實(shí)現(xiàn)設(shè)備管理、數(shù)據(jù)上報(bào)、命令下發(fā)等業(yè)務(wù)場(chǎng)景。

設(shè)備管理是在設(shè)備接入基礎(chǔ)上,提供了更豐富完備的設(shè)備管理能力,簡(jiǎn)化海量設(shè)備管理復(fù)雜性,提升管理效率。

從物聯(lián)網(wǎng)平臺(tái)的設(shè)備和數(shù)據(jù)中,可以衍生出各種不同的業(yè)務(wù)應(yīng)用場(chǎng)景,這就要根據(jù)實(shí)際的系統(tǒng)功能來(lái)進(jìn)行按需開(kāi)發(fā)了。

比如:智慧城市、智慧照明、智慧工業(yè)、車聯(lián)網(wǎng)等行業(yè)應(yīng)用。

涉及到的技術(shù)棧是:前端和后端開(kāi)發(fā)。

 

責(zé)任編輯:姜華 來(lái)源: IOT物聯(lián)網(wǎng)小鎮(zhèn)
相關(guān)推薦

2016-11-04 10:30:17

微信小程序

2019-11-11 09:02:51

MySQL數(shù)據(jù)庫(kù)索引

2018-10-26 15:30:49

程序員MySQL數(shù)據(jù)庫(kù)

2009-06-14 18:43:57

LinuxWindows對(duì)比

2015-04-20 09:50:58

程序員

2015-04-14 11:15:18

程序員創(chuàng)業(yè)程序員談創(chuàng)業(yè)

2019-05-07 09:02:22

物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)MQTT協(xié)議物聯(lián)網(wǎng)

2020-05-08 15:27:06

物聯(lián)網(wǎng)云計(jì)算網(wǎng)絡(luò)攻擊

2020-03-20 10:40:04

云計(jì)算物聯(lián)網(wǎng)安全

2016-02-22 10:24:12

程序員工作環(huán)境

2015-07-16 10:40:10

程序員創(chuàng)業(yè)

2020-07-04 10:41:00

物聯(lián)網(wǎng)平臺(tái)MVNO物聯(lián)網(wǎng)

2015-09-14 15:10:22

程序員找工作原因

2018-02-08 16:03:59

程序員Java神經(jīng)網(wǎng)絡(luò)

2019-03-19 15:30:42

程序員JVM虛擬機(jī)

2020-06-05 07:50:04

技術(shù)思維程序員擺地?cái)?/a>

2019-08-02 14:50:34

2017-03-27 10:17:54

程序員工作學(xué)習(xí)

2013-07-23 09:00:59

程序員生產(chǎn)效率

2018-05-31 15:22:53

程序員女程序男性程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)