作者/程治國張昆,保定職業(yè)技術(shù)學院;郭獻崇,張家口職業(yè)技術(shù)學院
基金項目:河北省教育廳高等學校科學研究計劃課題“基于 B-S-C 架構(gòu)的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)開發(fā)與研究”,項目編號QN2016323。
基于 B-S-C 架構(gòu)的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)開發(fā)與研究
作者/程治國張昆,保定職業(yè)技術(shù)學院;郭獻崇,張家口職業(yè)技術(shù)學院
基金項目:河北省教育廳高等學??茖W研究計劃課題“基于 B-S-C 架構(gòu)的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)開發(fā)與研究”,項目編號QN2016323。
本文主要講述了基于 B(瀏覽器)—S(數(shù)據(jù)處理平臺服務(wù)器)—C(數(shù)據(jù)采集單元客戶機) 架構(gòu)的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)設(shè)計開發(fā)方面的內(nèi)容,文章的核心是基于m0n0的通用型共享平臺(數(shù)據(jù)處理平臺)的二次開發(fā)工作,使用該平臺可使得各種物聯(lián)網(wǎng)傳感器組成的采集控制單元通過WIFI網(wǎng)絡(luò)靈活的接入到系統(tǒng)當中,用戶可以非常方便的實現(xiàn)一個低成本、高效率的傳感器網(wǎng)絡(luò)。
m0n0;傳感器;數(shù)據(jù)處理平臺
傳統(tǒng)的物聯(lián)網(wǎng)構(gòu)建多由“感知層、網(wǎng)關(guān)、中間件、應(yīng)用層”四部分組成,各個部分通常獨立配置和運行,對于中小規(guī)模企業(yè)的簡單物聯(lián)網(wǎng)應(yīng)用需求而言,四層架構(gòu)物聯(lián)網(wǎng)實現(xiàn)難度較大,投入不菲,特別是還需要配合大量的針對性開發(fā)。為解決上述問題,本課題提出一種簡化、高效的物聯(lián)網(wǎng)解決方案,即 B—S—C架構(gòu)的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),該系統(tǒng)中,用戶可以通過手機或聯(lián)網(wǎng)計算機遠程查看和控制各個傳感器的工作狀態(tài),該架構(gòu)當中數(shù)據(jù)平臺為基于m0n0軟件二次開發(fā)的獨立硬件設(shè)備,功能上實現(xiàn)了“網(wǎng)關(guān)、中間件”的高度整合,可基于各種模板對不同傳感數(shù)據(jù)進行數(shù)據(jù)處理和控制功能;數(shù)據(jù)采集控制單元通過ESP 8266開發(fā)板實現(xiàn)對溫度、濕度、PM2.5、GPS等傳感器的數(shù)據(jù)采集和傳輸工作,并可接受指令控制繼電器的運行。整個系統(tǒng)基于WiFi網(wǎng)絡(luò)進行通信、使用TCP/IP協(xié)議棧進行數(shù)據(jù)傳輸,兼容性強、應(yīng)用范圍廣,是一套廉價的通用型物聯(lián)網(wǎng)解決方案,在相關(guān)專業(yè)的日常教學和中小型物聯(lián)網(wǎng)系統(tǒng)集成項目中具有良好的應(yīng)用前景。
該物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)由用戶端、數(shù)據(jù)處理平臺、數(shù)據(jù)采集控制單元三部分構(gòu)成(如下圖所示),各部分的具體功能如下:
圖1 B—S—C 架構(gòu)的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)邏輯結(jié)構(gòu)示意圖
1.1 數(shù)據(jù)處理平臺
數(shù)據(jù)處理平臺是整個系統(tǒng)的核心部分,該部分基于m0n0開源防火墻系統(tǒng)二次開發(fā)而成,在邏輯上發(fā)揮的是物聯(lián)網(wǎng)網(wǎng)關(guān)的功能,并將中間件和應(yīng)用層進行有機整合,其中采用C語言開發(fā)的中間件實現(xiàn)與數(shù)據(jù)采集單元的遠程通信功能,采用PHP語言開發(fā)的數(shù)據(jù)處理邏輯模塊實現(xiàn)數(shù)據(jù)的再加工和顯示功能。通過該平臺可以采集和控制數(shù)據(jù)采集控制單元的數(shù)據(jù),并根據(jù)不同的傳感器數(shù)據(jù)采用不同的模板進行顯示和應(yīng)用。
1.2 數(shù)據(jù)采集控制單元
數(shù)據(jù)采集控制單元主要是基于果云的ESP 8266開發(fā)板采用C語言開發(fā)而成??梢愿鶕?jù)不同的實際應(yīng)用需求連接溫濕度、PM2.5、GPS等傳感器,通過Socket套接字和數(shù)據(jù)處理平臺進行通信,并由繼電器接受用戶對物聯(lián)網(wǎng)終端的控制。
1.3 用戶端顯示
由于數(shù)據(jù)處理平臺本身具有物聯(lián)網(wǎng)網(wǎng)關(guān)的特性,并且連接互聯(lián)網(wǎng),所以外部用戶可以使用手機或者計算機通過網(wǎng)頁的形式訪問數(shù)據(jù)處理平臺的系統(tǒng)頁面,該部分由PHP開發(fā)而成,用戶可以通過狀態(tài)圖實時查看溫濕度、PM2.5的數(shù)據(jù)、也可以通過地圖查看GPS的坐標軌跡,甚至可以通過設(shè)定的各個傳感器閥值控制繼電器的工作狀態(tài)。
m0n0開源防火墻最初是由瑞士人Manuel Kasper開發(fā)的基于X86平臺的嵌入式防火墻系統(tǒng)。本系統(tǒng)將m0n0構(gòu)建一個多功能的數(shù)據(jù)處理平臺,首先應(yīng)用了m0n0的互聯(lián)網(wǎng)網(wǎng)關(guān)功能,實現(xiàn)無線網(wǎng)絡(luò)接入、NAT轉(zhuǎn)換、路由和訪問控制列表等功能,并在此基礎(chǔ)上集成MySQL數(shù)據(jù)庫作為保存各種傳感器采集數(shù)據(jù)的倉庫,該平臺的邏輯結(jié)構(gòu)示意圖如圖2所示。
圖2 數(shù)據(jù)處理平臺的邏輯結(jié)構(gòu)設(shè)計
中間件程序使用C語言編寫,設(shè)置為Socket套接字通信的Server端,應(yīng)用的端口號為5000,通過條件控制循環(huán)和多進程編程機制保證可以接收到每一個主機發(fā)生來的信息,采用非阻塞機制保證如果線路連線中斷,恢復后可以繼續(xù)接受數(shù)據(jù),然后將各個傳感器的數(shù)據(jù)源源不斷的保存到MySQL數(shù)據(jù)庫當中。
中間件采集的數(shù)據(jù)格式為:[頭部串(01111110)、IP地址(String)、類型(Char)、數(shù)據(jù)1(f l oat)、數(shù)據(jù)2(f l oat)、數(shù)據(jù)3(f l oat)、尾部串(1000001)];其中溫度傳感器的類型為“T”,數(shù)據(jù)1;濕度傳感器的類型為“H”,數(shù)據(jù)1;PM2.5的采集的類型為“P”,數(shù)據(jù)1為為PM 2.5,數(shù)據(jù)2為PM 10;GPS的采集類型為“G”,數(shù)據(jù)1為經(jīng)度,數(shù)據(jù)2為緯度。
業(yè)務(wù)邏輯處理層由PHP編寫,其中控制指令部分使用消息隊列的方式由表示層向中間件部分發(fā)送數(shù)據(jù),由于只控制一個板子的繼電器,所以控制指令的發(fā)送關(guān)鍵字為“STOP”,中繼器關(guān)閉電源,發(fā)送“START”為開啟電源;對于繼電器的控制又可以細化為兩種方式,其中一種是手動的發(fā)送開啟、關(guān)閉指令指導ESP 8266進行工作,另一種情況是根據(jù)設(shè)置的閥值由設(shè)備自行進行繼電器的控制,比如當溫度高于25度,打開繼電器,低于25度關(guān)閉繼電器。
表示層由PHP結(jié)合JS編寫,該部分主要是設(shè)計兩種通用型模板,比如溫度、濕度、PM2.5等各種數(shù)據(jù)采集的值都是一個隨著時間變化的數(shù)值,該部分采用狀態(tài)圖的形式動態(tài)顯示各個傳感器的狀態(tài),而GPS則是根據(jù)經(jīng)、緯度在地圖上顯示的一個點陣軌跡,通過這些模板可以將各個傳感器的工作狀況良好的展現(xiàn)出來。
數(shù)據(jù)采集單元基于ESP 8266 2.0 SDK開發(fā)包進行開發(fā),該部分目前可以支持三種傳感器進行聯(lián)動(由于8266的接口限制,各個傳感器獨立工作,不能協(xié)同工作),其中PM2.5監(jiān)測儀采用的是錦州海倫的DSL—03 PM 2.5檢測儀,采用激光檢測法檢測PM 0.3~2.5、PM 2.5~10兩個級別的粒子濃度,采用串口線連接8266開發(fā)板;GPS采用的是UBLOX模塊,使用杜邦線連接8266開發(fā)版,溫濕度模塊采用8266開發(fā)板自帶模塊,繼電器也采用自帶模塊。
圖3 數(shù)據(jù)采集控制單元的邏輯結(jié)構(gòu)設(shè)計
開發(fā)板主程序?qū)崿F(xiàn)思路為設(shè)置任務(wù)隊列,首先通過調(diào)用system_os_task函數(shù),實現(xiàn)ESP 8266開發(fā)板通過WiFi連接數(shù)據(jù)處理平臺,連接成功后再次調(diào)用該函數(shù)嘗試進行Socket TCP通信的5000號端口連接,連接成功后,調(diào)用各個傳感器函數(shù)獲得采集數(shù)值后通過TCP協(xié)議發(fā)送給數(shù)據(jù)處理平臺,對于各個傳感器的工作頻率采用時間容器函數(shù)os_timer每1秒采集一次數(shù)據(jù)并進行發(fā)送。
本地的Socket通信的客戶端如果接收到服務(wù)器端傳來的信息,按照事先規(guī)定格式進行處理,比如收到“START”關(guān)鍵字則開啟中繼器,收到“STOP”關(guān)鍵字則關(guān)閉中繼器。
通過上述思路設(shè)計和開發(fā)的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),不僅具有極高的應(yīng)用和推廣價值,而且為高職物聯(lián)網(wǎng)應(yīng)用技術(shù)專業(yè)的學生學習、實踐提供了良好的平臺。
由于該產(chǎn)品源代碼來源于開源系統(tǒng),所以在本科院校可以在此基礎(chǔ)上進行深入的學習研究和二次開發(fā)。
此外,該系統(tǒng)設(shè)計簡單、集成度高、所以開發(fā)的實際產(chǎn)品具有性價比高,應(yīng)用性廣的特點,特別適合于農(nóng)業(yè)物聯(lián)網(wǎng)、交通物聯(lián)網(wǎng)等中小型企業(yè)的應(yīng)用。
* [1]白秀偉.物聯(lián)網(wǎng)中間件數(shù)據(jù)處理研究[J].計算機測量與控制.2012,20(7):1938—1940
* [2]范興隆.ESP8266在智能家居監(jiān)控系統(tǒng)中的應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用.2016,16(9):52—56
* [3]陳素羨.基于m0n0的網(wǎng)絡(luò)計費系統(tǒng)開發(fā)與研究[J].煤炭技術(shù).2013,32(5):179—181