(沈陽工業大學 信息科學與工程學院,沈陽 110870)
“民以食為天”這句話說明了我國的餐飲行業是一個不會衰落的行業。近幾年隨著經濟的發展,我國餐飲市場也得到了巨大的發展。與此同時餐飲業油煙排放沒有得到有效控制,大量未經過凈化處理或凈化不合格的油煙排放到大氣中,該油煙對空氣質量的影響越來越大[1]。國家早在2001年頒布《飲食業油煙排放標準》[2],對油煙排放濃度有著明確的界定。但直至目前為止,國內的大部分環保部門對于油煙檢測都采用化學試劑檢測的方法[3-5],即現場采樣抽取排油煙管道內的氣體帶回實驗室檢測出油煙濃度。該方法人工成本高,無法實時掌握餐飲企業排放的油煙數據,導致環保部門無法對餐飲企業進行有效的實時監督與管理。
目前通信技術廣泛發展。傳輸數據無論是在速率和可靠性方面都有顯著的提升。本文基于以上背景,設計開發一種在線實時的油煙監測系統。該系統由氣體和溫度傳感器實時采集油煙數據,并通過GPRS通訊實時的將數據發送至服務器,并將數據存入數據庫。用戶可通過訪問服務器監測相關餐飲企業排放的油煙數據。高效穩定的系統節省了人力,提高了監管部門對環境的監控力。
為解決環保檢測的實時性、檢測成本高等問題,系統需要具有以下功能:1)數據采集:通過傳感器實時采集油煙數據;2)實時通訊:將采集到的數據實時的發送至服務器,服務器反饋給發送端是否收到數據以及數據是否合格;3)數據存儲功能:將油煙數據存入數據庫以便查詢、統計和導出等;4)實時數據顯示:顯示餐飲企業排放的實時油煙數據;5)實時位置顯示:顯示傳感器的實時地理位置;6)超標提示:根據《飲食業油煙排放標準》的規定,在進行油煙數據顯示時,對超過標準的油煙數據進行標注并在監測網站顯示;7)數據查詢:具有歷史數據查詢、超標數據查詢、實時數據查詢功能;8)設備管理:具有對油煙檢測設備信息進行增、刪、改、查的功能;9)用戶管理:具有對用戶信息進行增、刪、改、查的功能;10)用戶登陸功能:訪問服務器需要填寫正確的賬號密碼。
本系統由采集、通訊、服務器和用戶交互4個模塊組成。其中,采集模塊由油煙檢測探頭和油煙檢測節點組成。其中,油煙檢測探頭由傳感器、A/D轉換器和CAN總線組成。油煙檢測節點由單片機和通訊模塊組成。檢測探頭中的傳感器負責實時采集油煙數據(油煙濃度、溫度、電流、電壓、經度、緯度和設備運行狀態),該數據通過CAN總線傳輸至油煙檢測節點。檢測節點中的通訊模塊負責將數據通過GPRS傳輸至服務器。服務器模塊作為監測網站的后臺支撐,為實時數據顯示、實時曲線顯示、歷史數據查詢、超標記錄查詢、用戶信息管理、設備信息管理和數據存儲功能提供服務。用戶交互模塊負責處理用戶通過監測網站訪問服務器時的操作,根據不同操作,瀏覽器顯示不同的結果。系統總體功能如圖1所示。

圖1 系統總體功能圖
本系統中硬件的核心為油煙采集模塊,該模塊包含油煙檢測探頭和油煙檢測節點,如圖2所示。

圖2 油煙采集模塊硬件設計圖
油煙檢測探頭包括傳感器、AD轉換器和CAN總線模塊。其中,傳感器包括氣體傳感器和溫度傳感器。氣體傳感器采用 TGS2602型號傳感器[6]。該傳感器性能穩定,優點多:功耗小、對烹飪氣體敏感、成本低、穩定性強、應用電路簡單。對于溫度的檢測則采用DS18B20溫度傳感器[7],該傳感器的測溫范圍-55~125 ℃,分辨率最大可達0.062 5 ℃,可用于油煙環境中。具有不需要A/D轉換器就可直接輸出數字信號、外圍電路少、適合長距離傳輸等特點。本文中的CAN總線通信,符合ISO 11898標準。采用ADM3053模塊,內部集成了DCDC轉換器,省掉了光耦隔離,不僅可以隔離單片機與油煙檢測探頭通信的信號和電源,而且可以節省資源。
油煙檢測節點包括微處理器和GPRS通訊模塊。微處理器采用STM32F407,該處理器具有高性能、處理數字信號、低功耗、低電壓和高度集成等特點,可滿足本系統的硬件要求。GPRS通訊模塊采用SIM868,該模塊具有通訊和定位穩定的優點。處理器通過AT指令可控制SIM868模塊收發數據的功能。
由于油煙檢測節點(下位機)與服務器(上位機)距離遠,進行有線傳輸成本高,可實施性差,本文采用GPRS無線通訊技術。該技術具有傳輸數據速率高,成本低和零掉線等特點。
系統中的通訊功能基于TCP/IP網絡通訊協議,油煙數據按照本文設計的通訊格式打包,打包后的數據由下位機以GPRS無線通訊方式發送至上位機。處理器STM32F407通過AT指令與上位機建立TCP連接后,便可按照規定的通訊格式向上位機發送數據。在數據發送功能中,上位機接收到數據后自動向下位機發送反饋數據。其通訊格式如表1所示。

表1 上位機發送數據通訊格式
在數據接收功能中,上位機無需向下位機發送查詢指令,下位機定時自動的發送數據至上位機。其通訊格式見表2。

表2 上位機接收數據通訊格式
其中油煙數據按照存儲結構存放在數據區內,數據區長度為14個字節,數據區具體內容見表3,數據區存儲結構見表4。

表3 數據區內容

表4 數據區存儲結構
上位機部分采用Java語言和MINA通訊框架[8]編寫。MINA框架基于Socket網絡通訊[9-10],由于網絡傳輸的數據都是二進制數據(byte),與程序中的Java對象編碼方式不同。所以在上位機發送和接收數據時,需要對數據進行編碼和解碼操作。而在上位機進行編碼或解碼前,需判斷數據是否滿足通訊格式。不滿足條件的數據不進行編碼或解碼處理,不存入數據庫。只將日志信息發送至服務器。這種數據預處理可減少不必要的通訊,并緩解數據庫壓力。
圖3中顯示了上位機接收數據時,根據數據的報頭長度、數據頭、數據接收命令、數據長度和CRC校驗結果,綜合判斷該數據是否可進行解碼操作。

圖3 接收數據預處理
服務器模塊采用顯示(Web)、服務(Service)和持久(Dao)層三層架構開發[11],并采用接口式編程。Web層負責與客戶端交互;Service層負責處理復雜的業務邏輯;Dao層負責與數據庫交互。系統服務器模塊結構如圖4所示,監測網站與用戶交互屬于Web層,并需要后臺服務的支撐。
本文在設計Web層采用MVC(Model-Controller-View)設計模式。Model常用于封裝數據。Controller位于Model和View之間,負責接收用戶輸入,將輸入解析后反饋至Model。View負責頁面顯示。該模式提高開發效率,降低代碼耦合度,提高程序的可維護性和拓展性。
服務器模塊具有如下功能:1)實時數據:通過點擊地圖上的標記,顯示該企業排放的實時油煙數據;2)實時曲線:實時數據繪制實時油煙、實時溫度、實時電流曲線圖,可直觀地反應企業一段時間內排放的油煙數據;3)歷史數據查詢:查詢餐飲企業排放的油煙歷史數據;4)超標記錄查詢:查詢餐飲企業超標的次數和具體油煙數據;5)用戶信息管理:管理可登錄監測網站的用戶號碼;6)設備信息管理:管理油煙采集模塊設備的信息。比如:設備編號等;7)通訊功能:接收油煙數據以及發送反饋信息;8)數據存儲功能:將油煙數據存入數據庫;9)用戶登陸功能:用戶輸入正確的賬號和密碼才能訪問服務器。
其中,實現實時數據功能時引用百度地圖API,目的是將使用油煙采集設備的餐飲企業標注在地圖中,環保部門通過點擊地圖中的標注點,查詢其對應企業的實時油煙數據。實現實時曲線功能時引用百度EChart API,目的是通過下拉框選擇設備編號,對選中設備繪制實時數據曲線,提高監測的直觀性。
根據需求將數據庫表設計為:用戶信息表(承載用戶賬號、密碼等)、設備信息表(承載采集設備的信息等)和設備數據表(承載數據整合后發送到服務器的相關信息)。
用戶信息表包含主鍵id、用戶號碼、用戶名、用戶密碼和用戶權限字段,如表5所示;用戶信息表對應用戶登陸功能和用戶信息管理功能。將用戶登陸時填寫的用戶名和密碼同用戶信息表中的用戶名和密碼進行比對,若比對結果一致,則登陸成功。反之,則不成功。對該表執行相應的SQL語句,可實現用戶管理功能中對用戶信息的增添、刪除、修改和查詢。

表5 用戶信息表
設備信息表包含id主鍵、設備編號、注冊設備經度、注冊設備緯度、企業名稱和企業位置字段。如表6所示;該表中的經度和緯度用于實時數據功能中的地圖標注。表中的站點編碼作為實時曲線、歷史數據和超標數據查詢功能中下拉框選項中的內容。

表6 設備信息表
設備數據表包含主鍵id、站點編碼、數據時間、運行狀態、油煙濃度、溫度、電流、電壓、東經、北緯、預留位置1、預留位置2和是否注冊字段。如表7所示。該表主要用于存儲數據和查詢數據。服務器接收到的數據經過解碼操作,按照表中的字段和結構,對應地存儲在該表中。實時數據查詢、歷史數據查詢、超標數據查詢功能則根據站點編碼(pkID)進行篩選,并通過SQL查詢語句,查詢出相應的油煙數據并顯示。
本文將油煙采集設備放置在學校食堂排煙通道中,并設置每5分鐘向服務器發送一次數據,存入數據庫中。經過測試,油煙采集模塊與服務器之間通訊正常,可以準確接收實時數據,并以正確的格式存入數據庫中,測試結果如圖5所示。

表7 設備數據表

圖5 數據庫存儲油煙數據
登陸監測網站點擊地圖中的標注點,可以顯示該企業的實時油煙數據,并對監測網站的其他功能進行測試,能實現所有設計的功能,測試結果如圖6所示。

圖6 監測網站功能測試
通過以上測試,驗證了本文設計的在線油煙實時監測系統可以滿足需求,能實現所有設計的功能。
本文設計的監測系統為B/S模式,不需要用戶安裝額外的軟件,只需通過瀏覽器既可使用。本系統在保證準確性的前提下,增強監測的實時性,解放了不必要的人力,并可提高環保部門對城市環境的綜合監控能力,具有顯著的社會與經濟效益。