掃描二維碼
隨時隨地手機看文章
0 引 言
隨著物聯(lián)網(wǎng)技術日趨成熟,物聯(lián)網(wǎng)已被廣泛應用在醫(yī)療、交通與物流、能源與公用事業(yè)、零售業(yè)等領域 [1]。據(jù)思科公司(Cisco)思科視覺化網(wǎng)絡指數(shù)顯示,到 2022 年全球有超過半數(shù)設備和連接將會是機器對機器(M2M)的互聯(lián),比2017 年增加 34%。智能音箱、固定設備、移動設備及其他物件的連接數(shù)將從 2017 年的 61 億增至 2022 年的 146 億 [2]?;ヂ?lián)設備的數(shù)量和類型越來越多,應用環(huán)境日趨復雜,實現(xiàn)資源有限或帶寬有限環(huán)境下的傳感器聯(lián)網(wǎng)和保證傳感數(shù)據(jù)的可靠傳輸成為物聯(lián)網(wǎng)技術應用應重點考慮的問題之一。
物聯(lián)網(wǎng)傳感節(jié)點作為物聯(lián)網(wǎng)和物理世界交互的邊界節(jié)點,負責信息的采集和簡單處理,與將數(shù)據(jù)傳輸?shù)綉脤舆M行數(shù)據(jù)分析和處理 [3]。傳感器節(jié)點的通信方式主要分為近距離通信和遠距離通信,傳感器節(jié)點之間一般采用短距離無線通信,如藍牙,ZigBee,WiFi等 ;傳感器與物聯(lián)網(wǎng)云服務器或應用服務器采用遠距離通信,如固網(wǎng)、移動網(wǎng)絡
(2G/3G/4G)、NB-IoT網(wǎng)絡等。無線網(wǎng)絡連接類型(WiFi、移動網(wǎng)絡)是主流?,F(xiàn)在越來越多的應用場合要求傳感器節(jié)點自帶接入網(wǎng)關,即支持物聯(lián)網(wǎng)網(wǎng)絡接入服務。由于傳感器節(jié)點資源有限,受 CPU處理能力、內存等限制,通常在LwIP協(xié)議棧上采用輕量級物聯(lián)網(wǎng)傳輸協(xié)議。目前,應用最廣泛的物聯(lián)網(wǎng)標準傳輸協(xié)議包括 MQTT、CoAP。MQTT是一種在 TCP/IP協(xié)議上的基于訂閱 /發(fā)布模式的輕量級傳輸協(xié)議, 適用于引入第三方云平臺的物聯(lián)網(wǎng)應用。CoAP 即約束應用協(xié)議,類似 HTTP,是一種文檔傳輸協(xié)議,也是一種基于請求 / 響應的客戶端 / 服務器端輕量級 UDP 傳輸協(xié)議,適合將物聯(lián)網(wǎng)應用嵌入到現(xiàn)有 Web 服務器中 [4]。
本文基于 ESP8266 WiFi 模塊和 MQTT 協(xié)議設計了一種低成本物聯(lián)網(wǎng)傳感節(jié)點,以 ESP8266 嵌入式處理器為核心,采用 AM2302 傳感器采集溫濕度數(shù)據(jù),進行簡單處理后將傳感數(shù)據(jù)通過 MQTT 協(xié)議發(fā)布到百度天工物聯(lián)網(wǎng)云平臺IoTHub。數(shù)據(jù)采集中心采用 Visual C# 實現(xiàn),能自動識別傳感節(jié)點和訂購傳感器的數(shù)據(jù),可保存、處理和顯示傳感節(jié)點的溫濕度數(shù)據(jù)。數(shù)據(jù)采集中心可通過云平臺 IoTHub 下發(fā)命令,實現(xiàn)傳感器節(jié)點參數(shù)配置并讓傳感節(jié)點執(zhí)行指定操作(打開/ 關閉繼電器)。傳感器節(jié)點性能可靠,擴展性強,通用性好。
1 系統(tǒng)總體結構
系統(tǒng)由傳感節(jié)點、數(shù)據(jù)采集中心和百度天工物聯(lián)網(wǎng)云平臺組成,如圖 1 所示。傳器節(jié)點由ESP8266 和 AM2302 構成, 實現(xiàn)溫濕度的采集和上報 ;數(shù)據(jù)采集中心基于 Visual C# 開發(fā),實現(xiàn)傳感數(shù)據(jù)的接收、存儲、分析和顯示 ;百度天工物聯(lián)網(wǎng)云平臺 IoTHub 作為 MQTT 消息代理,負責主題訂閱管理、消息轉發(fā)和緩沖,實現(xiàn)傳感節(jié)點與數(shù)據(jù)采集中心的信息交互。傳感節(jié)點與數(shù)據(jù)采集中心的交互數(shù)據(jù)類型為 JSON 格式。
2 傳感節(jié)點設計
傳感節(jié)點負責采集感知對象相關信息,并通過相應的通信模塊將數(shù)據(jù)通過 MQTT 消息代理推送到遠端數(shù)據(jù)采集中心。
2.1 硬件設計
傳感節(jié)點以 ESP8266EX WiFi 模塊為核心,通過 I/O 外接傳感器 AM2302 及其他設備。傳感節(jié)點硬件框圖如圖 2 所示。
ESP8266 WiFi 模塊集成了一 ESP826EX 芯片和一 4 MB SPI FLASH,帶有 PCB WiFi 天線,支持三種 WiFi 工作模式(SoftAP,Station,SoftAP+Station)。ESP826EX 擁有完整的 WiFi 功能,內嵌 Tensilica’s L106 32 位內核處理器,CPU 時鐘速度為 80 MHz,最高可支持 160 MHz,集成片上 SRAM, 可獨立作為 MCU 并通過 I/O 外接傳感器實現(xiàn)物聯(lián)網(wǎng)應用。ESP8266 WiFi 模塊支持 IEEE802.11 b/g/n 無線標準與 IPv4, TCP/UDP/HTTP/MQTT 等協(xié)議 [5]。AM2302 是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器,它包括一個電容式感濕元件和一個高精度 NTC 測溫元件。AM2302 的溫度測量精度為 1 ℃,濕度測量精度在 5% 以內 [6]。AM2302 與ESP8266EX 通過單總線協(xié)議通信,占用一個 GPIO 端口。
2.2 軟件設計
傳感節(jié)點軟件基于 NodeMCU 固件開發(fā)。NodeMCU 固件使用 Lua 腳本語言編程,在樂鑫 ESP8266 Non-OS SDK 上開發(fā)而來。NodeMCU 固件封裝了 ESP8266 硬件操作的應用編程接口函數(shù) API,同時還提供 I2C,SPI,UART 等外設總線驅動函數(shù)及 OLED/TFT 顯示驅動、各種類型傳感器驅動、網(wǎng)絡協(xié)議庫(TCP/UDP,HTTP,MQTT 等),開發(fā)者無需了解底層硬件驅動即可快速開發(fā)應用。傳感節(jié)點程序主要通過數(shù)據(jù)采集模塊、MQTT 客戶端和網(wǎng)絡連接模塊實現(xiàn)。數(shù)據(jù)采集模塊負責定時讀取溫濕度數(shù)據(jù) ;MQTT 客戶端負責維護與MQTT 消息代理 IoTHub 的連接、發(fā)布傳感數(shù)據(jù)、接收并響應數(shù)據(jù)采集中心的命令 ;網(wǎng)絡連接模塊負責 WiFi 連接。系統(tǒng)軟件主流程如圖 3 所示。
2.2.1 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊創(chuàng)建了一個 tmr 定時器,周期調用 dht 庫的 read()函數(shù)讀取溫濕度數(shù)據(jù),再使用 string.format 函數(shù)將溫濕度數(shù)據(jù)轉換為 JSON 格式。讀取傳感器數(shù)據(jù)代碼 :
pin = pin or 2
status,temp,humi,temp_dec,humi_dec = dht.read(pin)
將溫濕度轉換為 JSON 格式代碼 :
topicmsg='{"reported" :{"time" :"%d","temperature" :%0.2f,
"humidity" : %0.1f}}'
msg = string.format(topicmsg,rtctime.get(),temp,humi)
2.2.2 MQTT客戶端
傳感節(jié)點和數(shù)據(jù)采集中心基于訂購 / 發(fā)布機制的 MQTT 協(xié)議通信進行信息交互。傳感節(jié)點和數(shù)據(jù)采集中心作為MQTT 客戶端,百度 IoTHub 云平臺作為 MQTT 代理。消息的發(fā)布和訂購基于主題(topic)進行。MQTT 代理負責管理訂閱關系或緩存消息(保留標志為真的消息),將消息轉發(fā)給已訂閱主題的 MQTT 客戶端。為了實現(xiàn)傳感節(jié)點與數(shù)據(jù)采集中心的數(shù)據(jù)交互,兩者發(fā)布與訂閱的主題見表 1 所列。
傳感節(jié)點 MQTT 客戶端初始化代碼如下 :
msghandler 為訂購消息處理函數(shù),用于解析和處理從數(shù)據(jù)采集中心收到的 JSON 格式數(shù)據(jù)。JSON 數(shù)據(jù)采用鍵(key) 值(value)對結構,key 可用來表示消息類型,value 為消息內容。JSON 格式數(shù)據(jù)用 sjson 模塊的 decode()函數(shù)解析成 table 表格數(shù)據(jù)。傳感節(jié)點調用 publish 函數(shù)向某個主題發(fā)布消息, 語法 :mqtt :publish(topic,payload,qos,retain[,function(client)])。topic 是發(fā)布的主題 ;payload 為將發(fā)布的消息 ;qos 為QoS 服務質量 ;0 表示只發(fā)送最多一次便可送達,1 表示至少一次可送達,2 表示一次便到達 ;Retain 為保留標志,指示服務端是否需要存儲當前消息 ;function(client) 為消息發(fā)布成功回調函數(shù),在收到代理發(fā)布確認 PUBACK 消息后執(zhí)行函數(shù)。
3 數(shù)據(jù)采集中心設計
數(shù)據(jù)采集中心負責傳感節(jié)點的管理及傳感數(shù)據(jù)的顯示, 其中傳感節(jié)點管理包括節(jié)點自動識別、節(jié)點主題訂閱、節(jié)點控制等。數(shù)據(jù)采集中心與傳感節(jié)點通過 MQTT 協(xié)議的訂購 / 發(fā)布機制進行異步通信,兩者不必知道對方的 IP 地址,所有消息均通過 MQTT 消息代理轉發(fā)。數(shù)據(jù)采集中心識別傳感節(jié)點流程如圖 4 所示。傳感節(jié)點上線時向主題 $baidu/iot/ general/data/id/status 發(fā)布保留標志為真的消息“online”,離線時通過最后遺囑(Last Will)發(fā)布離線消息“offline”。數(shù)據(jù)采集中心連接到 MQTT 消息代理 IoTHub, 在訂閱主題$baidu/iot/general/data/+/status 后,會收到所有傳感節(jié)點的狀態(tài)消息,從消息主題解析出節(jié)點 ID(+ 通配符所對應的字段),如果是新節(jié)點,則先添加節(jié)點再更新狀態(tài),否則直接更新節(jié)點狀態(tài)。
數(shù)據(jù)采集中心訂購傳感節(jié)點主題 $baidu/iot/general/data/ id/data 后, 當傳感節(jié)點向此主題發(fā)布消息時, 消息代理IoTHub 將會把消息轉發(fā)給數(shù)據(jù)采集中心。數(shù)據(jù)采集中心收到傳感節(jié)點數(shù)據(jù)后,解析 JSON 格式消息獲得消息的數(shù)據(jù)類型。如果是傳感數(shù)據(jù),則存儲后顯示 ;如果是傳感節(jié)點配置信息,則存儲到節(jié)點信息。信息處理流程如圖 5 所示。
數(shù)據(jù)采集中心界面如圖 6 所示。界面上部分顯示節(jié)點列表及最新的節(jié)點傳感數(shù)據(jù),下部分顯示節(jié)點數(shù)據(jù)曲線圖。
4 結 語
本文設計了基于 MQTT 協(xié)議的物聯(lián)網(wǎng)傳感節(jié)點,采用ESP8266WiFi 模塊 + 傳感器采集數(shù)據(jù)與 NodeMCU 物聯(lián)網(wǎng)平臺的 MQTT 模塊實現(xiàn)傳感節(jié)點與數(shù)據(jù)采集中心交互,數(shù)據(jù)采集中心采用 Visual C# + MQTTnet 庫實現(xiàn)傳感節(jié)點的自動識別與控制、傳感節(jié)點數(shù)據(jù)的存儲與顯示。系統(tǒng)運行穩(wěn)定,擴展性強,搭配不同傳感器就能實現(xiàn)特定的物聯(lián)網(wǎng)傳感節(jié)點。
物聯(lián)網(wǎng) (IoT) 正在興起。智能設備正在釋放技術優(yōu)勢,幫助人們創(chuàng)造附加值,提高行業(yè)生產(chǎn)率。然而,物聯(lián)網(wǎng)也帶來了許多挑戰(zhàn),例如新技術的復雜性,以及獲取和處理數(shù)據(jù)以做出明智決策的需求。換句話說,將產(chǎn)品特性轉化為系統(tǒng)解決方案...
關鍵字: 英飛凌 物聯(lián)網(wǎng)Semtech LoRa?設備和LoRaWAN?通訊協(xié)議助力實現(xiàn)更及時、高效、智能的智慧校園室內空氣質量監(jiān)測。
關鍵字: 物聯(lián)網(wǎng) 人工智能擁有 5G、人工智能、物聯(lián)網(wǎng)等新技術的支撐,智能家居行業(yè)逐漸從單品智能邁入全屋智能階段 。其由于全屋智能產(chǎn)品特殊性,落地安裝涉及到方案場景設計、布線,安裝,施工、后期維護更新等多個環(huán)節(jié),整體最好的實施路徑是通過房屋整體裝...
關鍵字: 全屋智能 5G 物聯(lián)網(wǎng)經(jīng)過幾十年發(fā)展,嵌入式技術已經(jīng)用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業(yè)性強的屬性,讓很多非嵌入式領域的同學望而卻步。近十幾年的發(fā)展,物聯(lián)網(wǎng)覆蓋了越來越多領域,包括了家居,商業(yè),工業(yè),農(nóng)業(yè)等領域,不僅吸引...
關鍵字: 嵌入式 物聯(lián)網(wǎng) 技術隨著IT技術飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進入了“物聯(lián)網(wǎng)”時代。物聯(lián)網(wǎng)中需要的大量設備不在依賴人與人之間的交互產(chǎn)生聯(lián)系,更多通過協(xié)議、通信、程序設計等方式連接到一處。即 “物聯(lián)網(wǎng)”的目的則是讓所有的物品都具有計算機的智能但并不以通...
關鍵字: 嵌入式 物聯(lián)網(wǎng) 計算機物聯(lián)網(wǎng)正在擴大規(guī)模并加速發(fā)展,進而驅動著全新的經(jīng)濟。而Arm生態(tài)系統(tǒng)正是這一巨大機遇背后的推動力。
關鍵字: ARM 物聯(lián)網(wǎng)1月14日,翱捷科技在上海證券交易所科創(chuàng)板上市,成為A股基帶芯片第一股。公司證券代碼為688220,發(fā)行價格164.54元/股,發(fā)行市盈率為83.65倍。截至發(fā)稿,翱捷科技跌約30%,報115.91元/股,單簽虧損已經(jīng)接...
關鍵字: 翱捷科技 芯片 物聯(lián)網(wǎng)大數(shù)據(jù)將是下述內容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關情況以及信息有所認識和了解,詳細內容如下。
關鍵字: 大數(shù)據(jù) 物聯(lián)網(wǎng) 分布式智慧工地將是下述內容的主要介紹對象,通過這篇文章,小編希望大家可以對智慧工地的相關情況以及信息有所認識和了解,詳細內容如下。
關鍵字: 智慧工地 智慧城市 物聯(lián)網(wǎng)從碳達峰到碳中和,無疑是需要付出艱苦努力的。對于半導體行業(yè)從業(yè)者們來說,則意味著一系列與新能源、電子轉換、節(jié)電相關的技術產(chǎn)品需求會在未來幾年內迅速升溫。我們有理由相信,面對浩瀚如海洋星辰的物聯(lián)網(wǎng)產(chǎn)業(yè),通過持續(xù)的材料、技術...
關鍵字: 英飛凌 功率器件 物聯(lián)網(wǎng)