贾春刚
(青岛海信网络科技股份有限公司,山东青岛,266071)
根据设计方案架构图1可以看出,系统由微处理器模块、OLED液晶显示模块、DHT11传感器模块、报警模块和无线通讯模块组成。方案设计遵循简洁的原则,因此,所有的外围模块采用串行方式与微处理器模块连接。该设计控制核心是STM32F103c8t6单片机,实现传输和处理数据的基本功能,其他五大模块围绕单片机展开。在设计系统时,采用模块设计法,通过单独设计各个功能模块,达到系统架构清晰明确的效果。
图1 系统方案架构图
系统硬件为6个分模块与1个总模块连接。DHT11温湿度模块DATA引脚与单片机IO口PC14连接传输数据,VCC接电源,GND与NC并联接地。单片机的USART连接无线通讯模块GSM800C实现异步通讯功能。OLED模块3、4、5、6引脚与单片机PB1、PB0、PA7、PA6引脚的IO口连接传输数据。报警部分由单片机IO口PC14连接报警模块三极管的基极,集电极连接蜂鸣器和PB14,PA10连接报警模块的LED灯共同组成。报警时LED和蜂鸣器一起运作达到报警效果。调节部分单片机引脚PB4连接三极管,利用单片机传输的数据和三极管的特性对继电器进行操作。系统电路原理图如上图2所示。
图2 系统电路原理图
2.2.1 温湿度数字采集电路
如图3所示的DHT11电路原理图,温湿度传感器DATA与单片机IO端口PC14单总线传输,收发串行数据,Pin3、4并联接地,其中NC为空脚,可接可不接,VCC引脚连接电源。使用3.3V的电源供电时,要注意电路中的走线长短,以避免供电不足产生的偏差。传感器读取的数据为上一次测量结果,本系统通过连续两次的读取数据实现实时数据的采集。
图3 DHT11电路原理图
2.2.2 DHT11数字温湿度传感器
DHT11温湿度传感器是使用DATA这个可传输数据的引脚进行单总线协议通信的,单片机通过复位电路发送一次复位信号后,DHT11发送响应信号,同时拉高总线准备传输数据。传输的数据分为湿度数据16bit部分、温度数据16bit部分和校验位8bit。
数据时序图如图4所示。
图4 数据时序图
STM32F103c8t6对传感器发出传输开始信号,传感器接收信号后采集系统,采集系统响应后发出数据的同时再进行一次信号采集。如果没有接收到主机的响应信号,数据采集模块转变为低功耗模式,不动作。
微处理器读取步骤:
(1)传感器通电后,测量并记录环境中的温度、湿度数据,然后通过上拉电阻使DATA数据线保持为高电平,等待信号。
(2)STM32F103c8t6的 I/O输出低电平发送信号,设置时间大于18ms小于30ms,然后单片机的I/O设置变为输入模式。由于上拉电阻的关系,电平回到高电平,同时等待DHT11做出回答信号,发送信号如图5所示。
图5 主机发送起始信号
(3)当DHT11接收到STM32F103c8t6发出的信号时,DHT11传输引脚发出回应信号,信号时长为83微秒,回应信号为低电平,然后输出高电平87us回应单片机准备接收数据,工作过程如图6所示。
图6 从机响应信号
本系统选用带有振荡电路的有源蜂鸣器PNP三极管S8550。通过STM32F103c8t6发出电平给蜂鸣器即可发出报警信号。蜂鸣器接在三极管的集电极,驱动信号为3.3V的电平,基极接在单片机I/O口的PC14。单片机IO口默认为高电平,系统通电时,蜂鸣器是不发声的,当单片机检验温度或者湿度超过上下限时,单片机传输低电平,三极管被导通,蜂鸣器响起达到报警功能。蜂鸣器发出的声音大小可根据PWM驱动信号频率调节,有源蜂鸣器电路原理图如图7所示。
图7 有源蜂鸣器电路原理图
GSM 800C是一款四频GSM/GPRS模块,分别GSM/GPRS850/900/1800/1900MHz频率。该设备作为本系统远程监视的核心,在监控模块中,产品利用高电平通电,低电平断电自动开机,时刻等待接收单片机传输的报警信号,信号一旦接收,即刻发送通知,这样达到真正意义上的无人监视。该模块利用TTL串口与单片机、电脑连接,实现通讯功能;支持短、彩信,支持录音功能,支持蓝牙,支持TTS等功能。
根据功能需求设计系统流程图如图8。在工作时无需手动开机,通电后自动初始化系统各个模块。待模块初始化完毕后,传感器读取温度、湿度数据,读取数据后传输给单片机处理计算,再转化为数字字符显示在OLED显示屏上。读取温湿度的同时系统调用功能函数,并将读取的数值与设置的阈值进行比较。若大于或小于设置的温湿度阈值,单片机发送报警信号给报警模块。蜂鸣器收到信号后,响应信号,同时LED亮起,短信模块接收信号后发出信息,水泵继电器收到信号后开始运行。读取数据时,系统还会实时缓存数据,方便计算机读取,以达到实时监控的效果。
图8 系统软件流程图
温湿度传感器开机进行初始化,做好等待信号准备,得到单片机的指令后,开始对外部环境的温度与湿度进行采集数据。通过对比数据是否正确,决定是否发出数据。正确发出数据,反之重新采集。
本系统采用GSM无线通讯模块的TEXT模式,在温度或者湿度超过阈值时采用发送信息到用户手机的方式提示用户。在初始化时,通讯模块进入TEXT模式,一旦收到命令,短信模块把字符串拼接进入函数,发送短信。10s后如果还是收到单片机命令,继续发送短信,发送3次后不再发送。
关于温湿度恒定数值检测:
(1)利用空调的恒温系统检测温度稳定性,开启仪器后1分钟,温度数值不变。把房间空调设定在25度,在仪器稳定后放入空调房,每隔5分钟进行温度检测。检测结果如表1所示。
表1 温度检测结果值
结论:检测温度正常。
(2)在湿度为70%RH的环境下,检测其稳定性,每隔5分钟检测环境湿度,检测结果如表2所示。
表2 湿度检测结果值
结论:检测湿度正常。
通过实验数据观察,温度和湿度测定值都趋向于稳定,由于硬件的原因,温度存在1-2℃的误差,湿度存在1-4%RH的误差,总体来说仪器较为完善,可以使用。
在本次系统设计的器件选择上,选择了计算功能强大STM32F103c8t6处理器、温湿度检测功能较为完善的DHT11温湿度传感器、显示屏OLED和无线通信GSM800c。利用四者的结合,打造了一个包含收集-分析-显示-监控功能的机房温湿度监控系统。