环境监测系统采集终端软件运行总体流程如图所示。系统初始化完成包括液晶、ADC、串口2、T1的初始化、PWM波形的输出以及将SIM900A配置为TCP数据传输方式;串口2采用独立波特率发生器,波特率9600b/s;PWM周期为10ms,占空比约为3.2%,计数脉冲源为T0的溢出脉冲;T1定时10s,即每隔10s采集一次数据并以TCP方式发送至监测中心计算机;通过单片机串口2发送AT指令控制SIM900A模块,SIM900A的TCP配置程序采用多分支选择结构。
环境监测系统的温湿度采集严格遵照时序操作,单片机发送开始信号,先拉低数据线,持续时间应大于18ms,再将数据线设置为输入且拉高,等待dht11的响应信号。dht11发出80μs的低电平响应信号后,会将数据线拉高80μs,表示将开始数据传送,即连续发送40位数据,前32位为有效数据,分别为8位湿度整数、8位湿度小数、8位温度整数和8位温度小数,最后8位为校验和,数据位0或1都是以50μs低电平开始,根据后续高电平的持续时间加以区分,26~28μs为数据位0,70μs为数据位1。
环境监测系统灰尘浓度的采样过程如下:单片机不断地产生PWM脉冲,大约1s后GP2Y1010AU0F工作达到稳定状态。单片机在监测到PWM信号的上升沿后,延时280μs,再启动AD转换,连续4次AD采样,求得输出电压的平均值。根据输出电压(VO)与灰尘浓度(DustDensity)的函数关系式DustDensity=0.17×V0-0.1,可计算出对应的灰尘浓度值。
环境监测系统SIM900A的TCP数据传输方式主要用到的AT指令及功能描述见下表。