聚豐項目 > 氣體流量在線監(jiān)測系統(tǒng)
氣體流量在線監(jiān)測系統(tǒng)基于IDT氣體流量傳感器FS2012模塊而設(shè)計。主控芯片采用高性能意法半導(dǎo)體公司Cortex-M4系列微控制器STM32F429IGT6,并采用ESP32無線2.4GHz Wi-Fi模塊實現(xiàn)系統(tǒng)與互聯(lián)網(wǎng)的連接。 本方案專為改變家庭傳統(tǒng)燃氣計費抄表方式,采用物聯(lián)網(wǎng)+云平臺方式實現(xiàn)智能在線監(jiān)測和在線計費等功能。在斷網(wǎng)斷電等離線情況下可通過系統(tǒng)EEPROM和Nand Flash存儲流量總量,待恢復(fù)網(wǎng)絡(luò)連接情況下可繼續(xù)記錄并實時監(jiān)測。具有實用性、便捷性、安全性等優(yōu)點。 本項目采用模塊化方案設(shè)計,主要構(gòu)成系統(tǒng)的模塊有STM32F429核心板、底板和各模塊等。便于擴展各類傳感器模塊,實現(xiàn)家庭燃氣、水、溫濕度、空氣質(zhì)量等的實時在線監(jiān)測功能。軟件采用開源嵌入式實時操作系統(tǒng)RT-Thread,具有組件豐富、可靠性高等諸多優(yōu)點。
h1654155744.0520
分享h1654155744.0520
團隊成員
溫家保 系統(tǒng)設(shè)計
本項目硬件主要有電源模塊、STM32核心板(含SDRAM、EEPROM、Nand Flash、USB通信等功能部分)、ESP32模塊電路、和FS2012模塊。各部分電路介紹如下。
2.1 電源模塊
通過分析,此項目所需功耗約為2W。電源模塊采用寬輸入電壓,低噪聲500mA,5V固定輸出的LTC1763芯片,再將5V電壓使用LM1117低壓差穩(wěn)壓器轉(zhuǎn)換為3.3V電壓給整個系統(tǒng)供電。電源電路原理圖如圖4所示。
圖4 系統(tǒng)電源電路原理圖
2.2 STM32F429核心板
為滿足系統(tǒng)高性能和適應(yīng)嵌入式RTOS的需求和后續(xù)功能擴展,本項目采用STM32F429高性能微控制器。并配有SDRAM、Nand Flash、EEPROM等芯片保證系統(tǒng)性能。STM32F429運行主頻最高180MHz,內(nèi)部集成了多達20個通信模塊,能支持Compact Flash、SRAM、PSRAM、NOR、NAND以及現(xiàn)在的SDRAM存儲器,內(nèi)部定時器多達17個,完全滿足本項目需求。核心板電路原理圖如圖5所示。
圖5 STM32核心板原理圖
2.3 ESP32模塊
ESP32是集成2.4GHz Wi-Fi和藍牙雙模的單芯片方案,采用臺積電(TSMC)超低功耗的40納米工藝,具有超高的射頻性能、穩(wěn)定性、通用性和可靠性,以及超低的功耗,滿足不同的功耗需求,適用于各種應(yīng)用場景。
ESP32專為移動設(shè)備、可穿戴電子產(chǎn)品和物聯(lián)網(wǎng)(IoT)應(yīng)用而設(shè)計。本項目中使用ESP32模塊連接系統(tǒng)與互聯(lián)網(wǎng),實現(xiàn)流量數(shù)據(jù)實時上傳功能。ESP32模塊外圍電路如圖6所示。
圖6 ESP32模塊外圍原理圖
2.4 FS2012模塊
氣體流量傳感器模塊采用IDT公司高性能FS2012模塊,實現(xiàn)對氣體流量的采樣,工作電流僅為30mA(5V電壓),其精度達到2%,具有數(shù)字I2C接口和模擬輸出接口,是實現(xiàn)氣體流量檢測的最佳選擇。本項目采用排線外接FS2012模塊,通信接口采用模擬輸出接口方式與STM32F429連接。由于FS2012輸出電壓0~5V,STM32內(nèi)部ADC采樣電壓最大3.6V,因此通過兩個1K電阻分壓后輸入到STM32的ADC通道。
2.5 系統(tǒng)硬件PCB設(shè)計
系統(tǒng)硬件采用核心板+底板方案。核心板包含STM32F429、SDRAM、Nand Flash、EEPROM、調(diào)試接口、USB通信接口等。為實現(xiàn)存儲芯片的可靠工作,本項目核心板PCB采用4層PCB設(shè)計,其層疊設(shè)計如圖7所示。
圖7 核心板PCB層疊設(shè)計
圖8 核心板PCB設(shè)計圖
底板包含核心板接口和各種模塊接口。其PCB如圖9所示。
圖9 底板PCB設(shè)計圖
經(jīng)過焊接并調(diào)試各功能模塊,最終制作出本項目硬件電路如圖10所示。
本項目軟件使用的功能模塊較多,軟件功能模塊如表1所示。
表1 軟件功能模塊
序號 | 軟件模塊 | 功能 | 備注 |
1 | 系統(tǒng)初始化 | 實現(xiàn)系統(tǒng)和各模塊驅(qū)動初始化 | |
2 | FS2012采集模塊 | 實現(xiàn)對氣體流量的AD采集 | |
3 | EEPROM存取模塊 | 實現(xiàn)對流量數(shù)據(jù)的存儲與讀取 | |
4 | ESP32 AT指令模塊 | 實現(xiàn)對ESP32的控制 | |
5 | MQTT通信模塊 | 實現(xiàn)將氣體流量數(shù)據(jù)上傳至互聯(lián)網(wǎng)云平臺 |
若使用裸機程序編寫,將花費大量時間安排各模塊工作流程,以保證各模塊之間無縫配合。因此本項目采用嵌入式RTOS進行程序設(shè)計,各個軟件功能采用模塊化、多任務(wù)設(shè)計。
本項目采用RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)。RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)是由上海睿賽德電子科技有限公司研發(fā)的穩(wěn)定可靠、簡單易用、高度可伸縮、組件豐富的嵌入式RTOS。RT-Thread提供了專為針對物聯(lián)網(wǎng)開發(fā)的各種組件,其中AT組件、SAL組件、onenet軟件包、MQTT軟件包和各種設(shè)備驅(qū)動可用于本項目開發(fā)。并且具有簡單易用的調(diào)試組件如finsh組件、ulog組件,大大提高了軟件開發(fā)效率。
3.1 軟件整體設(shè)計方案
軟件設(shè)計采用開源嵌入式系統(tǒng)RT-Thread作為運行基本系統(tǒng)。在此基礎(chǔ)上增加各模塊使用的驅(qū)動和線程函數(shù),系統(tǒng)每10ms進行一次進行線程調(diào)度,保證系統(tǒng)實時性。軟件整體設(shè)計流程如圖11所示。
圖11 軟件流程圖
3.2 系統(tǒng)初始化
系統(tǒng)初始化包含系統(tǒng)時鐘、IO、定時器、AD采樣、串口、I2C、ESP32、onenet等初始化,不同的是,RT-Thread操作系統(tǒng)提供組件初始化功能,無需在主函數(shù)初始化時初始化系統(tǒng)外設(shè),應(yīng)用起來十分靈活。本項目各初始化函數(shù)如表2所示。
表2 組件初始化函數(shù)
序號 | 驅(qū)動模塊 | 初始化函數(shù) | 備注 |
1 | 板級初始化 | rt_hw_board_init(); | 系統(tǒng)初始化 |
2 | 串口初始化 | INIT_BOARD_EXPORT(stm32_hw_usart_init); | 組件初始化 |
3 | I2C初始化 | INIT_BOARD_EXPORT(hw_i2c1_init); | 組件初始化 |
4 | ESP32初始化 | INIT_APP_EXPORT(at_socket_device_init); | 組件初始化 |
5 | onenet_mqtt初始化 | INIT_APP_EXPORT(onenet_mqtt_init); | 組件初始化 |
3.3 FS2012采集模塊
程序啟動后即刻通過STM32內(nèi)部12bit ADC采樣FS2012輸出的模擬信號,調(diào)用函數(shù)為fs2012_mess_get_adc(rt_int16_t *mess)實現(xiàn)氣體流量的采集。采樣后通過計算得出當前實時的氣體流量值。為保證長時間采集的氣體流量準確性,原則上采樣周期越大,計算出的流量總和越準確。本項目采樣周期1s,連續(xù)采樣10次后計算一次當前流量平均值和總流量值。
為保證數(shù)據(jù)準確性,對10次數(shù)據(jù)進行排序,去除最小值和最大值后計算8次數(shù)據(jù)的平均值。計算完成后向EEPROM寫入當前總流量的值。
3.4 EEPROM存取模塊
為保證斷電重啟后前面的總流量數(shù)據(jù)準確,程序啟動后讀取一次EEPROM內(nèi)存儲的重啟前的總流量值。
3.5 ESP32 AT指令模塊
STM32通過串口AT指令對ESP32模塊進行控制。其模塊配置過程如下所示。
3.6 MQTT通信模塊
配置完成ESP32模塊后,ESP32作為TCP Client,通過MQTT協(xié)議與中國移動OneNET平臺進行數(shù)據(jù)傳輸,主要將計算得到的氣體流量當前流量速度與總流量上傳至OneNET平臺。
3.7 中國移動OneNET平臺使用
OneNET云平臺是由中國移動打造的PaaS物聯(lián)網(wǎng)開放平臺。能夠幫助開發(fā)者輕松實現(xiàn)設(shè)備接入與設(shè)備連接,快速完成產(chǎn)品開發(fā)部署,為智能硬件、智能家居產(chǎn)品提供完善的物聯(lián)網(wǎng)解決方案。本項目使用MQTT協(xié)議接入OneNET平臺,實現(xiàn)流量數(shù)據(jù)的在線監(jiān)測。需要在OneNET平臺上創(chuàng)建賬號并創(chuàng)建產(chǎn)品,復(fù)制設(shè)備ID、鑒權(quán)信息、APIkey等信息,將其配置進onenet組件包對應(yīng)的位置。
完成項目硬件設(shè)計和軟件設(shè)計后,進行氣體流量在線監(jiān)測測試。由于目前未制作連接于燃氣管道的結(jié)構(gòu)工裝,因此測試時使用軟管對接流量傳感器P1管道并進行吹風(fēng),獲取2分鐘測量數(shù)據(jù)。OneNET云平臺顯示總流量數(shù)據(jù)和當前流量速度如下所示。
使用手機客戶端查看的數(shù)據(jù)如下所示。
由于視頻文件較大,無法上傳,因此視頻放在優(yōu)酷網(wǎng),請自行觀看。
優(yōu)酷演示視頻鏈接:https://v.youku.com/v_show/id_XMzk5OTY2MDgyNA==.html?spm=a2h3j.8428770.3416059.1
觀看密碼:messmonitor
(1.75 MB)下載