當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘 要 :設(shè)計(jì)了一種基于 ESP8266 WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn),該節(jié)點(diǎn)具有數(shù)據(jù)采集、數(shù)據(jù)上報(bào)和遠(yuǎn)程控制功能。傳感節(jié)點(diǎn)通過輕量級物聯(lián)網(wǎng) MQTT 協(xié)議與數(shù)據(jù)采集中心通信,數(shù)據(jù)采集中心能夠自動識別和實(shí)時(shí)顯示傳感節(jié)點(diǎn)的采集數(shù)據(jù)。實(shí)驗(yàn)證明,所設(shè)計(jì)的傳感器節(jié)點(diǎn)可靠、擴(kuò)展性強(qiáng)、通用性好。

0 引 言

隨著物聯(lián)網(wǎng)技術(shù)日趨成熟,物聯(lián)網(wǎng)已被廣泛應(yīng)用在醫(yī)療、交通與物流、能源與公用事業(yè)、零售業(yè)等領(lǐng)域 [1]。據(jù)思科公司(Cisco)思科視覺化網(wǎng)絡(luò)指數(shù)顯示,到 2022 年全球有超過半數(shù)設(shè)備和連接將會是機(jī)器對機(jī)器(M2M)的互聯(lián),比2017 年增加 34%。智能音箱、固定設(shè)備、移動設(shè)備及其他物件的連接數(shù)將從 2017 年的 61 億增至 2022 年的 146 億 [2]?;ヂ?lián)設(shè)備的數(shù)量和類型越來越多,應(yīng)用環(huán)境日趨復(fù)雜,實(shí)現(xiàn)資源有限或帶寬有限環(huán)境下的傳感器聯(lián)網(wǎng)和保證傳感數(shù)據(jù)的可靠傳輸成為物聯(lián)網(wǎng)技術(shù)應(yīng)用應(yīng)重點(diǎn)考慮的問題之一。

物聯(lián)網(wǎng)傳感節(jié)點(diǎn)作為物聯(lián)網(wǎng)和物理世界交互的邊界節(jié)點(diǎn),負(fù)責(zé)信息的采集和簡單處理,與將數(shù)據(jù)傳輸?shù)綉?yīng)用層進(jìn)行數(shù)據(jù)分析和處理 [3]。傳感器節(jié)點(diǎn)的通信方式主要分為近距離通信和遠(yuǎn)距離通信,傳感器節(jié)點(diǎn)之間一般采用短距離無線通信,如藍(lán)牙,ZigBee,WiFi等 ;傳感器與物聯(lián)網(wǎng)云服務(wù)器或應(yīng)用服務(wù)器采用遠(yuǎn)距離通信,如固網(wǎng)、移動網(wǎng)絡(luò)

(2G/3G/4G)、NB-IoT網(wǎng)絡(luò)等。無線網(wǎng)絡(luò)連接類型(WiFi、移動網(wǎng)絡(luò))是主流?,F(xiàn)在越來越多的應(yīng)用場合要求傳感器節(jié)點(diǎn)自帶接入網(wǎng)關(guān),即支持物聯(lián)網(wǎng)網(wǎng)絡(luò)接入服務(wù)。由于傳感器節(jié)點(diǎn)資源有限,受 CPU處理能力、內(nèi)存等限制,通常在LwIP協(xié)議棧上采用輕量級物聯(lián)網(wǎng)傳輸協(xié)議。目前,應(yīng)用最廣泛的物聯(lián)網(wǎng)標(biāo)準(zhǔn)傳輸協(xié)議包括 MQTT、CoAP。MQTT是一種在 TCP/IP協(xié)議上的基于訂閱 /發(fā)布模式的輕量級傳輸協(xié)議, 適用于引入第三方云平臺的物聯(lián)網(wǎng)應(yīng)用。CoAP 即約束應(yīng)用協(xié)議,類似 HTTP,是一種文檔傳輸協(xié)議,也是一種基于請求 / 響應(yīng)的客戶端 / 服務(wù)器端輕量級 UDP 傳輸協(xié)議,適合將物聯(lián)網(wǎng)應(yīng)用嵌入到現(xiàn)有 Web 服務(wù)器中 [4]。

本文基于 ESP8266 WiFi 模塊和 MQTT 協(xié)議設(shè)計(jì)了一種低成本物聯(lián)網(wǎng)傳感節(jié)點(diǎn),以 ESP8266 嵌入式處理器為核心,采用 AM2302 傳感器采集溫濕度數(shù)據(jù),進(jìn)行簡單處理后將傳感數(shù)據(jù)通過 MQTT 協(xié)議發(fā)布到百度天工物聯(lián)網(wǎng)云平臺IoTHub。數(shù)據(jù)采集中心采用 Visual C# 實(shí)現(xiàn),能自動識別傳感節(jié)點(diǎn)和訂購傳感器的數(shù)據(jù),可保存、處理和顯示傳感節(jié)點(diǎn)的溫濕度數(shù)據(jù)。數(shù)據(jù)采集中心可通過云平臺 IoTHub 下發(fā)命令,實(shí)現(xiàn)傳感器節(jié)點(diǎn)參數(shù)配置并讓傳感節(jié)點(diǎn)執(zhí)行指定操作(打開/ 關(guān)閉繼電器)。傳感器節(jié)點(diǎn)性能可靠,擴(kuò)展性強(qiáng),通用性好。

1 系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)由傳感節(jié)點(diǎn)、數(shù)據(jù)采集中心和百度天工物聯(lián)網(wǎng)云平臺組成,如圖 1 所示。傳器節(jié)點(diǎn)由ESP8266 和 AM2302 構(gòu)成, 實(shí)現(xiàn)溫濕度的采集和上報(bào) ;數(shù)據(jù)采集中心基于 Visual C# 開發(fā),實(shí)現(xiàn)傳感數(shù)據(jù)的接收、存儲、分析和顯示 ;百度天工物聯(lián)網(wǎng)云平臺 IoTHub 作為 MQTT 消息代理,負(fù)責(zé)主題訂閱管理、消息轉(zhuǎn)發(fā)和緩沖,實(shí)現(xiàn)傳感節(jié)點(diǎn)與數(shù)據(jù)采集中心的信息交互。傳感節(jié)點(diǎn)與數(shù)據(jù)采集中心的交互數(shù)據(jù)類型為 JSON 格式。

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

2 傳感節(jié)點(diǎn)設(shè)計(jì)

傳感節(jié)點(diǎn)負(fù)責(zé)采集感知對象相關(guān)信息,并通過相應(yīng)的通信模塊將數(shù)據(jù)通過 MQTT 消息代理推送到遠(yuǎn)端數(shù)據(jù)采集中心。

2.1 硬件設(shè)計(jì)

傳感節(jié)點(diǎn)以 ESP8266EX WiFi 模塊為核心,通過 I/O 外接傳感器 AM2302 及其他設(shè)備。傳感節(jié)點(diǎn)硬件框圖如圖 2 所示。

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

ESP8266 WiFi 模塊集成了一 ESP826EX 芯片和一 4 MB SPI FLASH,帶有 PCB WiFi 天線,支持三種 WiFi 工作模式(SoftAP,Station,SoftAP+Station)。ESP826EX 擁有完整的 WiFi 功能,內(nèi)嵌 Tensilica’s L106 32 位內(nèi)核處理器,CPU 時(shí)鐘速度為 80 MHz,最高可支持 160 MHz,集成片上 SRAM, 可獨(dú)立作為 MCU 并通過 I/O 外接傳感器實(shí)現(xiàn)物聯(lián)網(wǎng)應(yīng)用。ESP8266 WiFi 模塊支持 IEEE802.11 b/g/n 無線標(biāo)準(zhǔn)與 IPv4, TCP/UDP/HTTP/MQTT 等協(xié)議 [5]。AM2302 是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器,它包括一個(gè)電容式感濕元件和一個(gè)高精度 NTC 測溫元件。AM2302 的溫度測量精度為 1 ℃,濕度測量精度在 5% 以內(nèi) [6]。AM2302 與ESP8266EX 通過單總線協(xié)議通信,占用一個(gè) GPIO 端口。

2.2 軟件設(shè)計(jì)

傳感節(jié)點(diǎn)軟件基于 NodeMCU 固件開發(fā)。NodeMCU 固件使用 Lua 腳本語言編程,在樂鑫 ESP8266 Non-OS SDK 上開發(fā)而來。NodeMCU 固件封裝了 ESP8266 硬件操作的應(yīng)用編程接口函數(shù) API,同時(shí)還提供 I2C,SPI,UART 等外設(shè)總線驅(qū)動函數(shù)及 OLED/TFT 顯示驅(qū)動、各種類型傳感器驅(qū)動、網(wǎng)絡(luò)協(xié)議庫(TCP/UDP,HTTP,MQTT 等),開發(fā)者無需了解底層硬件驅(qū)動即可快速開發(fā)應(yīng)用。傳感節(jié)點(diǎn)程序主要通過數(shù)據(jù)采集模塊、MQTT 客戶端和網(wǎng)絡(luò)連接模塊實(shí)現(xiàn)。數(shù)據(jù)采集模塊負(fù)責(zé)定時(shí)讀取溫濕度數(shù)據(jù) ;MQTT 客戶端負(fù)責(zé)維護(hù)與MQTT 消息代理 IoTHub 的連接、發(fā)布傳感數(shù)據(jù)、接收并響應(yīng)數(shù)據(jù)采集中心的命令 ;網(wǎng)絡(luò)連接模塊負(fù)責(zé) WiFi 連接。系統(tǒng)軟件主流程如圖 3 所示。

2.2.1 數(shù)據(jù)采集模塊

數(shù)據(jù)采集模塊創(chuàng)建了一個(gè) tmr 定時(shí)器,周期調(diào)用 dht 庫的 read()函數(shù)讀取溫濕度數(shù)據(jù),再使用 string.format 函數(shù)將溫濕度數(shù)據(jù)轉(zhuǎn)換為 JSON 格式。讀取傳感器數(shù)據(jù)代碼 :

pin = pin or 2

status,temp,humi,temp_dec,humi_dec = dht.read(pin)

將溫濕度轉(zhuǎn)換為 JSON 格式代碼 :

topicmsg='{"reported" :{"time" :"%d","temperature" :%0.2f,

"humidity" : %0.1f}}'

msg = string.format(topicmsg,rtctime.get(),temp,humi)

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

2.2.2 MQTT客戶端

傳感節(jié)點(diǎn)和數(shù)據(jù)采集中心基于訂購 / 發(fā)布機(jī)制的 MQTT 協(xié)議通信進(jìn)行信息交互。傳感節(jié)點(diǎn)和數(shù)據(jù)采集中心作為MQTT 客戶端,百度 IoTHub 云平臺作為 MQTT 代理。消息的發(fā)布和訂購基于主題(topic)進(jìn)行。MQTT 代理負(fù)責(zé)管理訂閱關(guān)系或緩存消息(保留標(biāo)志為真的消息),將消息轉(zhuǎn)發(fā)給已訂閱主題的 MQTT 客戶端。為了實(shí)現(xiàn)傳感節(jié)點(diǎn)與數(shù)據(jù)采集中心的數(shù)據(jù)交互,兩者發(fā)布與訂閱的主題見表 1 所列。

傳感節(jié)點(diǎn) MQTT 客戶端初始化代碼如下 :

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

msghandler 為訂購消息處理函數(shù),用于解析和處理從數(shù)據(jù)采集中心收到的 JSON 格式數(shù)據(jù)。JSON 數(shù)據(jù)采用鍵(key) 值(value)對結(jié)構(gòu),key 可用來表示消息類型,value 為消息內(nèi)容。JSON 格式數(shù)據(jù)用 sjson 模塊的 decode()函數(shù)解析成 table 表格數(shù)據(jù)。傳感節(jié)點(diǎn)調(diào)用 publish 函數(shù)向某個(gè)主題發(fā)布消息, 語法 :mqtt :publish(topic,payload,qos,retain[,function(client)])。topic 是發(fā)布的主題 ;payload 為將發(fā)布的消息 ;qos 為QoS 服務(wù)質(zhì)量 ;0 表示只發(fā)送最多一次便可送達(dá),1 表示至少一次可送達(dá),2 表示一次便到達(dá) ;Retain 為保留標(biāo)志,指示服務(wù)端是否需要存儲當(dāng)前消息 ;function(client) 為消息發(fā)布成功回調(diào)函數(shù),在收到代理發(fā)布確認(rèn) PUBACK 消息后執(zhí)行函數(shù)。

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

3 數(shù)據(jù)采集中心設(shè)計(jì)

數(shù)據(jù)采集中心負(fù)責(zé)傳感節(jié)點(diǎn)的管理及傳感數(shù)據(jù)的顯示, 其中傳感節(jié)點(diǎn)管理包括節(jié)點(diǎn)自動識別、節(jié)點(diǎn)主題訂閱、節(jié)點(diǎn)控制等。數(shù)據(jù)采集中心與傳感節(jié)點(diǎn)通過 MQTT 協(xié)議的訂購 / 發(fā)布機(jī)制進(jìn)行異步通信,兩者不必知道對方的 IP 地址,所有消息均通過 MQTT 消息代理轉(zhuǎn)發(fā)。數(shù)據(jù)采集中心識別傳感節(jié)點(diǎn)流程如圖 4 所示。傳感節(jié)點(diǎn)上線時(shí)向主題 $baidu/iot/ general/data/id/status 發(fā)布保留標(biāo)志為真的消息“online”,離線時(shí)通過最后遺囑(Last Will)發(fā)布離線消息“offline”。數(shù)據(jù)采集中心連接到 MQTT 消息代理 IoTHub, 在訂閱主題$baidu/iot/general/data/+/status 后,會收到所有傳感節(jié)點(diǎn)的狀態(tài)消息,從消息主題解析出節(jié)點(diǎn) ID(+ 通配符所對應(yīng)的字段),如果是新節(jié)點(diǎn),則先添加節(jié)點(diǎn)再更新狀態(tài),否則直接更新節(jié)點(diǎn)狀態(tài)。

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

數(shù)據(jù)采集中心訂購傳感節(jié)點(diǎn)主題 $baidu/iot/general/data/ id/data 后, 當(dāng)傳感節(jié)點(diǎn)向此主題發(fā)布消息時(shí), 消息代理IoTHub 將會把消息轉(zhuǎn)發(fā)給數(shù)據(jù)采集中心。數(shù)據(jù)采集中心收到傳感節(jié)點(diǎn)數(shù)據(jù)后,解析 JSON 格式消息獲得消息的數(shù)據(jù)類型。如果是傳感數(shù)據(jù),則存儲后顯示 ;如果是傳感節(jié)點(diǎn)配置信息,則存儲到節(jié)點(diǎn)信息。信息處理流程如圖 5 所示。

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

數(shù)據(jù)采集中心界面如圖 6 所示。界面上部分顯示節(jié)點(diǎn)列表及最新的節(jié)點(diǎn)傳感數(shù)據(jù),下部分顯示節(jié)點(diǎn)數(shù)據(jù)曲線圖。

基于 ESP8266WiFi 模塊和 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)設(shè)計(jì)

4 結(jié) 語

本文設(shè)計(jì)了基于 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點(diǎn),采用ESP8266WiFi 模塊 + 傳感器采集數(shù)據(jù)與 NodeMCU 物聯(lián)網(wǎng)平臺的 MQTT 模塊實(shí)現(xiàn)傳感節(jié)點(diǎn)與數(shù)據(jù)采集中心交互,數(shù)據(jù)采集中心采用 Visual C# + MQTTnet 庫實(shí)現(xiàn)傳感節(jié)點(diǎn)的自動識別與控制、傳感節(jié)點(diǎn)數(shù)據(jù)的存儲與顯示。系統(tǒng)運(yùn)行穩(wěn)定,擴(kuò)展性強(qiáng),搭配不同傳感器就能實(shí)現(xiàn)特定的物聯(lián)網(wǎng)傳感節(jié)點(diǎn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉