韋 燚 曾海燕* 潘有椿 龐承諾
(廣西民族師范學院,廣西 崇左 532200)
隨著現(xiàn)代科學技術飛速地發(fā)展和普及,對設備的性能、精度要求越來越高,各類行業(yè)對生產(chǎn)所需要的原材料及成品保存管理更為精細。傳統(tǒng)的方式主要是靠人工去檢測溫濕度數(shù)據(jù),如今,采用人工輪流值班的方式已不能滿足當前的需求。通過人工輪流查詢數(shù)據(jù)的方式效率不僅低下,而且不能實時對某一環(huán)境下的溫濕度數(shù)據(jù)進行有效的測量。當溫度或者濕度超出指標時,會影響到成品的質量。設計一款環(huán)境溫濕度檢測系統(tǒng),能夠及時對環(huán)境內(nèi)的溫濕度進行檢測,確保貨物在環(huán)境內(nèi)安全存放。通過設計,實現(xiàn)遠程查看數(shù)據(jù),可以在手機或者電腦查看當前環(huán)境參數(shù)值,查看不同位置的環(huán)境參數(shù)。
根據(jù)需求設計這一系統(tǒng),能夠實時監(jiān)測倉庫及其他環(huán)境的溫濕度參數(shù),通過多點的方式,對環(huán)境系數(shù)進行判斷與測量,并將數(shù)據(jù)上傳到云平臺。設計一款手機App讀取云平臺的數(shù)據(jù),當數(shù)據(jù)超過限定值則做報警處理。
系統(tǒng)框架圖主要包含四個子系統(tǒng)、客戶端App以及云平臺。每個子系統(tǒng)均包含STM32單片機主控模塊、報警處理模塊、按鍵控制模塊、傳感器模塊、無線通信模塊、液晶顯示模塊。系統(tǒng)框架圖如圖1所示。子系統(tǒng)電路原理圖如圖2所示。單片機主控模塊采用的是STM32F1系列的最小系統(tǒng)-STM32F103C8T6,傳感器模塊采用的SHT30溫濕度傳感器,按鍵模塊采用的是輕觸開關,液晶顯示模塊主要采用的是輕量級的OLED,報警模塊主要是采用LED和蜂鳴器,無線通信模塊采用的是ESP8266,云平臺采用的是OneNET提供的云平臺服務。多個主控模塊分別通過多個無線通信模塊與云平臺相連接。子系統(tǒng)的主控模塊接收傳感器采集的數(shù)據(jù),并對數(shù)據(jù)分析與處理,通過液晶顯示屏將數(shù)據(jù)展現(xiàn)給用戶,所顯示的就是當前環(huán)境的溫濕度系數(shù)。經(jīng)過處理后的數(shù)據(jù)使用無線通信模塊上傳到云平臺,在電腦進行登錄就可以查看當前環(huán)境的溫度和濕度。通過手機App讀取云平臺的數(shù)據(jù),實現(xiàn)數(shù)據(jù)的同步。使用手機或者電腦都可以獲取當前環(huán)境的溫濕度系數(shù)。
圖1 系統(tǒng)框架圖
圖2 系統(tǒng)電路原理圖
單片機主控模塊采用的是STM32F1系列的最小系統(tǒng)——STM32F103C8T6,需要提供的工作電壓在2~3.6 V之間,超出該范圍電壓會導致芯片燒壞。選用這款類型的芯片主要是低功耗,封裝體積小,性價比較高,運行速度快。這款型號的單片機能夠實時處理傳感器所接收的數(shù)據(jù),起到整個子系統(tǒng)的控制作用。通過控制IO口輸出電平的高低,可對LED燈、OLED、蜂鳴器等設備做出響應。通過IIC通信方式可對數(shù)據(jù)進行有效的輸入與輸出,設備與設備之間進行數(shù)據(jù)的交互。在OneNET的C文件需要指定云平臺的產(chǎn)品ID,設備ID以及鑒權信息,指定當前子系統(tǒng)屬于產(chǎn)品下的子設備。
本設計采用的傳感器是SHT30,其優(yōu)點在于功耗小,體積小,易于安裝,精度較高,采用的是DFN封裝工藝。SHT30負責監(jiān)測當前范圍內(nèi)的濕度系數(shù)和溫度系數(shù)傳送給單片機主控模塊。這款傳感器測量的數(shù)據(jù)精度較高,溫度測量精度偏差可控制在0.3℃,濕度測量精度偏差可控制在2%之內(nèi)。
按鍵模塊采用的是輕觸開關,主要是調(diào)節(jié)溫度和濕度上下限值。每個按鍵對應不同的功能,用戶可以根據(jù)倉庫環(huán)境的不同,指定限值的高低。按鍵的第一個引腳與單片機相接,作為輸入引腳,第二個引腳接負極。當按鍵按下的時候,按鍵的兩個引腳成短路狀態(tài),向單片機輸入低電平。
液晶顯示模塊主要采用的是輕量級的OLED,主要功能是展示當前環(huán)境的溫濕度數(shù)據(jù)??梢燥@示漢字、字符串、字符、數(shù)字等,可通過字符和數(shù)字的組合形式顯示溫濕度數(shù)據(jù)。
報警模塊主要是采用LED和蜂鳴器的組合方式,當濕度或者溫度超出限定值的時候,就會觸發(fā)報警,提醒用戶。默認情況下,蜂鳴器和LED都是不通電的,處于低電平狀態(tài),蜂鳴器和LED使用并聯(lián)的方式連接。報警的形式是以蜂鳴器發(fā)出警報同時LED發(fā)光,直到溫濕度都低于指定值。
無線通信模塊采用的是ESP8266-01S,主要是將溫濕度數(shù)據(jù)上傳到云平臺,通過無線的方式實現(xiàn)單片機與云平臺數(shù)據(jù)的傳輸。這款WiFi模塊在性能方面上比較穩(wěn)定,工作溫度適應范圍較大,使用范圍比較廣,能夠在各種操作環(huán)境下正常工作。該模塊提供三種工作模式:第一種是串口無線AP模式;第二種是串口無線STA模式;第三種是串口無線AP+STA模式。在進行網(wǎng)絡傳輸?shù)臅r候,必須保證云平臺和ESP8266都處于在線狀態(tài),才能實現(xiàn)數(shù)據(jù)的傳輸。
主程序流程:首先初始化ESP8266、串口、OLED液晶顯示屏、IO口、STH30溫濕度傳感器等設備,并嘗試連接云平臺,沒有連接成功不會執(zhí)行后面的步驟,需要在此循環(huán)重新連接。云平臺連接成功之后,進行溫濕度數(shù)據(jù)的監(jiān)測,接著對鍵盤進行掃描,同時將溫濕度數(shù)據(jù)、限定值上傳到云平臺,并通過OLED展現(xiàn)當前狀態(tài)的數(shù)據(jù)。當程序檢測到按鍵按下時,則修改溫濕度的限定值。當檢測的溫度或者濕度超出指定閾值就會做報警處理。其流程如圖3所示。
圖3 系統(tǒng)主程序流程
按鍵的主要功能是控制溫濕度限定值的修改,當按下1、2鍵修改溫度的閾值,當按下3、4鍵修改濕度的閾值,如圖4所示。
圖4 按鍵控制流程
云平臺采用的是OneNET提供的云平臺服務,在平臺上面需創(chuàng)建對應的產(chǎn)品及其設備。云平臺與設備之間使用多協(xié)議接入下的MQTT協(xié)議,MQTT協(xié)議能夠更長的維持平臺與設備之間的連接,保持云平臺與設備的數(shù)據(jù)有效傳輸,滿足項目通信的需求。每一個設備需對STM32單片機提供鑒權信息、產(chǎn)品ID、設備ID等相關信息;對手機App提供APIKEY和API訪問地址。通過無線通信模塊連接OneNET的設備,將數(shù)據(jù)推送到云平臺,實時顯示當前溫濕度數(shù)據(jù),并提供歷史數(shù)據(jù)存儲功能。ESP8266與OneNET采用JSON類型的數(shù)據(jù)格式進行傳輸,云平臺會自動解析JSON格式的數(shù)據(jù)。數(shù)據(jù)可以轉成圖形界面,圖形數(shù)據(jù)信息是通過硬件程序命名的,如圖5所示。在同一個產(chǎn)品下,創(chuàng)建多個設備,每個設備對應一個子系統(tǒng),用來接收子系統(tǒng)上傳的數(shù)據(jù),實現(xiàn)倉庫環(huán)境的多點監(jiān)測,如圖6和圖7所示。
圖5 數(shù)據(jù)流
圖6 多點監(jiān)測設備
圖7 多點監(jiān)測子系統(tǒng)
本系統(tǒng)采用云平臺的方式,用戶可通過電腦登錄平臺查看溫濕度數(shù)據(jù),就可以解決人工現(xiàn)場勘察數(shù)據(jù),實現(xiàn)對數(shù)據(jù)的遠程監(jiān)測,監(jiān)測結果如表1所示。
表1 數(shù)據(jù)監(jiān)測結果
客戶端使用的是手機App,根據(jù)系統(tǒng)需求在Android Studio進行界面設計和開發(fā)。通過網(wǎng)絡讀取云平臺上的數(shù)據(jù),將接收的數(shù)據(jù)進行分析與處理,并在手機頁面顯示。設計手機App提供多個數(shù)據(jù)頁,每個數(shù)據(jù)頁對應一個子系統(tǒng)。避免數(shù)據(jù)全部堆在一起,可讀性差。在數(shù)據(jù)記錄的后面提供一個按鍵,當點擊某一個時間段時,可跳轉到當前時間段的歷史數(shù)據(jù)頁。手機App所呈現(xiàn)的數(shù)據(jù)有當前溫濕度數(shù)據(jù)、溫濕度指定報警值、歷史數(shù)據(jù)。獲取數(shù)據(jù)時需連接可用網(wǎng)絡,進入到App頁面,就可以實時刷新當前監(jiān)控環(huán)境的溫度和濕度的數(shù)據(jù)。當指定環(huán)境的數(shù)據(jù)超出預先設定的數(shù)值時,也就是某一個設備的監(jiān)測的數(shù)據(jù)超標時,會以短信發(fā)送的方式來通知用戶。短信內(nèi)容包含超出數(shù)據(jù)、上限值以及當前時間,如圖8所示。保證在一定的環(huán)境下,環(huán)境的數(shù)據(jù)偏高或者偏低,都能對指定的QQ郵箱發(fā)送消息。在開發(fā)手機App的時候,需要提供云平臺的設備的密鑰、設備的地址,采用的是GET請求方式,直接從URL地址獲取參數(shù)和數(shù)據(jù)信息。接收數(shù)據(jù)時,需要指定參數(shù)名,要與設備的某一個數(shù)據(jù)流的名稱一一對應。在手機App中,需要創(chuàng)建多個界面,需指定一個界面對應一個子系統(tǒng),為其每一個界面提供對應的設備密鑰和數(shù)據(jù)接收的地址,方便觀察數(shù)據(jù)的流動。提供歷史數(shù)據(jù)的查看,以確定當前平臺環(huán)境的安全。從云平臺接收數(shù)據(jù)限定值,當硬件設備對限定值進行更改,手機App也會實時同步。
圖8 報警圖
本系統(tǒng)主要是遠程監(jiān)測環(huán)境溫濕度數(shù)據(jù),通過無線傳輸?shù)姆绞?,在電腦或者手機App都能實時查看數(shù)據(jù)。在一個環(huán)境下,不同位置放置一個子系統(tǒng)進行數(shù)據(jù)的監(jiān)測,用戶根據(jù)位置的不同設定初始值。該系統(tǒng)適用于倉庫存儲、農(nóng)業(yè)大棚、工控行業(yè)、動物養(yǎng)殖、食品行業(yè)等環(huán)境。