无线温度采集与显示系统的设计与实现

(整期优先)网络出版时间:2011-12-22
/ 2

无线温度采集与显示系统的设计与实现

刘莹王威

刘莹王威(沈阳理工大学应用技术学院,辽宁沈阳110000)

摘要:本论文提出一种利用单片机控制DS18B20温度传感器采集温度、控制LCD1602实时显示温度值、控制NFR240L1进行数据的无线传输,并由单片机把温度数据传至计算机进行存储的一种方案。本系统中所用到的器件是STC公司的STC89C52单片机、温度传感器DS18B20和无线通信模块NFR24L01,测量结果用液晶显示器LCD1602显示采集的数字信息,并利用单片机串行口,通过RS-232总线及通信协议将采集的数据传送到PC机,并对测量结果进行显示。

关键词:温度传感器;无线传输;单片机

绪论

当今社会已经进入信息时代,人们在关注对自己有用的信息同时,获取这些有用的信息数据显得尤为的重要。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。温度是环境监测的重要参数,在一些特定的场合常常需要对温度进行监测。本系统是计算机测控系统中的一种。所谓计算机测控,就是利用传感器将被检测的对象中的物理参量(如温度、压力、液位、速度等)转换为电量(如电压、电流),将这些代表实际的物理参量的电量输入装置中转换为计算机可识别的数字量,并且在计算机的显示器中以数字、图形或曲线的方式显示出来,从而使操作人员能够直观的而需素的了解被监控对象的变化过程。

1系统设计方案

本系统的温度采集部分、无线通信部分、显示部分、上位机计算机测控部分每一部分都有很多种选择。

综合各种实验方案,本系统选择了DS18B20、LCD1602、NRF2401、VB串口通信MSComm控件。

2系统的硬件设计

在单片机的控制下,温度传感器把温度数据传至发送端单片机,发送端单片机把收到的数据进行处理,并控制NRF24L01发射模块把数据发射出去。接收模块收到数据后,把数据通过SPI通信传至接收端单片机,接收端单片机在对数据进行处理。最后接收端单片机再把有效的数据通过RS-232串口传至计算机,计算机对收到的数据进行采集和存储。

2.1单片机部分设计

单片机是本系统的主控部分,单片机的种类很多,许多厂商都在做自己的单片机。如Atmei、Philips、NEC公司等。各自生产商所生产的单片机型号更是层出不穷。

根据实际的需要,本系统只是对温度传感器的数据进行采样,在LCD1602上显示,该应用还涉及单片机与上位机PC机的串口通讯。因此选用的单片机还应有一个串口。功能不是特别复杂,实时性不太强,运算量不是太大,因此选用8位单片机。满足这两个条件的单片机很多,根据实际情况,考虑到成本,本系统选用STC89C52单片机。

2.2温度传感器设计

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤。每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。其详细内容将在本论文的软件设计部分出现。

2.3液晶显示电路设计

字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚)。

2.4无线传输模块设计

无线收发模块(NRF24L01)是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片无线收发器包括:频率发生器增强型SchockBurstTM模式控制器、功率放大器、晶体振荡器、调制器解调器,输出功率频道选择和协议的设置可以通过SPI接口进行设置极低的电流消耗当工作在发射模式下发射功率为-6dBm,电流消耗为9.0mA,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。

3系统软件设计

3.1数字温度传感器程序的设计

DS18B20的一线工作协议流程是:初始化、ROM操作指令、存储器操作指令、数据传输。其工作时序包括:初始化时序、写时序、读时序。

3.2液晶显示的程序设计

1602液晶模块内部的控制器共有11条控制指令,通过编程设置相关的指令可以让LCD1602工作在不同的状态。条控制指令分别为:清屏指令,指令代码为01H、光标复位,光标返回到地址00H、光标和显示模式设置、显示开关的控制、光标或显示移位、功能设置命令、字符发生器RAM地址设置、DDRAM地址设置、读忙信号和光标地址、写数据(RS=1,RW=0时)、读数据(RS=1,RW=1时)。

3.3串口通信部分程序设计

串行口通信这部分经常用到波特率的计算,本系统用定时器T1作波特率发生器,选用串行口工作方式1。

3.4上位机程序设计

在本系统中,为了让采集到的温度传到PC上位机中,对数据进行处理。我采用了VisualBasic语言设计。VB是程序设计人员在Windows环境下最常用的开发串口通信编程的程序的编程语言。

在实践中,使用VB串口通信控件MSComm实现通信的方法比调用API函数的方法更加方便、快捷,而且用较少的代码可以实现相同的功能。从而使编程效率大大提高。

4结论

本设计的温度采集系统采取了软件与硬件相结合的开发方法,选用了STC89C52单片机,由于它具有快速、指令简单,驱动能力强等优点,所以它可以对数据信号进行采样。温度采集部分选用了DS18B20温度传感器,该传感器属于智能传感器可以直接把模拟电压信号转化为数字信号。还利用VB6.0的MSComm控件完成了上层软件和界面的设计,该控件是专用的串行通信控件,可以直接访问串口。以便将来需要的时候使用,并且能控制单片机动作,界面友好。温度数据传输部分采用了2.4G无线频射技术,利用此技术可以很好地解决布线问题,为以后分布式温度采集系统的设计打下了基础。