?

基于云端的車內環境監控管理系統的開發

2024-01-23 07:32倪志平覃曉飛
物聯網技術 2024年1期
關鍵詞:服務端后臺溫濕度

倪志平,覃曉飛

(1.柳州工學院 信息科學與工程學院,廣西 柳州 545000;2.柳州工學院 保衛部,廣西 柳州 545000)

0 引 言

為了提高環境監控信息數據的準確性、真實性、實時性,促進信息管理的智能化、精細化、網絡化,為我國的環境保護事業長遠、合理、科學地發展提供不竭的動力和創新思想,應順應科學技術發展趨勢,根據現有環境、現有資源采取有效措施,對我國環境監測技術進行創新升級,將環境監控與物聯網技術進行有機整合,使終端系統與線上系統結合,讓終端硬件系統聯網,將數據送上云。通過終端系統采集數據后聯網發送到云端進行處理,然后保存至云端數據庫中,并通過前后端分離的后臺管理系統進行展示和處理,從而實現人、機、物的泛在連接,提供信息感知、數據傳輸、數據處理等服務,以此促進我國環境保護事業的進步與發展[1-4]。

1 系統的總體設計

1.1 系統整體架構

本文設計的基于阿里云IoT Studio 的環境監控系統的整體結構[1]如圖1 所示。終端硬件系統的傳感器檢測到數據后封裝成阿里云IoT 支持的數據格式并發送至阿里云物聯網平臺;數據到達阿里云后,管理員可通過阿里云IoT 提供的網頁端(IoT Studio)實時查看和顯示終端硬件系統傳來的溫濕度數據;阿里云IoT 會將接收到的數據通過AQMP 協議轉發至已準備好的服務器中,并由部署在服務器中的后臺管理系統對數據進行接收和處理,同時在后臺界面展示和處理數據。管理員能在任何地方聯網,通過后臺管理系統查看和處理從環境現場的終端硬件系統采集到的所有環境數據,從而實現環境監測系統的智能化、精細化、網絡化[5]。

圖1 系統整體結構

1.2 硬件終端設計

(1)NodeMCU 數據采集主控芯片

根據整體模塊設計可知,NodeMCU 的整個工作流程包括溫濕度傳感器的數據采集、主控模塊的數據處理、OLED屏顯示數值以及通過WiFi 將數據上傳云端等步驟。如圖2 所示是本系統下位機進行單次數據采集顯示并上云的工作流程。

圖2 終端溫濕度采集流程

(2)DHT22 溫濕度傳感器設計

DHT22 的驅動程序設計部分需要引入DHT 庫文件,使用DHT dht(對應引腳,模式)語句實例初始化DHT22 對應的引腳和模式后即可讀取溫濕度,dht.readHumidity()為讀取濕度值,dht.readTemperature()為讀取溫度值;同時需要配合DHT22 的采樣周期(2 s),因此在讀取溫濕度值之前要設置延遲2 s。DHT22 單次數據采集工作流程如圖3 所示,當讀取溫濕度數值失敗時將直接終止程序運行。

圖3 DHT22 溫濕度傳感器的工作流程

(3)OLED 顯示模塊設計

圖4 為本系統OLED 刷新一次顯示內容的程序流程。OLED 的驅動程序非常簡單,本系統使用的驅動庫為u8g2庫,OLED 的初始化和一系列操作只需調用相關庫方法即可。OLED 每次顯示新內容都需要清屏,然后寫入所顯示的字體類型以及顯示位置,最后寫入要顯示的數據。到此,OLED顯示內容的工作就完成了。其中所設置的坐標是否合適非常重要,這決定最終顯示的效果,同時還需要根據顯示屏大小控制所顯示數據的平面大小。

圖4 OLED 驅動程序流程

1.3 阿里云IoT 物聯網平臺管理設計

硬件設備接入阿里云IoT 需要使用MQTT 協議[6],同時阿里云IoT 對于設備接入也已為我們在Arduino 庫中加入了相關的SDK—AliyunIoTSDK。AliyunIoTSDK 是基于PubSubClient 底層庫開發,兼容列表與PubSubClient 相同,而PubSubClient 是對MQTT 進行了封裝以簡化開發的第三方庫。設備接入如圖5 所示。

圖5 硬件接入云

設備接入云所上傳的數據格式還需要根據阿里云IoT 的設備接入上傳數據的格式進行設計,需要上傳設備的產品密鑰、設備名稱、設備密鑰和所在的IoT Studio 區域,這些數據在阿里云物聯網平臺實例的設備管理中可以獲取。

圖6 為單次數據上傳阿里云的流程。設備接入云需要在Arduino 中引入兩個庫,一是AliyunIoTSDK 庫,另一個是PubSubClient 庫。在開發前需要在阿里云IoT 平臺的實例中新建產品和添加設備。新建產品步驟如圖7 所示,添加設備在產品菜單項第二項中添加即可,新建產品和添加設備的具體過程還需要根據實際應用而改變。有了產品和設備后可查看設備信息,設備證書如圖8 所示。根據設備信息調用AliyunIoTSDK 庫函數創建一個實例IoT,在每次讀取到溫濕度值時通過實例IoT 調用發送函數即可將數據上傳至阿里云。

圖6 數據上云流程

圖7 阿里云IoT 創建產品

圖8 設備證書

1.4 數據轉發服務器

數據轉發流程如圖9 所示。阿里云IoT 轉發數據可在規則引擎中設置[7],如圖10 所示。本系統使用服務端訂閱進行數據轉發,服務端訂閱有兩種方式:(1)AMQP 服務端訂閱消息;(2)MNS 服務端訂閱消息。本系統使用AMQP 服務端訂閱消息。AMQP(Advanced Message Queuing Protocol)為高級消息隊列協議,利用此協議可實現客戶端與消息中間件之間的信息交互,而且不受客戶端和中間件的不同產品、不同開發語言等條件的限制。

圖9 數據轉發流程

圖10 規則引擎

在阿里云物聯網平臺配置AMQP 服務端訂閱后,當對應終端硬件開始正常運行并將數據上云時,所配置的訂閱會將收到的數據通過AMQP 通道推送至已準備好的服務器[8]。而在服務器中,還需要編寫相應的AMQP 客戶端接口及業務邏輯用于接收和回應AMQP 服務端所發送的數據。

在AMQP 客戶端的應用實現方面,阿里云IoT 已經為我們提供了AMQP SDK 接入示例,我們可根據自己的需求更改[6]。

1.5 用戶后臺管理系統的設計

1.5.1 功能結構

后臺管理系統的功能結構如圖11 所示,擁有基礎的登錄退出功能以及登錄超時自動退出功能,并提供了一些對溫濕度數據進行基礎操作的功能,如歷史數據查詢、數據導出、數據刪除等[7]。

圖11 功能結構

1.5.2 架構設計

用戶后臺管理系統為前后端分離架構,前后端分離是為了實現前后端解耦[9],將前端和后端的工作界限分清,前端專門負責頁面跳轉、數據的展示與人機交互;后端則負責為前端提供數據接口,返回JSON 數據,為前端處理和存儲數據。應用分層如圖12 所示,明確了前后端分工,使兩者各司其職、互不干涉;同時,后端業務分層采用控制層、業務層、數據訪問層(數據持久層、通用處理層)三層架構,以實現系統的高內聚、低耦合。

圖12 架構設計

1.5.3 數據庫設計

本系統需要新建3 張數據庫表,分別是用戶表、存儲溫濕度數據的環境數據表、設置預警值及判斷每一刻溫濕度狀態的預警閾值表,數據庫ER 圖如圖13 所示。數據庫字段可根據需求自定義,即根據實際業務需求逐漸豐富和完善。由于本系統僅作為一個環境監測系統開發樣例,因此只需要較少字段即可達到展示效果。

圖13 數據庫ER 圖

2 系統的實現

2.1 設備終端實現

給下位機上電啟動后,系統正常監測到了溫濕度值并顯示在OLED 屏幕上,如圖14 所示;并且每當溫度超過預警值時,蜂鳴器將會報警。

圖14 設備終端的實現

2.2 阿里云IoT 數據接入與轉發的實現

阿里云IoT 平臺為我們提供了設備模擬器,能夠模擬終端設備與云端建立MQTT 連接、上報數據、接收云端控制指令以及物模型通信等完整過程。

成功啟動AMQP 客戶端后,客戶端程序會另開啟一個進程監聽10 min(為了節省資源,筆者設置為10 min),10 min 后客戶端沒有監聽到任何數據將會結束進程。如圖15所示,調試設備后啟動設備模擬器,選擇屬性上傳,填入對應屬性后點擊發送指令就完成了一次完整的服務流程。發送指令后可以看到右側日志打印的信息,成功模擬了終端設備將環境數據發送至阿里云IoT,阿里云IoT 也成功將數據轉發至AMQP 客戶端。

圖15 啟動AMQP 客戶端

2.3 阿里云IoT Studio 網頁數據的展示

IoT Studio 網頁數據的展示如圖16 所示,可以在網頁端實時查看溫濕度數據。

圖16 IoT Studio 網頁數據的展示

2.4 后臺管理頁面的實現

首先我們在本地啟動環境數據后臺管理系統,打開后臺界面進入登錄頁面,如圖17 所示;輸入賬號和密碼后進入首頁,在導航欄菜單項選擇進入數據監控頁,如圖18 所示。點擊圖中開關開始接收數據并進行監控,溫濕度的數據能夠正常顯示,并且顯示的顏色會隨著頁面下方的閾值范圍而變化;同時下方的表格也會記錄接收到的數據。改變溫濕度適宜范圍時,系統可以將數據同步至數據庫并提示同步成功,如圖19、圖20 所示。

圖17 登錄頁面

圖18 數據監控頁

圖19 開始監控界面

圖20 更新并同步溫濕度適宜范圍

在導航欄選擇進入數據觀測頁,首先看到的是默認加載每頁五條數據,并用不同顏色的標簽組件標識了每條數據的不同狀態,比如正常狀態為綠色,異常狀態為黃色,如圖21所示。同時,可通過表格上方的檢索框檢索出想要的數據,如圖22 所示,檢索出狀態正常、溫度為25℃、濕度為81%的所有數據;也可以通過時間段檢索出指定時間段的數據,如圖23 所示。

圖21 數據觀測頁

圖22 狀態和數值檢索

圖23 時間段檢索

3 結 語

本系統是對個別環境監測對象(溫濕度)進行監測并將數據接入阿里云IoT,阿里云IoT 將數據轉發至服務器后臺管理系統的工作流程及解決方案的開發案例,重點介紹和分析了下位機以及后臺管理系統的設計與實現方式,如下位機各功能模塊如何使用Arduino IDE 進行開發,后臺管理系統頁面跳轉、異步數據請求和界面UI 的設計與實現等。

本系統后臺管理系統所使用的的技術棧皆為目前主流技術,在行業內被大量應用于實際項目的開發。本系統的設計與實現為環境監測及物聯網應用提供了一個可行且技術棧為目前主流技術的解決方案及項目實施過程[10],進一步推進我國環境監測系統的發展,增加物聯網應用場景案例。

猜你喜歡
服務端后臺溫濕度
溫濕度控制器在回收砂冷卻系統中的應用
基于DSP的多路溫濕度監測系統
基于溫濕度控制的天氣預測裝置
云存儲中基于相似性的客戶-服務端雙端數據去重方法
新時期《移動Web服務端開發》課程教學改革的研究
后臺暗戀
在Windows Server 2008上創建應用
蒸發冷卻溫濕度獨立控制空調系統的應用
前臺、后臺精彩花絮停不了
以“后臺”的名義節省電池用量
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合