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