直播推薦
企業(yè)動(dòng)態(tài)
- 紛享銷客發(fā)布首個(gè)企業(yè)級(jí)智能CRM平臺(tái)ShareAI
- 揭秘西企業(yè)數(shù)字化+低碳化轉(zhuǎn)型“工具箱”:西門子Xcelerator
- 企業(yè)AI賦能數(shù)智制造,用友U9 cloud世界級(jí)云ERP煥新升級(jí)
- 《“智“領(lǐng)石化,“質(zhì)“造未來(lái)——威圖石化行業(yè)數(shù)智化實(shí)踐白皮書》隆重發(fā)布
- 攜手共贏!德國(guó)Agfa搭載瑞典IPCO鋼帶,實(shí)現(xiàn)印刷設(shè)備振動(dòng)銳減6倍,提升印刷速度與精度
- 創(chuàng)四方集團(tuán)榮獲“知名商標(biāo)品牌閃亮”證書,助力品牌戰(zhàn)略升級(jí)
- 皇冠CAD(CrownCAD)2025 R3版本來(lái)了,率先開啟C“Ai”D時(shí)代!
- 電費(fèi)砍半!中國(guó)制冷展:海爾發(fā)布AI建筑最新成果
推薦展會(huì)
背景
時(shí)間:1年 前的某日
坐標(biāo):深圳
在一個(gè)平常的不能再平常的周末下午,幾個(gè)小伙伴聚在了一起,一起暢想 “萬(wàn)物互聯(lián)” 的物聯(lián)網(wǎng)未來(lái)。小伙伴中有硬件、嵌入式、軟件;有互聯(lián)網(wǎng)公司的全棧工程師、也有核電廠的工控系統(tǒng)維護(hù)者、還有路由器廠商的 wifi 協(xié)議。我們發(fā)現(xiàn),世面上沒(méi)有開源且可商用的物聯(lián)網(wǎng)平臺(tái)或系統(tǒng)。這里的可商用,不是搭建幾個(gè) demo 把硬件連上網(wǎng)、app 操作兩下這么簡(jiǎn)單!
有以下幾點(diǎn)都是必須著重考慮的:
必須有完備的硬件、嵌入式、云端一體的協(xié)議及架構(gòu)設(shè)計(jì)
能夠?qū)崿F(xiàn)真正的硬件智能化,能夠基于數(shù)據(jù)學(xué)習(xí)并自主工作
必須有很高的性能、穩(wěn)定性及擴(kuò)展性
必須能夠適應(yīng)成千上萬(wàn)種不同資源的硬件設(shè)備,從 PC 到手機(jī)、從計(jì)算資源極其有限的單片機(jī)到網(wǎng)絡(luò)帶寬極其有限的控制器
必須能適應(yīng)不同的網(wǎng)絡(luò)場(chǎng)景,包括有線、wifi、3g/4g、gprs 等
必須有很可靠的安全性
需要盡可能降低研發(fā)和生產(chǎn)成本
在媒體和科技工作者都抱著物聯(lián)網(wǎng)是未來(lái)的觀點(diǎn)并翹首觀望時(shí),我們決定做點(diǎn)什么,而不是當(dāng)看客!這個(gè)平常的不能再平常的周末下午,也許對(duì)我們不太平凡。
我們決定啟動(dòng)全套可商用物聯(lián)網(wǎng)系統(tǒng)的設(shè)計(jì)和研發(fā),并在不久的將來(lái),全部開源。

于是大家利用業(yè)余時(shí)間,開始了協(xié)議設(shè)計(jì)及系統(tǒng)設(shè)計(jì),將項(xiàng)目慢慢啟動(dòng)了起來(lái)。幾個(gè)月后,*個(gè)商用版本的研發(fā)成功完成。這期間,好幾個(gè)小伙伴辭去了工作,全職進(jìn)行研發(fā)。我們?cè)跊](méi)有融資、沒(méi)有資源的情況下一路走到現(xiàn)在,其中辛酸就不多言了。謹(jǐn)以此文記錄我們?cè)谙到y(tǒng)設(shè)計(jì)和研發(fā)中的走過(guò)的路,以饗同樣是物聯(lián)網(wǎng)愛好者的你。
整體設(shè)計(jì)
一個(gè)物聯(lián)網(wǎng)系統(tǒng)涉及硬件、軟件、云端、app 各個(gè)環(huán)節(jié),必須從整體進(jìn)行頂層設(shè)計(jì),只倚重某個(gè)單一的環(huán)節(jié)進(jìn)行設(shè)計(jì)的系統(tǒng)都不具備良好的適用性和擴(kuò)展性。我們?cè)谠O(shè)計(jì)時(shí)為了避免這種情況,使系統(tǒng)能夠適應(yīng)zui廣泛的物聯(lián)網(wǎng)場(chǎng)景(甚至包括工業(yè)場(chǎng)景),每次的架構(gòu)設(shè)計(jì)討論都是所有團(tuán)隊(duì)成員參與。大體的系統(tǒng)架構(gòu)如下:

協(xié)議
在一個(gè)物聯(lián)網(wǎng)系統(tǒng)中,協(xié)議是串通上下層的關(guān)鍵紐帶。在物聯(lián)網(wǎng)系統(tǒng)中,我們將協(xié)議分為兩大層:通信層和業(yè)務(wù)層。

通信層基本上是傳統(tǒng)互聯(lián)網(wǎng)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,負(fù)責(zé)將數(shù)據(jù)在物聯(lián)網(wǎng)系統(tǒng)節(jié)點(diǎn)中的傳輸
業(yè)務(wù)層分為兩層,底層是負(fù)責(zé)物聯(lián)網(wǎng)場(chǎng)景下數(shù)據(jù)交換格式的規(guī)范,上層是物聯(lián)網(wǎng)場(chǎng)景需要具體傳輸?shù)臉I(yè)務(wù)數(shù)據(jù)規(guī)范。
通信層互聯(lián)網(wǎng)基礎(chǔ)架構(gòu)目前已經(jīng)非常成熟且通用,但是業(yè)務(wù)層協(xié)議目前還是種類繁多??梢源_定的一點(diǎn)是,zui終能在物聯(lián)網(wǎng)應(yīng)用中稱霸的協(xié)議,一定也像互聯(lián)網(wǎng)時(shí)代的 TCP/IP 一樣是開放的、免費(fèi)的。目前符合此特性并使用比較多的有 XMPP、MQTT、COAP 等。關(guān)于具體的對(duì)比,可以參考我之前的另一篇文章《物聯(lián)網(wǎng)通信協(xié)議介紹》。
文中總結(jié)如下:
互聯(lián)網(wǎng)中使用較多的 HTTP、websocket 以及 XMPP 等協(xié)議,在設(shè)計(jì)時(shí)都是根據(jù)互聯(lián)網(wǎng)應(yīng)用場(chǎng)景設(shè)計(jì)的,雖然很多廠商把他們應(yīng)用在物聯(lián)網(wǎng)系統(tǒng)中,但是必然會(huì)水土不服,這些協(xié)議的通病就是根本無(wú)法適用物聯(lián)網(wǎng)設(shè)備的多樣性,無(wú)法適用很多物聯(lián)網(wǎng)設(shè)備對(duì)低功耗、低成本的需求,難以在極低資源的物聯(lián)網(wǎng)設(shè)備中運(yùn)用。
COAP 協(xié)議針對(duì)資源受限的嵌入式設(shè)備設(shè)計(jì),但由于很多物聯(lián)網(wǎng)設(shè)備隱藏在局域網(wǎng)內(nèi)部,COAP 設(shè)備作為服務(wù)器無(wú)法被外部設(shè)備尋址,在 *6 沒(méi)有普及之前,coap 只能適用于局域網(wǎng)內(nèi)部(如 wifi)通信,這也很大限制了它的適用范圍。
MQTT 在協(xié)議設(shè)計(jì)時(shí)就考慮到不同設(shè)備的計(jì)算性能的差異,所以所有的協(xié)議都是采用二進(jìn)制格式編解碼,并且編解碼格式都非常易于開發(fā)和實(shí)現(xiàn)。zui小的數(shù)據(jù)包只有 2 個(gè)字節(jié),對(duì)于低功耗低速網(wǎng)絡(luò)也有很好的適應(yīng)性。有非常完善的 QOS 機(jī)制,根據(jù)業(yè)務(wù)場(chǎng)景可以選擇zui多一次、至少一次、剛好一次三種消息送達(dá)模式。運(yùn)行在 TCP 協(xié)議之上,同時(shí)支持 TLS(TCP+SSL)協(xié)議,并且由于所有數(shù)據(jù)通信都經(jīng)過(guò)云端,安全性得到了較好地保障。
我們zui終選擇基于 MQTT 來(lái)作為業(yè)務(wù)傳輸層主要協(xié)議。但是 MQTT 協(xié)議本身的設(shè)計(jì)是針對(duì)開放設(shè)備,對(duì)于可商用的物聯(lián)網(wǎng)系統(tǒng)不得不保證設(shè)備的安全性和完善的*機(jī)制。所以我們?cè)趯?shí)現(xiàn) MQTT 協(xié)議時(shí)進(jìn)行了一些定制和限制。
在業(yè)務(wù)層的上層(business 層),目前的物聯(lián)網(wǎng)系統(tǒng)都是各自針對(duì)自己的業(yè)務(wù)場(chǎng)景設(shè)計(jì)協(xié)議規(guī)范。有沒(méi)有可能根據(jù)物聯(lián)網(wǎng)場(chǎng)景統(tǒng)一業(yè)務(wù)數(shù)據(jù)的規(guī)范呢?我們認(rèn)為是可行的,并且也是必要的。如果把通信協(xié)議比作聲音,光有通信協(xié)議,任何人之間還是無(wú)法交流。只有統(tǒng)一語(yǔ)言,大家才能順暢溝通。所以我們抽象出物聯(lián)網(wǎng)節(jié)點(diǎn)中傳感器和執(zhí)行器的業(yè)務(wù)場(chǎng)景,并設(shè)計(jì)出含有物聯(lián)網(wǎng)業(yè)務(wù)數(shù)據(jù)語(yǔ)義的業(yè)務(wù)層協(xié)議。目前已經(jīng)將業(yè)務(wù)層協(xié)議開源,希望對(duì)廣大愛好者和從業(yè)者帶來(lái)一定參考價(jià)值。
云端平臺(tái)
互聯(lián)網(wǎng)時(shí)代的用戶上網(wǎng)終端主要是 PC 和手機(jī)等設(shè)備,可以想象,物聯(lián)網(wǎng)時(shí)代,上網(wǎng)終端會(huì)呈多樣化、海量化趨勢(shì)。保守估計(jì)每人擁有數(shù)十套聯(lián)網(wǎng)設(shè)備,數(shù)據(jù)規(guī)模必然也是幾何倍增長(zhǎng)。所以物聯(lián)網(wǎng)云端平臺(tái)注定是一個(gè)大規(guī)模的海量分布式系統(tǒng)。
目前很多愛好者或者廠商通過(guò)搭建簡(jiǎn)單的 web 系統(tǒng)(如 php、nodejs、python 實(shí)現(xiàn)的 web 接口)可以實(shí)現(xiàn)設(shè)備的聯(lián)網(wǎng),但是可以想象,在真正的商用場(chǎng)景中,穩(wěn)定性、性能、擴(kuò)展性都必然遭受沖擊,無(wú)法應(yīng)對(duì)。
在進(jìn)行技術(shù)選型和架構(gòu)設(shè)計(jì)時(shí),我們也綜合考慮以上因素進(jìn)行設(shè)計(jì)和實(shí)現(xiàn):
采用 go 語(yǔ)言作為主要開發(fā)語(yǔ)言。go 語(yǔ)言有著簡(jiǎn)潔的語(yǔ)法,并且能夠很方便地進(jìn)行高并發(fā)程序的開發(fā),在高性能云計(jì)算系統(tǒng)的開發(fā)中有著得天獨(dú)厚的優(yōu)勢(shì)。
采用 microservice 分布式架構(gòu)。microservice 架構(gòu)能夠構(gòu)建出更穩(wěn)定、擴(kuò)展性更好的分布式系統(tǒng),也是目前分布式系統(tǒng)中zui流行的架構(gòu)方式。
使用 docker 降低運(yùn)維成本。docker 能夠方便地對(duì)系統(tǒng)就行升級(jí)和出錯(cuò)回滾,保證了系統(tǒng)發(fā)布時(shí)的穩(wěn)定性。
對(duì)外接口采用 REST 風(fēng)格進(jìn)行設(shè)計(jì)。REST 風(fēng)格的接口便于升級(jí)和兼容,并擁有非常易于理解的語(yǔ)義,降低的學(xué)習(xí)門檻。
多副本部署。任何服務(wù)模塊我們都保證同時(shí)至少有兩個(gè)運(yùn)行實(shí)例,并根據(jù)服務(wù)發(fā)現(xiàn)機(jī)制自動(dòng)進(jìn)行負(fù)載和調(diào)度,以增加系統(tǒng)可用性。
大體的云端架構(gòu)如下圖

目前我們的系統(tǒng)已經(jīng)發(fā)布到 0.8.0 版本,后續(xù)會(huì)在安裝和運(yùn)維的便捷性上進(jìn)行優(yōu)化,并計(jì)劃在 1.0 版本時(shí)開源發(fā)布。
嵌入式
物聯(lián)網(wǎng)硬件的嵌入式軟件除了傳統(tǒng)部分,必須加入聯(lián)網(wǎng)邏輯以及傳感器、控制器的管理。為了提高開發(fā)效率、方便復(fù)用,我們?cè)O(shè)計(jì)并開發(fā)了輕量級(jí)的物聯(lián)網(wǎng)嵌入式開發(fā)框架,并對(duì)物聯(lián)網(wǎng)業(yè)務(wù)進(jìn)行了抽象,以便移植到不同的硬件平臺(tái)。我們希望做到的是,在不需要更改任何業(yè)務(wù)層代碼的情況下,一個(gè)物聯(lián)網(wǎng)嵌入式應(yīng)用可以在不同的硬件平臺(tái)運(yùn)行。

當(dāng)前很多大企業(yè)(華為、惠普、google 等)都紛紛推出了物聯(lián)網(wǎng)操作系統(tǒng),后續(xù)物聯(lián)網(wǎng)領(lǐng)域會(huì)出現(xiàn)多種操作系統(tǒng)共存的局面。不同的操作系統(tǒng)能運(yùn)行的zui低系統(tǒng)資源以及具體應(yīng)用場(chǎng)景都不盡相同,但我們相信,物聯(lián)網(wǎng)的上層業(yè)務(wù)是通用的,這也是我們?cè)O(shè)計(jì)物聯(lián)網(wǎng)嵌入式開發(fā)框架的原因。
安全
近些日子,各種廠商的物聯(lián)網(wǎng)設(shè)備紛紛傳出被黑的消息。從 TCL 到特斯拉,黑客都成功實(shí)現(xiàn)破解和隨意操控。和互聯(lián)網(wǎng)時(shí)代一樣,安全在物聯(lián)網(wǎng)目前的早期階段注定是容易被忽略的問(wèn)題。為此我們也在設(shè)計(jì)系統(tǒng)時(shí)也沒(méi)有掉以輕心:
所有接入層通信都采用 tls 進(jìn)行加密,包括對(duì) app、業(yè)務(wù)服務(wù)器的開放接口。
用戶、設(shè)備關(guān)鍵信息進(jìn)行加密保存
針對(duì)設(shè)備有完善的用戶鑒權(quán)機(jī)制
針對(duì)互聯(lián)網(wǎng)安全場(chǎng)景的其他安全措施
安全不是一朝一夕的事情,需要從系統(tǒng)開始構(gòu)建時(shí)就考慮,并不斷完善安全手段和規(guī)則。
開發(fā)板
為了降低物聯(lián)網(wǎng)硬件的開發(fā)成本,我們基于 esp8266 設(shè)計(jì)了物聯(lián)網(wǎng)開發(fā)板 Tisan,并在 Tisan 實(shí)現(xiàn)了我們的嵌入式開發(fā)框架及物聯(lián)網(wǎng)協(xié)議。我們希望 Tisan 成為大家相互學(xué)習(xí)、交流和沉淀技術(shù)的工具,也希望更多的愛好者能一起做出好產(chǎn)品
以開源之名
光陰荏苒,白駒過(guò)隙。一路走來(lái),我們執(zhí)著地將所有設(shè)計(jì)慢慢付諸實(shí)現(xiàn),為未來(lái)的物聯(lián)網(wǎng)技術(shù)貢獻(xiàn)自己的力量。物聯(lián)網(wǎng)技術(shù)涉及的方向眾多,我們的力量畢竟是有限的,這也是我們從一開始就以開源形式開發(fā)項(xiàng)目的原因。
本文來(lái)自攀多物聯(lián)科技的投稿。攀多物聯(lián)是深圳一家物聯(lián)網(wǎng)創(chuàng)業(yè)公司,致力于打造物聯(lián)網(wǎng)產(chǎn)品開發(fā)工具,提供縱向物聯(lián)網(wǎng)解決方案。
免責(zé)聲明
- 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://www.towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
2025第十一屆中國(guó)國(guó)際機(jī)電產(chǎn)品交易會(huì) 暨先進(jìn)制造業(yè)博覽會(huì)
展會(huì)城市:合肥市展會(huì)時(shí)間:2025-09-20