基于VB 和单片机的温湿度及火焰监控报警系统设计
2017-04-15陶佳
陶 佳
(广东省技师学院,广东惠州,516100)
基于VB 和单片机的温湿度及火焰监控报警系统设计
陶 佳
(广东省技师学院,广东惠州,516100)
本文介绍了运用VB6.0的MSComm控件完成计算机与单片机的串行通信,采用数字温湿度传感器和火焰传感器完成对数据的采集。单片机将处理后的数据上传到PC机,利用VB控件显示,并根据监测到的数据进行判断发送控制信号给单片机,进而驱动执行机构实现相应的控制。
VB6.0;传感器;单片机;串行通信
0 引言
自动化、智能化是未来的趋势,特别是在企业、学校机房等一些特殊环境为了更好的维护一些仪器设备,使其能够正常工作并且避免火灾的产生,需要对机房的温湿度及是否有火焰进行监控,并且不用手动控制空调、火灾报警器,通过计算机实现对空调及报警器的控制,大大提高了工作效率。单片机利用温湿度传感器和火焰传感器采集数据,采集完的数据传送给 PC 机作出处理,为了使数据快速有效的传输, PC 机与单片机必须有可靠的通信方法,本文先介绍了PC机和单片机通信接口的设计,然后基于 VB 软件平台的PC 机一方面接收单片机从传感器采集的数据,另一方面发送信号给单片机对执行机构进行控制实现温湿度的调节及火焰报警。
1 系统的结构与原理
本系统PC机与单片机之间串行通信使用RS232接口进行,PC机可以实时的显示采集到的温湿度和光线(火焰)数据,并且把得到的数据每隔一分钟进行保存,根据检测到的数据对空调的温度进行控制,可以选择所期望的温度,发指令给单片机控制温湿度值;PC机还可以显示是否有火焰产生,一旦火焰产生,发指令给单片机控制报警器报警。单片机负责对温湿度和火焰信号采集,以及控制调温设备和报警器的运行,传感器分别采用 SHT71温度传感器和telesky公司的火焰传感器。单片机将采集到的数据按照串行通信协议发送给PC机,由PC机进行实时显示,根据显示的情况设定期望的温度和湿度值,发送控制信号给单片机控制执行机构。基于 VB 的人机交互平台,达到数据采集处理进而控制执行机构的目的。由于计算机串行接口与 ATemga16 单片机的驱动电平不一致,故采用MAX232作为两者的接口电平转换芯片。
2 系统硬件的设计
下位机系统由单片机、传感器和控制执行机构三个部分组成,主要负责数据的采集和执行命令。单片机采用的是ATmega16,ATmega16 在片内集成了 16KB 的 Flash 程序存储器、1KB 的 RAM 数据存储器和 512字节的 EEPROM数据存储器,32个可编程的 I/O总线,2个 8 位、1个 16位的定时/计数器和1个串行收发器 USART。
温湿度传感器采用SHT71,它具有数字输出、低功耗、 高精度、快速响应、抗干扰能力强、性价比高等优点,相对湿度的工作范围在0%~100%,温度的工作范围—40°C~123.8°C 。
火焰传感器采用深圳天士凯(telesky)电子公司的红外线火焰传感器,火焰探头探测角度为前方60度左右,可根据实际需要使用多个该型号传感器,实现全角度覆盖,输出接口可以与单片机I/O口直接相连,具有数字和模拟两种信号输出形式,灵敏度可调。
3 通信接口设计
系统上位机和下位机采用 RS-232协议进行通信,因为单片机输入和输出电平为 TTL电平,PC机上配备的异步通信口符合RS-232 标准,RS-232C 的逻辑“0”电平规定为+5~+15V ,逻辑“1”电平规定为−15~−5V ,因此不能直接与 TTL/CMOS 电路连接,要实现单片机 ATmega16与 RS-232 进行通信,必须经过电平转换,MAX232经常用于 RS-232C 电平转换。
4 系统软件的设计
软件系统主要包括 PC 机与单片机的通信程序的设计。PC机(上位机)采用串行通信控件 MSComm与单片机进行通信,利用MSComm 控件的 Input 和 Output 属性完成串口数据的接收和发送功能。单片机(下位机)接收 PC 机发送的命令并判断是否为标志位,如果相符的话就向 PC 机发送采集的数据,并且根据PC机发出的控制命令对执行机构进行相应的动作。
4.1 PC机通信设计
PC机通信程序设计包括通信初始化,接收单片机上传的温湿度和光线(火焰)数据,对接收到的数据进行显示以及存储,向单片机发送控制命令,从而使执行机构在单片机控制下完成相应的动作。
4.1.1 利用MSComm 控件通信初始化
单片机与PC机进行异步通信,采用RS-232标准接口,为了实现信息的同步,要求两者之间有一定的通信协议,上、下位机之间以波特率为 9600 b/s 的传输速率通信,无校验位,8位数据位和1位停止位。传送的数据类型为二进制格式,单片机一次性传输六个字节,高字节在前,低字节在后,包括起始与结束字符。设置VB中MSComm控件参数,以下部分程序代码:
MSComm1.CommPort=1
MSComm1.Settings=”9600,n,8,1”
MSComm1.InputMode=1
MSComm1.InputLen=0
MSComm1.SThreshold=1
MSComm1.InBufferCount=0
MSComm1.OutBufferCount=0
MSComm1.RThreshold=6
4.1.2 PC机用 MSComm 控件接收数据
利用 MSComm 控件的 Input 属性中以接收数据,Input 属性从接收缓冲区中返回一串数据,它在设计阶段是无效的, 在运行阶段也只能读。单片机发送采集的数据,每收到6个字符引起Oncomm事件,将接收的数据经过相应的处理后实时显示在文本框中,以下是部分接收数据的程序:
DimexchAsString //用来从接收缓冲区读取数据
DimresultAsLong
DimtempAsDouble //用来存储温度、温度
DimhumiAsDouble
Dimrd()AsByte //接收数据数组
Dimsd()AsByte //发送数据数组
ConstSOH=&H1 //数据初始标志位
ConstEOT=&H4 //接收数据结束标志位
4.2 单片机程序设计
单片机程序设计主要包括串口初始化,接收 PC机发送命令是否为标志位,将 SHT71传感器和火焰传感器采集到的数据发送给PC 机,接受PC机发控制指令给相关装置,使其完成动作。
4.2.1 单片机串口初始化
ATmega16单片机提供全双工串行通信接口 RXD、TXD,片内集成一个全双工的通用同步/异步串行收发器 USART,它具有相互独立的接收数据寄存器 RXB 和发送数据寄存器 TXB,能够支持同步和异步的传输,有独立的高精度波特率发生器,不占用定时/计数器,波特率寄存器 UBRRL和 UBRRH用于设置波特率。
部分初始化程序如下:
UCSRA=0x00;
UCSRB=0xD8;//USART模式:异步,USART接收器与发送器使能。
UCSRC=0x86;//通信参数;
UBRRH=0x00;//USART波特率为9600
UBRRL=0x19;
4.2.2 单片机发送和接收数据
通过设置UCSRB 寄存器中的发送允许位TXEN,使USART发送数据;设置接收允许位 RXEN,使USART发送数据。当TXEN 和RXEN 使能时,TXD引脚和 RXD 引脚的通用数字 I/O功能被代替,分别作为发送器的串行输出引脚和接收器的串行输入引脚使用。发送缓冲器中需要发送的数据,由CPU写入 UDR 发送数据寄存器来实现,一旦移位寄存器准备发送下一帧时,缓冲器中的数据将被移到移位寄存器中。只要新的数据被加载到移位寄存器中,则数据就会按指定的帧格式进行发送。状态标志位 RXC为1时,代表在接收缓冲器中收到的一个数据未被读取。当 RXC 为0时,代表数据接收器没有数据。
5 结论
本文在 windows下利用 VB6.0和单片机 Atmega16的进行串行通信,单片机负责处理温湿度传感器和火焰传感器采集的数据,PC 机负责接收命令和发送指令给单片机,并将采集得到的数据在VB 界面上显示出来,发出命令执行控制执行机构。PC机中利用MSComm 接受和发送数据,屏蔽了通信过程的低层操作。通过设置控件的相应属性,完成数据的接收和发送,其编程简单,容易实现,大大节省了开发时间。
[1]周霭如,官士鸿.VisualBasic 程序设计讲义.广州:华南理工大学教材供应中心.1999年
[2]范逸之,陈立元.VisualBasic 与RS-232 串行通信控制.北京:清华大学出版社.2002年
[3]马潮.AVR单片机嵌入式系统原理与应用实践.北京:北京航空航天大学出版社.2007年.
陶佳,男,广东省技师学院,讲师,研究方向:智能控制工程,无线通信技术
Design of Temperature, Humidity and Flame Monitoring and Alarming System Based on VB and Single - chip Microcomputer
Tao Jia
(Guangdong Technician College, Huizhou Guangdong,516100)
This paper describes the use of VB6.0 MSComm control complete computer and microcontroller serial communication, the use of digital temperature and humidity sensors and flame sensors to complete the data collection. MCU will be processed data uploaded to the PC, the use of VB control display, and in accordance with the monitoring data to determine the sent control signal to the microcontroller, and then drive the implementing agencies to achieve the appropriate control.
VB6.0; sensor; MCU; serial communication