陸 雨,鐘良驥,廖海斌,高 山
(湖北科技學院 計算機科學與技術學院,湖北 咸寧 437100)
水泵作為常見的生產(chǎn)工具,錯誤使用和維護不及時會造成故障,導致宕機,影響生產(chǎn)生活。如何在運行中更早知道水泵的運行狀態(tài),做出正確的維修保養(yǎng)計劃,非常重要。通過物聯(lián)網(wǎng)技術,水泵聯(lián)網(wǎng)可以快速、準確、方便地實現(xiàn)設備檢測,能夠大大降低人力成本、提高生產(chǎn)效率。因此,智能水泵有著巨大的經(jīng)濟效益和社會效益,水泵操控體系的自動化、網(wǎng)絡化和智能化是大勢所趨。
本文結合A9G物聯(lián)網(wǎng)模塊、STM32單片機及相關傳感器,設計一套硬件成本低、功能全、穩(wěn)定性好、性價比高的水泵控制板。它將采集到的水泵運行參數(shù)傳送至物聯(lián)網(wǎng)平臺,從而實現(xiàn)對流量、揚程、轉(zhuǎn)速、水泵、電動閥門等數(shù)據(jù)的遠程實時監(jiān)控以及動態(tài)管理。用戶可以通過水泵物聯(lián)網(wǎng)平臺或手機掃描二維碼的客戶端對水泵、電動閥門的運行狀態(tài)進行查看與控制。
智能水泵物聯(lián)網(wǎng)系統(tǒng)的設計思路是:感知層實現(xiàn)水泵的監(jiān)測與控制;網(wǎng)絡層實現(xiàn)狀態(tài)數(shù)據(jù)的傳輸;應用層完成人機交互和數(shù)據(jù)分析。
智能水泵的工作流程分三步:(1)通過平臺的認證服務器,獲取設備三元組信息和GPS地圖配置信息。(2)設備基于MQTT協(xié)議與IOT中間件建立連接,設備采用發(fā)布與訂閱的工作方式,實現(xiàn)穩(wěn)定高效的網(wǎng)絡連接。(3)用戶通過Web端和微信公眾號客戶端管理水泵。其中,每個水泵有唯一的設備編號,以及對應的二維碼;采用A9G物聯(lián)網(wǎng)模塊及STM32單片機,基于互聯(lián)網(wǎng)實現(xiàn)快速上云,實現(xiàn)對水泵的狀態(tài)采集和傳輸,其中包括水泵的溫度、電壓、電流、功率、振幅、轉(zhuǎn)速等,并支持水泵流量的實時監(jiān)測。在平臺上,用戶可以看到所有在線水泵的狀態(tài)信息,查閱水泵在不同時間段的日志信息和工作情況。
詳細開發(fā)步驟如下:
第一步,通過平臺創(chuàng)建水泵的數(shù)據(jù)模型,實現(xiàn)真實設備與虛擬設備的數(shù)據(jù)映射,每個水泵有一份獨立的數(shù)據(jù)表。水泵設備實時上報的位置信息,方便維護者異地檢修;同時支持設備的在線升級和調(diào)試。
第二步,設備的配置信息和實時狀態(tài)存儲在Mysql數(shù)據(jù)庫中;水泵產(chǎn)生的數(shù)據(jù)基于規(guī)則引擎,存儲在TSDB時序數(shù)據(jù)庫中。時序數(shù)據(jù)庫詳細記錄上報的工作日志,通過數(shù)據(jù)清洗和處理,一方面快速生成圖表;另一面為設備的故障診斷提供海量數(shù)據(jù)源。同時TSDB與Grafana結合實現(xiàn)對數(shù)據(jù)運維功能,設備故障模型可以進一步分析設備的狀態(tài)變化,實現(xiàn)故障預測。
圖1 系統(tǒng)拓撲圖
圖2 硬件原理圖
智能水泵分為三部分:水泵是受控單元;STM32單片機及傳感器是實現(xiàn)數(shù)據(jù)的采集、處理及上傳的智慧單元;A9G模塊是連接云端與設備的網(wǎng)絡通信單元。具體功能如下:
(1)傳感器采集水泵在運行時的溫度、電壓電流、功率、振幅、轉(zhuǎn)速等數(shù)據(jù)上傳給STM32單片機,再通過云端下傳的指令控制水泵的開關。
(2)STM32單片機將傳感器上傳的數(shù)據(jù)進行處理及整合,再通過串口上傳給A9G物聯(lián)網(wǎng)模塊,A9G模塊通過串口下發(fā)控制指令給STM32單片機實施水泵的控制。
(3)通過A9G模塊,實現(xiàn)HTTP的認證和MQTT的連接,將數(shù)據(jù)上傳到平臺,包括GPS定位信息,實現(xiàn)數(shù)據(jù)的快速透傳。
(4)掃描水泵的二維碼,實現(xiàn)手機與水泵的連接,從而對水泵進行控制。
水泵在工作時,若溫度過大、電流電壓不穩(wěn)定,轉(zhuǎn)速過快或過慢,需檢查水泵是否出現(xiàn)故障;若震動頻率過大可能需更換軸承。因此,水泵狀態(tài)數(shù)據(jù)的采集、計算、控制、傳輸?shù)裙δ茈娐?,主要圍繞以下幾個方面實現(xiàn):
(1)將STM32單片機作為進行數(shù)據(jù)的處理及上傳的智慧單元。
(2)將A9G物聯(lián)網(wǎng)模塊作為將數(shù)據(jù)上傳以及控制指令下發(fā)的通訊單元。
(3)通過電壓電流互感器采集水泵的電流電壓數(shù)據(jù)。
(4)通過DS18B20溫度傳感器采集水泵的溫度。
(5)通過PVDF壓電薄膜振動傳感器檢測水泵的振動頻率。
(6)通過轉(zhuǎn)速傳感器計算水泵的旋轉(zhuǎn)速率。
(7)通過繼電器對水泵的啟動與關閉進行控制。
圖3 硬件電路圖
A9G模塊作為水泵的通信單元,內(nèi)部集成了GK9501,高性能、高集成度、低功耗、低成本的多模衛(wèi)星定位導航芯片,支持BDS/GPS/GLONASS/GALILEO/QZSS/SBAS與GPRS芯片的串口相連,使用RDA8955作為主控芯片,內(nèi)部集成了GSM/GPRS等協(xié)議棧。
模塊具有支持快速認證聯(lián)網(wǎng)、斷電不丟失數(shù)據(jù)、應答式的工作機制、標準JSON的數(shù)據(jù)格式、超低功耗等的優(yōu)點。該模塊的功能設計架構如圖4所示。
圖4 A9G架構圖
1.A9G模塊的關鍵技術
(1)模塊支持MQTT、HTTP和UART等通信協(xié)議。其中,與服務器之間通過HTTP協(xié)議認證,獲取本設備的配置信息;通過MQTT協(xié)議與平臺連接,實現(xiàn)數(shù)據(jù)透傳;與底層硬件通信采用串口,兼顧自適應波特率。
(2)模塊周期性采集定位信息、用戶可通過平臺服務器獲取當前位置信息、運動軌跡等。
(3)模塊預留3路串口、3個I2C接口、1個加速度計LIS3DHx芯片、29個GPIO,不僅方便外部電路的直接聯(lián)網(wǎng),同時還支持更多MCU。
2.A9G工作流程
圖5 傳輸單元
(1)啟動通訊模塊:按電源管理介紹方式,正常供電后系統(tǒng)會開始工作。
(2)檢查SIM卡正常:如果SIM無法使用或沒有插入SIM卡,系統(tǒng)將無法進行后續(xù)操作。
事件監(jiān)聽參數(shù):API_EVENT_ID_NO_SIMCARD;
等待網(wǎng)絡連接:OS_WaitForSemaphore(semStart, OS_TIM E_OUT_WAIT_FOREVER)。
(3)硬件初始化:初始化UART、GPIO、GPS等初始設置。
UART初始化:UART_Init(UART1, config);
GPIO初始化:GPIO_Init(gpioLedBlue1);
GPS初始化:GPS_Init();GPS_Open(NULL)。
(4)獲取設備MAC:調(diào)用INFO_GetIMEI(imei)函數(shù)即可獲取設備MAC號,并將其轉(zhuǎn)為JSON格式。
MAC號獲?。篒NFO_GetIMEI(imei)。
(5)HTTP、MQTT初始化:將從平臺服務器獲取的信息解析,存儲相應的配置信息。
配置信息解析:Get_ConfigMessage()。
(6)開啟時鐘進程:通過TIME_SetIsAutoUpdateRtcTime()函數(shù)獲取網(wǎng)絡同步時間,再用TIME_SetRtcTIme(&time)設置本地RTC時間,每秒刷新一次。
時間同步:TIME_SetIsAutoUpdateRtcTime();TIME_SetRtcTIme(&time);
(7)開啟GPS進程:按設定頻率采集GPS坐標,將GPS坐標信息組合成JSON格式通過HTTP-POST上拋給鷹眼,坐標采集頻率、數(shù)據(jù)上拋頻率皆可通過MQTT調(diào)控。
獲取經(jīng)緯度:gcvt(latitude, 6, buff1);gcvt(longitude, 6, buff2);
獲取時間戳:gettimeofday(&tv, NULL);
HTTP-POST上拋數(shù)據(jù):Http_Post(HTTP_SERVER_IP, HTTP_SERVER_PORT,HTTP_SERVER_PATH,postbuff,sizeof(postbuff)
(8)數(shù)據(jù)采集進程:采集傳感器數(shù)據(jù)、串口數(shù)據(jù)、執(zhí)行器狀態(tài)。將數(shù)據(jù)組合成JSON格式。執(zhí)行控制命令。
數(shù)據(jù)監(jiān)聽事件參數(shù):API_EVENT_ID_UART_RECEIVED。
(9)開啟MQTT進程:建立MQTT連接,監(jiān)控平臺通訊數(shù)據(jù),上拋本地數(shù)據(jù),解析平臺數(shù)據(jù)。關鍵函數(shù)如表1:
表1 MQTT接口
水泵的智慧單元,我們選擇了高性能、低成本、低功耗的STM32單片機。該處理器采用ARM 內(nèi)核,針對水泵領域,它具有強干擾性、滿足惡劣工作條件下穩(wěn)定持續(xù)工作的要求。此外,STM32外設包括10個定時器、兩個12位1-Msample/s 模數(shù)轉(zhuǎn)換器 (交錯模式下2-Msample/s)、兩個12位數(shù)模轉(zhuǎn)換器、兩個I2C接口、五個USART接口和三個SPI端口。新產(chǎn)品外設共有12條DMA通道,還有一個CRC計算單元,支持96位唯一標識碼。STM32的豐富資源,可以滿足智能水泵的開發(fā)要求。
1.STM32關鍵技術
(1)通過電壓電流互感器采集水泵的電流電壓數(shù)據(jù)。
(2)通過DS18B20溫度傳感器采集水泵的溫度。
(3)通過PVDF壓電薄膜振動傳感器檢測水泵的振動頻率。
(4)通過轉(zhuǎn)速傳感器計算水泵的旋轉(zhuǎn)速率。
(5)通過繼電器對水泵的啟動與關閉進行控制
2.STM32工作流程
圖6 智慧單元
設備硬件初始化:初始化UART等設備,并啟動芯片。采集數(shù)據(jù)進程:
(1)啟動DS18B20:Start18B20();
(2)串口處理初始化:uart_init();
UartDriver();
UartRxMonitor(unsigned char ms);
ConfigUART(unsigned int baud);
發(fā)送函數(shù):UartWrite(unsigned char *buf, unsigned char len);
接收函數(shù):UartRead(unsigned char *buf, unsigned char len);
(3)I2C/AD轉(zhuǎn)換:GetADCValue(unsigned char chn);
I2CReadACK();I2CReadNAK();
I2CWrite(unsigned char dat);
(4)中斷定時:ConfigTimer0(unsigned int ms);
(5)整型轉(zhuǎn)字符串:IntToString(unsigned char *str, int dat);
(6)其它重要函數(shù)(見表2):
表2 參數(shù)表
登錄物聯(lián)網(wǎng)平臺(www.920iot.com),用戶可以創(chuàng)建設備模型。根據(jù)水泵采集和控制要求,完成各項屬性的添加,包括執(zhí)行器動作的添加,以及預警上限和下限的設定。
完成上述操作后,用戶可以在設備模型列表中查看剛創(chuàng)建好的模型,如圖7所示。
圖7 水泵模型
根據(jù)水泵模型,用戶開始創(chuàng)建具體的水泵影子。根據(jù)設備MAC地址,創(chuàng)建好設備名稱,作為水泵在系統(tǒng)中的唯一身份。創(chuàng)建好影子,用戶可以查看到設備聯(lián)網(wǎng)的配置信息、設備的各項屬性,還可以進一步添加聯(lián)動操作。如圖8所示。
圖8 水泵影子
開機啟動智能水泵后,STM32單片機開始進行數(shù)據(jù)采集,A9G物聯(lián)網(wǎng)模塊開始連接平臺。標準化的數(shù)據(jù)協(xié)議和格式,使硬件與平臺之間,實現(xiàn)快速有效的連接。
圖9 智能水泵
水泵上線后,用戶可以在平臺或客戶端上查看設備在線狀態(tài)以及是否處于告警狀態(tài);如果該設備處于告警狀態(tài),用戶點擊告警按鈕就會清除告警。如圖10所示。
圖10水泵詳情
水泵采集的狀態(tài),通過儀表盤顯示;開關動作等命令,可以通過綁定的按鍵,直接控制。如圖11所示。
圖11 水泵屬性
用戶可以查看一段時間內(nèi)該設備所有屬性或者單個屬性的歷史狀態(tài),如圖12所示。
圖12 歷史狀態(tài)
A9G模塊,不僅具有GPRS透傳功能,還具有GPS定位功能。水泵物聯(lián)網(wǎng)平臺,通過調(diào)用第三方地圖API接口,可以快速定位水泵具體位置,方便水泵后期的檢修和維護。
圖13 水泵定位
掃描水泵上的二維碼,用戶可進入水泵公眾號的管理頁面。水泵的所有信息和狀態(tài)一目了然,方便用戶遠程異地實時的管理水泵。
通過水泵物聯(lián)網(wǎng)平臺,實時掌握水泵的位置信息,并在地圖上展示;實時監(jiān)控并展示水泵的運行狀態(tài)及采集各種運行數(shù)據(jù),包括運行停止時間、運行時長、故障時間、故障內(nèi)容等數(shù)據(jù)。水泵設備管理,包括設備型號、設備參數(shù)、設備位置、設備投入時間等信息;水泵故障管理,記錄故障信息,并準確推送給相關工作人員,并生成故障統(tǒng)計報表方便工作人員分析處理;智能統(tǒng)計分析,對于歷史運行狀態(tài)、歷史故障記錄以餅狀圖和表格方式展示,并結合大數(shù)據(jù)分析技術進行輔助決策; 生命周期管理,根據(jù)設備維護周期,智能提醒客戶進行設備維護或保養(yǎng)。
綜述上述,水泵物聯(lián)網(wǎng)系統(tǒng),可以有效保障水泵穩(wěn)定高效的工作,還能幫助用戶快速方便的管理,協(xié)助水利部門通過水泵大數(shù)據(jù)平臺綜合治理,為農(nóng)村水利灌溉、城市供水、管道排污等行業(yè)應用提供智力支持和技術保障。