韩旭威 石崟 杨春艳 张渤雨 佟维妍
摘 要 本文提出了一种在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-),辽宁锦州人;毕业院校:沈阳化工大学,专业:电气工程及其自动化,学历:本科,职称:助理工程师;现就职单位:沈阳工业大学辽阳分校,研究方向:创新创业教育。