韓旭威 石崟 楊春艷 張渤雨 佟維妍



摘 要 本文提出了一種在5G移動網絡下基于NB-IOT的環境感知系統的設計方案,介紹了系統總體結構及工作過程,簡述了基于NB-IOT的環境感知系統的硬軟件設計。該系統大大縮短了數據傳送時間,提高了空氣檢測的準確度。
關鍵詞 環境感知;NB-IOT;STM32
引言
隨著人們對于美好環境的需求日益增強,環境保護的意識正在逐步提高,室內空氣質量管理受到了社會各界的廣泛關注。近年來,在智能家居、智慧農業和智慧工廠等領域對給予互聯網的環境監測系統的需求越來越多。在家居生活中,利用NB-IOT無線信息傳輸技術,使人們在上班、外出、旅游時,也可以實時監測到家中空氣是否異常,是否發生煤氣泄漏或火災等情況,擺脫了以往只能在家中才能得知家中空氣情況的尷尬情況。
1NB-IOT通信介紹
窄帶物聯網(NB-IOT)構建于蜂窩網絡,適用于低功耗廣域覆蓋的物聯網場景;BC95-B5是一款高性能、低功耗的NB-IOT模塊,支持六個頻段。通過NB-IOT無線電通信協議(3GPP Rel.14),BC95-B5模塊可與網絡運營商的基礎設備建立通信。
2硬件電路設計
2.1 系統總體設計
本系統包含溫度傳感器、酒精傳感器、有機氣體傳感器和PM2.5傳感器等多種傳感器。多點控制器分別接收傳感器的信息,通過通信芯片將信息傳遞給云端,云端將信息傳遞給顯示端并且對危險數據進行報警。系統組成如圖1所示。
2.2 STM32主控芯片
STM32F103RCT6是32位ARM微控制器,具有高性能、低成本、低功耗的特點。主頻是72MHz,程序存儲器為256KBFLASH,RAM容量是48K,工作電壓為2~3.6V。
2.3 數據采集
室內空氣溫濕度傳感器選用了DS18B20數字溫濕度傳感器,其具有體積小、功耗低、抗干擾能力強、測量精度高的特點,適用于各種狹小空間設備數字測溫和控制領域[1]。酒精傳感器、有機氣體傳感器和PM2.5傳感器的DO引腳隨著濃度不同,輸出不同的數字量信號。根據不同空間的酒精含量、有機氣體含量和PM2.5含量要求的不同,在控制器中設定最高閾值[2]。當DO引腳輸出值高于高閾值時,通信板塊向云端發出指令,云端通過釘釘APP發出報警信息。傳感器與控制器的接線圖如圖2所示。
2.4 LCD顯示
本設計中STM32F103RCT6直接驅動1.44寸彩色液晶屏,顯示檢測數據。兩者間的通信,采用6位連接法。LCD彩色液晶屏接線圖如圖3所示。
2.5 云端、APP、釘釘
開發基于Android系統、阿里云和釘釘的移動控制終端軟件,解決遠程控制中空間受限的問題。阿里云物聯網平臺,具有極高的安全性,提供多重防護,可保障設備數據安全。
3軟件設計
本系統軟件利用Keil5開發環境進行編程。程序由系統主程序、顯示控制子程序、檢測子程序等模塊組成,其中PM2.5檢測流程如圖5所示。
部分PM2.5檢測子程序如下:
void ADC2x_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
ADC_InitTypeDef? ? ? ?ADC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_ADC2,ENABLE);
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC2, &ADC_InitStructure);
ADC_Cmd(ADC2, ENABLE);
ADC_ResetCalibration(ADC2);
while(ADC_GetResetCalibrationStatus(ADC2));
ADC_StartCalibration(ADC2);
while(ADC_GetCalibrationStatus(ADC2));
ADC_SoftwareStartConvCmd(ADC2, ENABLE);
}
u16 Get2_ADC_Value(u8 ch,u8 times)
{
u32 temp_val=0;
u8 t;
ADC_RegularChannelConfig(ADC2, ch, 1, ADC_SampleTime_239Cycles5);
for(t=0;t { ADC_SoftwareStartConvCmd(ADC2, ENABLE); while(!ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC )); temp_val+=ADC_GetConversionValue(ADC2); delay_ms(5); } return temp_val/times; } short JIU_Get_Temp() { u16 value=0; float vol; value=Get2_ADC_Value(ADC_Channel_12,20); vol=(float)value*(3.3/4096); return vol; } 4結束語 本設計利用溫度傳感器、空氣酒精傳感器、空氣有機氣體濃度傳感器、空氣PM2.5傳感器,采用多點實時監測室內空氣質量,STM32處理器根據檢測數據,采用NB-IOT通信技術快速傳遞數據。該環境感知系統的設計思想可以拓展到智能家居,車內氣體檢測和智能農業空氣環境監控等多方面。 參考文獻 [1] 裴君君.基于ZigBee和NB-IoT的環境監測系統設計與實現[D].深圳:深圳大學,2018. [2] 劉火良、楊森.STM32庫開發實戰指南(第2版)[M].北京:機械工業出版社,2017. 作者簡介 韓旭威(2000-),遼寧遼陽人;沈陽工業大學,學歷:本科,學校在讀,研究方向:建筑電氣與智能化。 通訊作者: 石崟(1983-),遼寧錦州人;畢業院校:沈陽化工大學,專業:電氣工程及其自動化,學歷:本科,職稱:助理工程師;現就職單位:沈陽工業大學遼陽分校,研究方向:創新創業教育。