劉佳奇,歐陽嘉俊,陳微,鄭勃
(1.北華大學(xué),吉林吉林,132013;2.吉林石化公司化肥廠,吉林吉林,132021)
本文設(shè)計的智能傘控制系統(tǒng)從結(jié)構(gòu)上可分為智能硬件與云平臺兩部分。智能硬件是一個集成了多種傳感器、執(zhí)行器設(shè)備、主控和通信單元的智能大傘。具體而言,智能硬件包括一個可以通過伺服電機控制開合的傘體和底部的物理支撐結(jié)構(gòu),這樣的設(shè)計使得傘的開合狀態(tài)可以方便地通過控制伺服電機來實現(xiàn)。
主控芯片采用Air724UG 模組,其具備了豐富的功能。通過調(diào)用多個傳感器,主控芯片可以獲取不同的環(huán)境參數(shù)信息,例如溫度、濕度、風(fēng)速等。這些傳感器可以對傘附近的使用環(huán)境進行實時監(jiān)測,從而為云平臺采集當(dāng)前節(jié)點的天氣信息。獲取到的傳感器數(shù)據(jù)會被打包成JSON 格式,以便于傳輸和處理。
值得注意的是,主控芯片還配備了LTE 網(wǎng)絡(luò)功能,使得傘可以與云服務(wù)器進行穩(wěn)定的通信。主控芯片可以定期采集傳感器數(shù)據(jù),并通過MQTT 協(xié)議將數(shù)據(jù)發(fā)送到云服務(wù)器上,實現(xiàn)信息的上傳和匯總。同時,主控芯片還能夠持續(xù)監(jiān)聽云服務(wù)器的信息,以實現(xiàn)云服務(wù)器對傘的遠程控制。這樣,用戶可以通過云平臺實現(xiàn)對傘的遠程監(jiān)控和控制,從而更加方便地管理和使用智能傘。
通過智能硬件與云平臺的結(jié)合,本文設(shè)計的智能傘控制系統(tǒng)能夠?qū)崿F(xiàn)對傘的智能化監(jiān)測、環(huán)境數(shù)據(jù)上傳和遠程控制,從而實現(xiàn)了智能化地傘。
通過使用Spring Boot MVC 架構(gòu),云平臺實現(xiàn)了對傘節(jié)點數(shù)據(jù)的可視化控制,將數(shù)據(jù)存儲在MySQL 數(shù)據(jù)庫中,從而為管理員提供了方便的數(shù)據(jù)查看和管理方式。管理員可以通過WEB 界面實時監(jiān)控傘節(jié)點的運行狀況,并且可以查看歷史數(shù)據(jù)的變化趨勢,通過算法進行數(shù)據(jù)可視化,為管理員提供直觀的環(huán)境信息展示。同時,管理員還可以通過控制集群或者指定節(jié)點來實現(xiàn)對傘的開關(guān)操作,并獲取實時傳感器信息和運行自檢信息,從而實現(xiàn)對傘控制系統(tǒng)的靈活管理和控制。
硬件部分由三個核心單元組成,分別是Air724UG 模組單元、伺服電機、多種傳感器。Air724UG 模組核心的作用,主要負責(zé)與云平臺的通訊,各種傳感器信息的采集和對傘體的驅(qū)動控制。 模組具備多種硬件通訊協(xié)議接口包括I2C,SPI,UART 等,可以同時與多個傳感器連接實現(xiàn)數(shù)據(jù)通訊。同時可以與伺服電機驅(qū)動模塊連接實現(xiàn)通過PWM 對功率較大的伺服電機進行控制。其系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 硬件系統(tǒng)架構(gòu)
Air724UG 是一款4G LTE Cat.1 模塊,具有低功耗、高集成度、支持多種外設(shè)和可二次開發(fā)等特點。該模塊內(nèi)部集成了MQTT 和JSON 處理功能,可以作為客戶端與云服務(wù)器進行通訊和交互。同時,該模塊還支持低功耗模式,可以在待機狀態(tài)下實現(xiàn)較低的能耗。
在本系統(tǒng)中,Air724UG 模塊作為主控芯片,負責(zé)多個傳感器的數(shù)據(jù)采集、信息打包成JSON 數(shù)據(jù)以及通過MQTT協(xié)議將數(shù)據(jù)發(fā)送到云服務(wù)器上進行信息上傳匯總。此外,該模塊還可以持續(xù)監(jiān)聽云服務(wù)器的信息,實現(xiàn)對傘的控制。由于Air724UG 模塊具有低功耗特性,系統(tǒng)在實現(xiàn)功能的同時也能夠有效降低能耗,從而保證系統(tǒng)的高效運行。本系統(tǒng)可以實現(xiàn)智能傘控制系統(tǒng)的各項功能。其低功耗、高集成度和支持多種外設(shè)的特點,使得系統(tǒng)具有高度的靈活性和可擴展性。同時,本模塊的支持低功耗模式,也有助于減少系統(tǒng)的能耗,從而提升系統(tǒng)的節(jié)能性能。因此,本模塊是本系統(tǒng)實現(xiàn)功能的理想選擇。
為了實現(xiàn)設(shè)備的功能,我們采用了多線程的邏輯設(shè)計。設(shè)備在上電開機后,首先對各傳感器和執(zhí)行器進行通訊測試,并通過各部分返回碼來確定設(shè)備的健康狀況。自檢工作會在2~3s 內(nèi)完成。然后設(shè)備會注冊移動網(wǎng)絡(luò),并檢測網(wǎng)絡(luò)功能是否正常連接。一旦網(wǎng)絡(luò)連接正常,設(shè)備將嘗試與服務(wù)器建立MQTT 連接。連接建立后,我們使用Thread 管理機制來注冊多線程。這些線程會間斷性地向服務(wù)器發(fā)送心跳包,并同時監(jiān)聽自定義主題的信息,以用于機動控制。
系統(tǒng)的Thread 包括如下內(nèi)容:
一個提供網(wǎng)絡(luò)長連接的線程,主要負責(zé)維持MQTT 服務(wù)的穩(wěn)定在設(shè)備訂閱的主題進行心跳,維持設(shè)備的在線狀態(tài),并且訂閱該設(shè)備的執(zhí)行主題,如果接收到執(zhí)行數(shù)據(jù)將數(shù)據(jù)放到消息隊列。
一個消息隊列的處理線程,這個線程負責(zé)執(zhí)行消息隊列中的各種操作,例如當(dāng)隊列中存在操作開關(guān)傘的信息,那么系統(tǒng)會調(diào)用開關(guān)函數(shù),并將執(zhí)行結(jié)果反饋到對應(yīng)的主題。
一個安全預(yù)警緊急處理線程,這個線程負責(zé)監(jiān)聽機電傳感器的運行狀態(tài),一旦發(fā)送錯誤立刻觸發(fā)安全機制,例如在開關(guān)傘的過程中發(fā)生運動性卡死,那么會觸發(fā)該線程中的緊急停止邏輯,會立刻切斷機動部分電源,并產(chǎn)生消息匯報給云平臺。
通過使用I2C 和UART 等通信方式,核心模塊能夠與各種傳感器進行高效的數(shù)據(jù)交互,以實現(xiàn)對環(huán)境數(shù)據(jù)的采集和處理。其中,大氣壓力傳感器BMP280 模塊和數(shù)字溫度傳感器AHT21 模塊提供準確的氣象信息,如氣壓和溫度,為系統(tǒng)的環(huán)境監(jiān)測功能提供了重要的數(shù)據(jù)支持。同時,GP2Y1014AU 型傳感器實時監(jiān)測環(huán)境中的粉塵污染度,為系統(tǒng)的空氣質(zhì)量監(jiān)測功能提供了關(guān)鍵的信息。以上所述的傳感器系統(tǒng)可通過圖2 中的方法來實現(xiàn)。
圖2 傳感器電路圖
此外,通過ADC 采集小電機發(fā)電電壓的方式,系統(tǒng)能夠?qū)崟r獲得風(fēng)速信息,從而實現(xiàn)對天氣條件的監(jiān)測。這些采集到的環(huán)境數(shù)據(jù)將被主控芯片Air724UG 模塊進行處理和打包,并通過MQTT 協(xié)議發(fā)送到云服務(wù)器,實現(xiàn)對環(huán)境信息的上傳和匯總。這樣,系統(tǒng)可以通過這些數(shù)據(jù)為用戶提供實時的天氣信息和環(huán)境狀況,從而為用戶提供更加智能化的傘控制體驗。
傳感器運行步驟如下:
(1)首先在系統(tǒng)上電后,主控芯片會調(diào)用BMP280的初始化函數(shù)主要包括確定傳輸傳的信息速率,然后調(diào)用AHT21 初始化設(shè)置傳輸速率,之后嘗試讀取它們的采樣值,如果不可以正常讀取到采樣值,將日志和錯誤信息發(fā)送到云服務(wù)器。
(2)定時采樣每個傳感器的值然后打包成數(shù)據(jù)包通過網(wǎng)絡(luò)發(fā)送到服務(wù)器。
執(zhí)行單元是系統(tǒng)中的關(guān)鍵部件,主要由核心模塊驅(qū)動的伺服電機組成,用于實現(xiàn)對傘體的控制。伺服電機是一種特殊設(shè)計的電機,具有小尺寸、低功耗、高效率等特點,適合用于傘的控制。主控模塊通過PWM 信號控制伺服電機運動,可以實現(xiàn)對傘的平滑、快速的開關(guān)操作,從而提供良好的用戶體驗。執(zhí)行單元作為系統(tǒng)的關(guān)鍵控制部分,能夠根據(jù)用戶在WEB 界面的操作或者系統(tǒng)的自動化算法,控制傘的自動開關(guān),從而實現(xiàn)對傘的實時控制和監(jiān)測。
系統(tǒng)軟件設(shè)計主要包括云端和終端兩個部分。即云端數(shù)據(jù)處理,終端設(shè)備模塊Air724UG 的程序設(shè)計。
終端設(shè)備主要負責(zé)各種傳感器信息的采集整理。在系統(tǒng)啟動時,主控芯片首先加載系統(tǒng),并進行必要的初始化操作如文件系統(tǒng)的讀取和對各個接口的電平初始化以及與各個外部傳感器模塊的通信設(shè)置。隨后,主控芯片會建立多線程,其中包括采集線程、網(wǎng)絡(luò)線程和守護線程,如圖3 所示。
圖3 軟件系統(tǒng)結(jié)構(gòu)
采集線程承擔(dān)著輪詢各個傳感器、獲取數(shù)據(jù)以及將數(shù)據(jù)存儲在芯片的日志區(qū)域的任務(wù)。這些數(shù)據(jù)涵蓋了大氣壓力、溫度、風(fēng)速等環(huán)境參數(shù),以及其他傳感器所采集到的信息。采集線程的高效操作確保了系統(tǒng)對各種環(huán)境數(shù)據(jù)的準確采集和實時更新。
網(wǎng)絡(luò)線程負責(zé)嘗試建立與互聯(lián)網(wǎng)的連接,一旦連接成功,將日志區(qū)中的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸至服務(wù)器,實現(xiàn)數(shù)據(jù)的同步傳輸。此外,網(wǎng)絡(luò)線程還會監(jiān)聽來自服務(wù)器的控制信息,以便隨時執(zhí)行相應(yīng)的操作。這確保了系統(tǒng)與服務(wù)器之間的高效通信,以便依據(jù)服務(wù)器的指令來控制和操作系統(tǒng)。
守護線程的任務(wù)在于定期檢測系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)緩存區(qū)的狀態(tài)。一旦發(fā)現(xiàn)異常情況,它會記錄異常并嘗試重新啟動相關(guān)模塊,以確保系統(tǒng)的穩(wěn)定運行。守護線程的存在有效地監(jiān)測了系統(tǒng)的健康狀態(tài),及時處理異常情況,從而提高了系統(tǒng)的可靠性和穩(wěn)定性。
云平臺作為中控系統(tǒng),主要負責(zé)管理全部智能傘節(jié)點,其主要由以下幾部分構(gòu)成:MQTT 服務(wù)器、MySQL 數(shù)據(jù)庫和Spring Boot 主程序。
MQTT 服務(wù)器作為傘終端設(shè)備的接入平臺,負責(zé)批量處理隊列數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)發(fā)給主程序進行處理。主程序同時具備多任務(wù)處理的能力,包括以下幾個方面:
數(shù)據(jù)采集記錄服務(wù)器:當(dāng)終端節(jié)點發(fā)送數(shù)據(jù)集到服務(wù)器時,MQTT 服務(wù)器會將這些數(shù)據(jù)傳遞給主程序。主程序會對接收到的數(shù)據(jù)進行解包,并根據(jù)數(shù)據(jù)的ID、時間戳、設(shè)備編碼等信息對數(shù)據(jù)進行分類,并將分類好的數(shù)據(jù)存儲到數(shù)據(jù)庫中。其結(jié)構(gòu)如圖4 所示。
圖4 云平臺結(jié)構(gòu)
數(shù)據(jù)層負責(zé)將MQTT 的數(shù)據(jù)分類存儲到不同的表中,實現(xiàn)調(diào)取的方便,在數(shù)據(jù)庫中主要記錄如下內(nèi)容:設(shè)備連接時間,健康情況,采集到的環(huán)境信息:每10 分鐘各個傳感器的數(shù)值,開關(guān)傘記錄:每次傘體控制都會在這里產(chǎn)生記錄,異常記錄:當(dāng)某個傳感器發(fā)生故障或者開關(guān)傘發(fā)生異常都會記錄到該表中。
業(yè)務(wù)層采用JAVA 語法負責(zé)提供相關(guān)接口,包括集群管理:同時對各個設(shè)備發(fā)送心跳信息,并批量寫入到數(shù)據(jù)庫中,數(shù)據(jù)可視化:為WEB 提供數(shù)據(jù),數(shù)據(jù)分析:對所有的設(shè)備上傳數(shù)據(jù)進行分析,采用平均值的方式計算出本地降雨情況。日志查詢接口:讀取數(shù)據(jù)庫中的日志數(shù)據(jù),以方便工程師快速解決修復(fù)相關(guān)問題。
數(shù)據(jù)分析:主程序通過對多個節(jié)點上報的天氣信息進行分析,可以實現(xiàn)簡單的降雨預(yù)測,并通過與互聯(lián)網(wǎng)上的天氣API 進行結(jié)合,實現(xiàn)更加精確的天氣變化檢測。
控制管理:主程序可以實現(xiàn)對傘節(jié)點集群或單一設(shè)備的控制管理。管理員可以預(yù)先設(shè)定分組和控制方案,當(dāng)系統(tǒng)觸發(fā)相應(yīng)條件時,主程序會根據(jù)預(yù)先設(shè)定的控制方案進行操作下發(fā)。同時,主程序還可以實時響應(yīng)前端頁面提交的請求,并進行相應(yīng)的操作。
監(jiān)聽前端操作:主程序通過提供HTTP 服務(wù)接口,在用戶請求的情況下實現(xiàn)可視化的前端響應(yīng)服務(wù)。主程序能夠基于前端請求進行監(jiān)聽并產(chǎn)生相應(yīng)的響應(yīng)。
綜上所述,云平臺作為中控系統(tǒng),通過MQTT 服務(wù)器、MySQL 數(shù)據(jù)庫和Spring Boot 主程序之間的協(xié)同工作,實現(xiàn)了對傘終端設(shè)備的管理和控制。這包括數(shù)據(jù)采集、數(shù)據(jù)分析、控制管理以及前端操作監(jiān)聽等功能,為整個系統(tǒng)的智能化運作提供了強有力的支持。
系統(tǒng)云平臺采用分離的異步結(jié)構(gòu)各個模塊分別執(zhí)行不同的操作。
首先服務(wù)啟動后會激活Mysql 數(shù)據(jù)庫,然后啟動MQTTX 服務(wù),此時各節(jié)點可以進行上線連接。之后會啟動服務(wù)主體基于Spring Boot 主程序為前端頁面提供接口服務(wù)。
本文設(shè)計的智能傘實現(xiàn)了降雨自動開啟,晴天自動關(guān)閉。其系統(tǒng)狀態(tài)可以在web 平臺上顯示。各類傳感線信息都可以在平臺中進行檢索,云下平臺的執(zhí)行器節(jié)點也會正確作出響應(yīng)。
本系統(tǒng)作為一項互聯(lián)網(wǎng)實訓(xùn)項目,在研發(fā)實訓(xùn)中取得了顯著的成果。通過結(jié)合傳感器、執(zhí)行器、微控制器和通信模塊,成功實現(xiàn)了智能傘的功能,使其成為一種新型的智慧化城市中的物聯(lián)網(wǎng)產(chǎn)品。然而,在實際的場景應(yīng)用中,還需要考慮到規(guī)模性、安全性和實用性等多方面的需求。因此,本方案還可以進一步擴展和升級,以滿足實際需求。