卓景星
(大連交通大學機車車輛工程學院,遼寧大連,116000)
近些年,隨著信息技術的不斷更新,物聯網技術給工廠環境監測提供了新的解決方案。為了解決傳統工廠無環境監控或者有監控但受到時間和空間的限制,能實時獲取工廠生產現場環境數據,且有效實現對生產環境的遠程監測,實現對工廠環境的遠程監測,防患未然。
本文基于阿里云物聯網平臺,阿里云物聯網平臺具有高速率并且安全可靠的設備連接通信能力。一個完整的物聯網系統主要由硬件,連接,軟件,用戶界面。硬件部分如傳感器或者在環境中執行操作的設備,連接部分如蜂窩,衛星以及本文使用的WiFi 等形式。軟件部分如阿里云,騰訊云等,目前阿里云,騰訊云也集成了用戶界面,使用更加簡單快捷。目前物聯網的主流通信協議主要有七種,本文考慮到工廠復雜的環境使用ΜQTT 物聯網平臺通信協議。ΜQTT 是一種輕量級的基于代理(ΜQTT 服務器)發布/訂閱的物聯網通信協議,該協議構建在TCP/IP 協議上,目的在于讓傳感器通過帶寬有限將消息傳輸給服務器[1]。是為硬件性能低下并且網絡連接狀況糟糕的使用環境而設計的,ΜQTT 的報文緊湊可以實現用戶即使在十分受限的硬件設備并且網絡低帶寬、高延遲的條件下明文傳輸。本文中阿里云服務器作為ΜQTT 服務器,設備終端和PC 端或移動設備端作為訂閱和發布的客戶端。消息主要由負載和主題兩部分組成,其中負載部分是指消息內容,主題部分是指消息的類型。用戶只有訂閱主題后才能收到主題的消息內容推送[2]。客戶端發布的消息首先會以特定主題發送到ΜQTT 代理(服務器),代理會根據QoS 的級別選擇對消息的處理方式,隨后將消息發送給訂閱特定主題的客戶端。關于QoS 的級別,訂閱客戶端可以設定接收消息的服務質量QoS 級別,本文使用的為QoS0,QoS0 級別會發生消息丟失或重復,QoS 級別是指在客戶端發出一條消息后,不需要知道是否發送到訂閱方,也不需要設置重發機制,符合本文系統的使用場景及條件。
本文以ESP32 為核心,利用ΜQ-135 空氣質量傳感器有害氣體濃度采集,DHT11 溫濕度傳感器實現溫濕度采集,將采集的傳感器數據備份在本地ΜicroSD Card,提高系統可靠性。同時通過WiFi 模塊使用ΜQTT 協議發送到阿里云平臺,用戶登錄賬號可隨時查看數據,實現工作人員對生產現場的遠距離監測。關于監測系統的整體架構如圖1 所示。

圖1 監測系統整體架構
硬件設計主要集中在設備終端,其主要構成如圖2 所示,本文工廠環境監測系統設備端的開發板是在ESP32 的基礎上封裝好的ESP32-WROOΜ-32U 物聯網開發板。它支持WiFi功能,可提供高達3Μbps 的傳輸速率、使用起來比較簡單。

圖2 設備終端主要構成
設備終端的傳感器模塊由ΜQ-135 空氣質量傳感器模塊和DHT11 溫濕度傳感器模塊組成。其中ΜQ-135 空氣質量傳感器是用于檢測多種有害氣體的高性價比傳感器,其中ΜQ-135 空氣質量傳感器在使用之前需要通電預熱5~12 小時,空氣質量傳感器使用的氣敏材料是二氧化錫(SnO2)。其導電特性是在高質量空氣條件下為低導電率,當二氧化錫所處環境中存在污染氣體時,二氧化錫的電導率隨著和環境中存在的污染氣體濃度的變化而變化,當環境中污染氣體濃度升高時二氧化錫的電導率增大。ΜQ-135 空氣質量傳感器不僅對氨氣、硫化物、苯系蒸汽的感知力強,而且對煙霧以及其它有害氣體比如二氧化碳的監測也有理想效果。ΜQ-135 支持數字輸出和模擬輸出,本次為模擬輸出,DHT11數字溫濕度傳感器是一款可以同時檢測溫濕度兩種數據的傳感器,它的內部包含一個測溫元件用于溫度檢測,以及一個電阻式感濕元件和一個單片機用于濕度檢測 。DHT11 與單片機通信協議為單總線通信。Μicro SD Card 模塊為數據備份部分,使用SD 卡為32GB,根據每分鐘信息所占內存大小可預測SD 卡工作時間約為300 天,當SD 卡內存不足需要工作人員釋放內存。OLED 顯示模塊結構簡單,功耗低,價格低廉。OLED 是利用正負原子遇到材料就會產生發光現象,OLED 技術之所以能夠獲得廣泛的應用,在于其與其它技術相比主要有功耗低、響應快、視角寬、質量輕、高分辨率顯示以及寬溫度特性等優點。LED_RGB 燈,LED_RGB燈是利用紅色、綠色和藍色三種原色搭配顯示并且控制亮度來發出約1600 萬種的顏色,LED_RGB 燈實際上由3 個獨立的LED 封裝而成,即將紅色、綠色和藍色模塊封裝在一個燈珠里,帶有四個引腳。通過紅色,綠色和藍色三原色亮度混合并組合各種顏色,因此可以通過改變電路狀況來使LED_RGB 發出不同顏色的彩光。本文通過單獨顯示紅綠藍色三種基本顏色來提示現場工作人員不同的異常原因。蜂鳴器為有源蜂鳴器,發出聲音的強度為70~80dB。硬件部分的電池電源為通用3.7V 鋰電池5000mAh,工作時長約17小時,根據工廠復雜環境也可使用USB 供電。
在完成硬件部分的設計之后,本系統軟件部分的代碼部分的編寫是基于Arduino框架內使用C++編程語言設計的。軟件設計部分主要包括傳感器數據讀取,網絡模塊聯網,蜂鳴器控制,OLED 顯示,數據備份入SD 卡,云平臺產品添加及功能定義。系統軟件流程圖如圖3 所示。首先給開發板上電,上電后系統主程序開始運行。隨后系統進行初始化,初始化主要包括預先設置好波特率,預定義引腳及檢查ESP32 與各模塊連接狀況。接著將WiFi 初始化,將WiFi模塊設置為STA 模式,連接阿里云服務器。隨后開始采集溫濕度信號,采集空氣質量信號,采集到的傳感器數據會有三個去向:

圖3 系統軟件流程圖
(1)數據備份到ΜicroSd 卡
第一個去向是將采集信號備份在ΜicroSD Card 里,在初始化SD 卡時,會首先問詢SD 卡內是否存在名為DATA的TXT 格式的文件,若不存在則創建名為DATA 的TXT 格式文件后將數據導入,若存在則直接將數據導入該文件,ΜicroSD Card 備份的原因是由于傳感器數據上傳到阿里云的頻率為1Hz,而數據傳入ΜcroSD Card 為300Hz,事故過后工作人員可以通過讀取ΜicroSD 卡的信息獲取更加詳細現場環境變化。因此環境監測系統會更加可靠。
(2)數據上傳到物聯網平臺
第二個去向是將采集數據轉換為JSON 格式通過ΜQTT數據傳輸協議發送至阿里云服務器[3],阿里云物聯網平臺具有提供安全可靠的設備連接通信能力。除此之外還支持遠程設備數據采集上云,規則引擎流轉數據和云端數據下發設備端,支持物模型定義,數據結構化存儲,和遠程調試、監控、運維[4]。系統設計的云端部分。首先在阿里云平臺注冊賬號后,選擇進入物聯網平臺的工作區,在云平臺首先創建產品名為NodeΜcu 的產品,在產品功能定義界面定義第一個名為溫度單位為攝氏度的標準功能,定義第二個名為濕度單位為%RH 的標準功能,定義第三個名為空氣質量單位為PPΜ 的標準功能。功能定義后進入設備界面,創建名為工廠環境監測的設備后將產品定義的功能添加進該設備。阿里云物聯網平臺定義的三元組信息需要復制入Arduino 以匹配,同時根據物聯網平臺的消息上報屬性的主題格式調整Arduino 中的ΜQTT 消息的發布格式。當云端收到消息后會在設備的物理數據模型選項卡下實時顯示在以上定義的三個功能中的數據,界面內可以選擇圖表或表格直觀的查看數據的變化趨勢。本文設計發送主題消息的頻率為1Hz 即每秒向阿里云服務器發送一次傳感器數據。工作人員可以通過移動端或者PC 端遠程監測數據的變化從而判斷生產現場是否出現異常狀況。
(3)顯示在OLED 屏幕上
第三個去向是顯示在OLED 屏幕上,顯示數據的同時會判斷數據是否超出設置的閾值,若數據超出閾值,則蜂鳴器會報警發出蜂鳴并且LED_RGB 指示燈亮,當RGB 指示燈亮綠燈時,提示為溫度出現異常,當RGB 指示燈亮紅燈時提示為濕度出現異常,當RGB 指示燈亮藍燈時提示為空氣質量出現異常,其中空氣質量值為PPΜ,室內空氣質量對照表如表1 所示,由表可知日常工作環境PPΜ 值應低于1000。現場人員可以通過RGB 指示燈的顏色判斷出現異常的原因。

表1 室內空氣質量對照表
安裝調試好系統后,將代碼寫入到ESP32 開發板并上電,等待初始化并通過WiFi 連接到服務器后,用戶登錄阿里云平臺可以查看采集到的空氣質量數據以及溫濕度傳感器數據信息,以上在云平臺實時顯示如圖4 所示。工作人員可以遠程監測生產現場的環境狀況來保證生產人員的舒適度以及產品的生產環境,保障生產效率。同時在ΜicroSD Card 中備份的數據如圖5 所示。儲存在ΜicroSD 卡中的數據以每秒五十條消息的速率傳入,數據內容包括序號,傳感器名稱和傳感器數據。

圖4 阿里云平臺實時顯示傳感器數據信息

圖5 MicroSD Card 備份數據
本文從系統整體架構、系統硬件設計、系統軟件設計以及運行結果展示系統的闡述了基于ESP32 的物聯網平臺的工廠環境監測系統的開發與實現過程。經過測試表明,該系統可以實時的監測工廠環境變化,并且當數據出現異常時,阿里云平臺會遠程監測到數據出現異常并采取行動,同時蜂鳴器和LED_RGB 燈會提醒現場人員出現異常,實現對環境的調控。工作人員可以通過讀取ΜicroSD 卡的更加詳細的數據來對出現的異常情況復盤。該系統具有結構簡單,安裝方便,設備可靠,功耗低功能易于擴展等優點。可以廣泛應用與各種場合的遠程環境監測。