基于nRF905的粮库无线温湿度监控系统

2024-04-30

基于nRF905的粮库无线温湿度监控系统(精选4篇)

篇1:基于nRF905的粮库无线温湿度监控系统

基于nRF905的粮库无线温湿度监控系统

引言

温湿度是影响粮食仓储过程中品质好坏的主要因素。目前我国许多粮食仓储单位仍采用测温仪器与人工抄录、管理相结合的传统方法,这不仅效率低,而且往往由于判断失误和管理不力造成局部或大范围粮食霉变的现象时有发生。

本文介绍采用nRF905射频模块、多个DS18B20构成的测温网络、湿度传感器HS1101组成一种粮库无线全数字温湿度监控系统,彻底摆脱了传统的人工抄录方法,能实时检测粮仓中的温湿度,并根据所测的数据控制空调器、除湿机等外部设备的运行,确保粮仓内合适的温湿度环境,该设计具有简单可靠和灵活方便的特点。硬件设计

系统硬件结构由两个部分组成:中央监控系统CMS和多个远程终端节点RTN(见图1)。

图1 系统硬件

中央监控系统主要包括监控计算机和主接收器,监控计算机与主接收器之间通过串口(RS232)来通信,控制远程终端节点单片机(P89LPC916)读取温湿度值、并且实时记录读取的通道编号、DS18B20编号、时间。可以作为原始资料的积累,用于将来的数据分析,人机界面和单片机的通信用Visual Basic编程。

主接收器:通过无线射频

模块nRF905以点对点或广播方式发送监控计算机的各种控制命令,在命令发出以后,采用逐一扫描的方式探测各个数据终端有没有发送通信请求;若有则执行相应的要求。

远程终端主要由P89LPC916单片机、射频模块nRF905、DS18B20的测温网络、湿度传感器HS1101、外部设备驱动器及放大调整电路组成。通过P89LPC916单片机的3个通用IO连接多个DS18B20构成“一线总线”通信,实现DS18B20的测温网络。湿度传感器HS1101探测现场环境湿度,经过A/D转换后变为数字信号。现场检测信号由P89LPC916单片机进行处理,最后将数据通过nRF905收发器送出。当P89LPC916单片机检测到异常的储粮温湿度时,启动风机等外部设备,送信号到监控计算机和报警电路,有声光报警,提醒工作人员。DS18B20

美国Dallas公司的DS18B20数字式温度传感器,工作电压3.0~5.5V,温度测量范围-55~125℃,在-10~85℃范围内测量精度为±0.5℃。与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别在93.75ms和750ms内将温度值转化为9位和12位的数字量。该芯片在检测点已把被测信号数字化了,因此在单总线上传送的是数字信号。本系统设计中选择了该传感器,使得系统温度传感器模块的硬件极其简单,只占用单片机系统的一个数据I/O口加一个上拉电阻即可。

DS18B20因其序列号在出厂前已写入片内ROM中,主机在进入操作程序前必须逐一接入DS18B20用读ROM(33H)命令将该DS18B20的序列号读出。当主机需要对众多在线DS18B20的某一个进行操作时,首先要发出匹配ROM命令(55H),接着主机提供64位序列码,之后的操作就是针对该DS18B20的。在DS18B20组成的多路测温系统中,主机在发出跳过ROM命令之后,再发出统一的温度转换启动码44H,就可以实现所有DS18B20的统一转换。再经过1s后就可以用很少的时间去逐一地读回每个DS18B20的温度数据。射频芯片nRF905

nRF905是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9~3.6V,工作于433/868/915MHz3个ISM频道。nRF905可以自动完成处理字头和CRT(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与微控制器通信,配置非常方便,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,在接收模式时电流为12.5mA。

nRF905传输数据时为非实时方式,即发送端发出数据,接收端收到后先暂存于芯片存储器内,外面的MCU可以在需要时再到芯片中去取。nRF905一次的数据传输量最多为32B。无线数据传送的实现

本设计中将单片机P89LPC916的SPI接口和nRF905的SPI接口相连,另外再选几个I/O口连接nRF905的输入输出信号,如图2所示。

图2 nRF905控制电路

nRF905在正常工作前应由P89LPC916先根据需要写好配置寄存器,其后的工作主要是两个:发送数据和接收数据。

发送数据时,P89LPC916先把nRF905置于待机模式(PWR_UP引脚为高、TRX_CE引脚为低),然后通过SPI总线把发送地址和待发送的数据都写入相应的寄存器中,之后把nRF905置于发送模式(PWR_UP、TRX_CE和TX_EN全置高),数据就会自动通过天线发送出去。为了数据可靠地传输,将射频配置寄存器中的自动重发位(AUTO_RETRAN)设为有效,数据包重复不断地一直向外发,直到P89LPC916把TRX_CE拉低,退出发送模式为止。

接收数据时,P89LPC916把nRF905的TRX_CE引脚置为高电平,TX_EN引脚拉为低电平后,就开始接收数据。本设计中P89LPC916设定的40s内一直判断nRF905的DR引脚是否变高,若为高,则证明接收到了有效数据,可以退出接收模式,若一直没有接收到,待时间到时也退出接收模式。退出后在待机模式,P89LPC916通过SPI总线把nRF905内部的接收数据寄存器中的数据读出,即接收到的有效数据。软件设计

本系统设计的重点是控制nRF905的程序设计,首先是对nRF905进行初始配置,配置完成后按需要编写用户数据的发送或接收程序。

图3 软件系统的整体数据处理流程

初始化

·初始化nRF905的射频配置寄存器

这些寄存器中有很多信息,必须根据实际情况进行配置,本设计中nRF905外接16MHz晶体,XOF应配置为0 11;PA_PWR为发射功率、RX_RED_PWR为接收灵敏度,可根据需要配置;另外还有发送地址、接收地址、发送数据和接收数据的长度(字节数),可根据实际应用配置。注意这组寄存器中还有接收时的实际地址,而发送地址在其他单独寄存器中。·配置nRF905的发送地址

在实际工作中,nRF905可以自动滤除地址不相同的数据,只有地址匹配且校验正确的数据才会被接收,并存储在接收数据寄存器中。本设计中配置最多4个字节(32位),发送端的发送地址应与接收端设备的接收地址相同。用户程序

根据系统的硬件设计方案,分为发送端和接收端两个部分,软件系统的整体数据处理流程如图3所示。软件系统分为5个模块:温湿度采集模块、外部设备模块、RF发送模块、RF接收模块、中央监控系统报表统计分析模块。通信协议

系统结构为有多个发送端向1个接收端单向发送温湿度数据,同时要求接收端能够根据接收的数据内容判断信号来自哪一个发送模块;接收端根据温湿度数据是否越界从而驱动前端外部设备。为此,将系统通信协议设置为如下格式:

Preamble为引导字节,Add为接收机地址,Payload为有效加载数据(包括接收显示单元识别码Rid、源发送单元识别码Sid及Data字——在接收时Data字高八位内容即为温度数据,低八位内容即为湿度数据;发送控制命令即为外部设备控制字,长度为2字节),CRC为校验码。nRF905处于发射模式时,Add和Payload由微控制器按顺序送入射频模块nRF905,Preamble和CRC由nRF905自动加载。接收时,nRF905先接收一个数据包,分别验证Preamble、Add和CRC正确后,再将Payload数据送入微控制器处理;当接收显示单元微处理器判断Payload中的Rid和本机识别码一致时,继续处理后继数据,并通过Sid来判断收到的数据来自哪一个监测点,保存至中央监控系统数据库供后期数据分析处理。结语

基于nRF905、湿度传感器HS1101以及DS18B20智能温度传器设计的分布式多点测量系统能很好的满足粮库温湿度监测的要求。自2006年3月在中山市某应急粮加工中心使用至今,系统稳定可靠,简单易用。参考文献:

1.Dallas Semiconductor.DS18B20 Datasheet.http:///,2005-06-14 2.Nordic VLSI ASA Inc.nRF905 Datasheet.rev1-2.http:///,2005-01-22 3.毛哲、谢兆鸿等,粮情智能测控系统的研制,微计算机信息,2003.6:39-40

篇2:基于nRF905的粮库无线温湿度监控系统

温湿度的测量在农业生产的大棚管理,仓库粮食存储管理,生产制造行业,气象观测,恒温恒湿的空调房科研及日常生活中被广泛应用。可以说温湿度是影响日常的生产生活以及科研的一个很重要的因素。目前我国许多领域例如农业生产等仍采用测温仪器与人工抄录、管理相结合的传统方法,这不仅效率低,而且会由于判断失误和管理不力造成很多严重损失。

系统以自带SPI和两线串行接口的低功耗单片机ATmega16L为控制芯片,采用nRF905芯片组成的无线收发节点,利用数字温湿度传感器SHT11完成对环境的温湿度测量系统。同时该系统留出MAX232接口以方便与PC机通讯,实现温湿度的实时显示以及监测功能。

1 系统描述

如图1,图2所示为低功耗温湿度无线测量系统的发送和接收模块的框图。

其中图1为无线发送模块,以Atmega16L为主控制核心,控制温湿度传感器SHT11采集环境的温湿度,然后利用nRF905无线传输模块将采集到的温湿度数据发送给温湿度测量无线接收模块进行相应处理。

图2为温湿度测量无线接收模块,以Atmega16L为主控制核心,利用nRF905无线传输模块接收温湿度数据,然后利用MAX3232上传给PC机,利用相关上位机软件实时监测。

2 硬件电路设计

2.1 3.3 V供电电源模块

本设计所需的电压为3.3 V,故采用LM1117-3.3电源供电系统,如图3所示。无线发送模块以及温湿度测量模块使用的器件皆为低功耗器件。对发送端而言,可以采用5 V电池供电,很适合在野外等环境进行温湿度测量采集。而接收端可以采用5 V开关电源供电。其核心部件LM1117-3.3是一个低压差电压调节器系列。压差在1.2 V输出,此时相应的负载电流为800 mA。

2.2 单片机控制电路

本设计采用高性能、低功耗的8位AVR微处理器ATmega16L作为控制芯片[1]。

首先对于ATmega16L具有先进的RISC结构,大多数指令执行时间为单个时钟周期,是具有最高MIPS/mW能力的8位单片机。此外它还具有512 B的E2PROM,可在掉电时存储用户信息,并采用FLASH存储技术,可使单片机的内部存储单元能够在线重复擦写1 000次以上。

其次,Atmega16L的工作电压范围为2.7~5.5 V,具有睡眠模式,空闲模式,掉电模式以及省电模式,这些多样的模式也使得Atmega16L成为低功耗产品的最佳控制芯片之一。

最后,Atmega16L提供二线数字串行接口SDA和SCL,接口简单。支持主机和从机操作器件可以工作于发送器模式或接收器模式,并且支持多主机仲裁。

2.3 无线收发模块

无线收发芯片采用挪威Nordic公司的单片无线收发器芯片nRF905。工作电压为1.9~3.6 V,工作于433/868/915 MHz三个ISM频道,最大数据速率为100 Kb/s。芯片内部集成了频率合成器、接收解调器、功率放大器、晶体振荡器和调制器。其主要特点是能够自动处理报头和CRC冗余校验,而且可以直接通过SPI接口来进行软件配置。此外,其功耗非常低,以-10 dBm的输出功率发射时电流只有11 mA,工作于接收模式时的电流为12.5 mA,并内建有空闲模式与关机模式,易于实现节能。

nRF905的应用电路如图4所示。电路主要利用nRF905与外围器件构成的电路组成无线发送接收电路,图4展示的是用nRF905差分连接的环形天线图。其中,nRF905模块的SPI接口引脚MOSI,MISO,SCK引脚分别接Atmega16L的SPI接口引脚:PB5(MOSI),PB6(MISO),PB7(SCK)。nRF905的SPI接口工作于从机模式,并且利用环形天线发射信号。

为了充分利用能量,nRF905分别设定了两种工作模式和两种节能模式,分别由TRX_CE,TX_EN 和PWR_UP三个引脚决定。因此,设计使用Atmega16L的PA2~PA7连接至nRF905的控制检测,用于切换模式以及配合通信。表1为nRF905的工作模式及相应功能。

2.4 温湿度测量模块

本设计的温湿度测量所采用的是瑞士Sensiri2on公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器SHT11,SHT11可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换等特点[2]。

SHT11的湿度/温度传感器系统测量相对湿度的范围是0~100%,分辨力达0.03% RH,最高精度为±2% RH。测量温度的范围是-40~+123.8 ℃,分辨力为0.1 ℃。

SHT11传感器默认的测量温度和相对湿度的分辨率分别为14位和12位,通过状态寄存器可降至12位和8位,并具有可靠的CRC数据传输校验功能。另电源电压范围为2.4~5.5 V;电流消耗小:测量时为550 μA,平均为28 μA,休眠时为3 μA。是低功耗产品的最佳选择之一。

SHT11的应用电路如图5所示,VDD与GND间通过0.1 μF的去耦电容相连,且其I2C接口的SCK,DATA直接与Atmega16L的两线串行接口通过4.7 kΩ上拉电阻SCL与SDA相连,用于数据的传输交换。

2.5 上位机接口电路

为了便于监控,引入上位机功能,并加入串口通信模块。3.3 V到RS 232电平(±12 V)的专用转换芯片MAX3232的外围电路如图6所示,其中五个电容均取0.1 μF的典型值。串口DB9只用三根线,5端公共端接系统的地,2,3端分别是接收和发送端。DB9接口通过交叉串口线连到PC机上,这样就可以完成硬件串行通信。

3 系统软件设计

系统软件设计包括温湿度测量和无线收发两个部分。

3.1 温湿度测量

对于温度和湿度,它们并非是急剧变化的物理量,温湿度的变化往往是缓慢进行的,因此针对这个特点对于温湿度的测量采集并非需要时时刻刻都在进行。而是每隔T时间(T根据实际需要而定,本系统选用1 s)采集一次,其余时间由于低功耗的要求使得MCU处于休眠状态。其程序流程如图7所示。其中Atmega16L进入休眠状态是通过对SE编程休眠使能,并且对SM 2.0编程后进入相应的省电模式状态,然后通过定时器的计时中断将Atmega16L唤醒,再进行测量以及数据传输。

3.2 无线收发[3]

对于无线发送而言,在测量发送数据以后,应考虑到数据传输的可靠性,因此加上校验功能,并且为防止偶然的发送失败带来的不良后果,采取定时等待,超时后重发,收到接收主机命令后才进入休眠的模式。具体流程图如图8所示。

对于接收端而言,所完成的任务是时刻检测无线接收模块,对于收到的数据进行校验,如果正确收到数据则无线发送相关指令告知接收端,使其能够尽快进入休眠省电模式,并且通过上位机显示温湿度;而接收到错误数据后不做任何处理,等待接收端再次发送数据。

相应的初始化程序如下[4]:

而实际操作过程中通过对nRF905发送与接收实现是通过以下命令实现:

写发射数据命令:20H;

读发射数据命令:21H;

写发射地址命令:22H;

读发射地址命令:23H;

读接收数据命令:24H。

4 结 语

该系统采用AVR系列低功耗单片机ATmega16L作为控制芯片,低功耗芯片nRF905作为无线收发模块,设计并实现了基于数字温湿度传感器SHT11的温湿度无线测量系统,这些低功耗产品使得该系统耗电量小,并且又特别适合将该系统小型化,智能化,仪表化。无线发射功能又代替了人工抄表的繁琐,使得本系统有着广泛的应用前景。

参考文献

[1]海涛.ATmega系列单片机原理及应用:C语言教程[M].北京:机械工业出版社,2008.

[2]SHT1x/SHT7x Humidity&Temperature Sensor Datasheet[Z].Sensirion,2005.

[3]尹纪新.无线射频基础[M].北京:人民邮电出版社,2008.

[4]魏东平,朱连章,于广斌.C程序设计语言[M].北京:电子工业出版社,2009.

[5]周丽娜.Protel 99 SE电路设计技术(基础、案例篇)[M].北京:中国铁道出版社,2009.

[6]余家春.Protel 99 SE电路设计实用教程[M].北京:中国铁道出版社,2003.

[7]杨吉祥,詹宏英,梅杓春.电子测量技术基础[M].南京:东南大学出版社,1999.

[8]张德丰.Matlab数值分析与应用[M].北京:国防工业出版社,2009.

[9]陶红艳,余成波.传感器与现代检测技术[M].北京:清华大学出版社,2009.

[10]黄智伟.无线数字温度传感器的设计[J].传感器技术,2002,21(9):31-33.

[11]Atmel.AVR Atmega16 Data Book[Z].1999.

篇3:基于nRF905的粮库无线温湿度监控系统

关键词:智能家居 STC89LE52 无线遥控 NRF905

1 概述

当代科学技术日新月异,越来越智能化、信息化、高速度及集成化以及网络化,而其中的通信技术又以无线通信最具有发展潜力。无线通信系统由于不需要传输线缆、组网灵活方便、成本低廉,智能设备只需要配上相应的无线通信接口电路,就可以实现各设备之间的无线通信任务,因而比有线通信技术具有更大的优越性。就连商业购物活动也由传统的实体店购物,渐渐转化为有线互联网的虚拟购物,再向无线的移动互联网购物发展。相信不久的将来,无线通信网络技术将会融入到人类社会的生活及生产的各个方面,并且逐渐变为最主要的通信手段之一。

本设计以单片机STC89LE52为核心,采用NRF905无线通信模块,设计了一种适用于智能家居产品的多路无线遥控系统。当然,此系统也适用于其他无线通信的场合。

2 系统方案

本系统的方案框图如图1所示,主要包括发射遥控器与接收控制器两部分。本方案采用宏晶科技公司生产的STC89LE52单片机作为MCU控制器,该款单片机具有高速、高可靠、超强抗静电、超强抗干扰、超低功耗(掉电模式下功耗小于0.1uA,掉电模式可由外部中断唤醒)等优点,采用3V供电,适合于电池供电系统。

其中,发射遥控器作为控制主机,通过按键发送从机的地址以及控制方式,可以对家庭中任意一个装有接收控制器的从机以不同方式进行控制:如亮灯方式可控的客厅吊灯控制、电视机的开关控制、具有预防儿童触电功能的无线智能插座控制等,以便带给你一个安全、低耗、便捷、舒适的居家环境。而从机接收到主机发送过来的控制指令执行控制动作,根据被控对象的特点可选择多达7种控制模式,从机控制采用继电器控制方式。

无线通信模块采用NRF905芯片为核心,该芯片为Nordic VLSI公司设计,具有体积小、CRC校验、抗干扰性强、多通道多频段、通信稳定等特点,特别适合于工业控制场合。

NRF905有四种工作模式,分别由TRX_CE、TX_EN、PWR_UP 3个引脚的状态来决定,如表1所示。

3 硬件设计

MCU采用STC89LE52作为主控制器,采用3V供电,因此NRF905模块的管脚都可以直接和STC89LE52的I/0口相连。而与NRF905的SPI总线通信方式可用单片机的普通I/0口模拟。STC89LE52控制NRF905的无线发射/接收模块的硬件原理设计及相关接线如图2所示。

3.1 发射遥控器设计

发射遥控器电路主要包括从机地址及控制方式拨码键盘、MCU、无线通信模块电路、掉电唤醒电路和LED工作显示电路等部分。其中,MCU选用STC89LE52,NRF905的工作频率为433MHz。MCU通过其I/O口控制NRF905的发射工作,以及收集其相关状态的反馈信息。

另外,由于发射遥控器采用电池工作,因此低功耗是我们在设计时需要考虑的一个重要方面。当NRF905以10dBm的输出功率发射时,其消耗的电流小于20mA;在关机模式下,NRF905的工作电流最小,一般为2.5uA。另外,STC89LE52的正常工作电流为4~7mA;掉电模式下,典型功耗小于0.1uA。因此,当发射控制器不工作时,应当首先让NRF905处于关机模式,然后让STC89LE52处于掉电模式下;而以10dBm的发射功率工作时,发射控制器的最大功耗不超过30mA,且其工作过程非常短暂。这样就大大降低了发射控制器的功耗,延长了电池的使用寿命。

3.2 接收控制器设计

接收控制器电路主要包括MCU、无线通信模块电路、直流稳压电源、继电器控制输出等部分。其中MCU采用STC89LE52,无线通信模块电路与发射遥控器的一样。由于接收控制器安装在交流220V的灯具、开关机插座等上,因此采用+3V的直流稳压电源对其进行供电,不必要考虑其功耗问题。

4 软件设计

发射遥控器的软件编程主要包括初始化、唤醒程序、发送程序以及低功耗程序几个部分,接收控制器的软件编程主要包括初始化和接收程序两个部分。

发射遥控器的掉电唤醒程序为:当发射遥控器接收到需要发射数据的指令时,首先需要使用INT0下降沿中断程序唤醒单片机进入工作模式,点亮工作指示灯,然后用MCU唤醒NRF905从关机模式进入待机模式,接着保存按键过程中留下的从机地址及控制方式等数据。发射遥控器的低功耗程序为:MCU先将NRF905转到掉电模式,然后MCU将自己转到掉电模式。

上述发射遥控器的两个程序较简单,此处不做详细阐述,下面只介绍初始化、发送和接收三个程序的编程过程。其中,发射遥控器与接收控制器的初始化程序大致相同,只不过接收控制器的初始化程序中没有中断程序的初始化。

4.1 初始化

首先初始化NRF905的射频配置寄存器:CH_NO配置频段在433MHz,输出功率为10db,不重发,节电为空闲模式,地址有效宽度设为1字节,有效数据长度为1字节,接收地址预设,CRC允许,8位CRC效验,外部时钟信号不使能,采用外部16M时钟晶振。然后初始化掉电唤醒的INT0配置:开总中断,开INT0中断,INT0中断下降沿触发。

4.2 发送程序

发送数据时,MCU首先通过SPI总线方式将需要发送的地址和数据都写入NRF905相应的寄存器中,然后将NRF905切换到发送模式,这个过程中需要延时650ns,再后就是启动NRF905发送一次(TRX_CE跳变一次)数据,接着等待发送结束。发送过程程序的流程如图3所示。

4.3 接收程序

接收控制器初始化之后,大部分时间均是捕捉发射遥控器的信号,并按指定的控制方式进行工作。因此,在其初始化后,就直接切换到接收模式(PWR_UP=1、TX_EN=0、TRX_CE=1),这个过程中需要延时650ns,接着就是MCU等待并检测NRF905的相关管脚的变更情况。首先查看AM管脚,如果AM=1,则表示地址匹配正确,然后判断DR管脚,如果DR=1,则表示数据接收对而且CRC校验正确。至此,即可将NRF905切换到待机模式读取数据,并按接收到的控制方式改变MCU的控制输出。然后,再次切换到接收模式,重新捕捉发射遥控器的信号。接收数据程序的流程图如图4所示。

5 小结

经过实验证明,本设计小巧灵便,工作稳定可靠,在室内3层以内能实现可靠通信,抗干扰性能力较强,完全可以满足智能家居的使用。而其低成本、易扩展、操作简单等特点,使之非常容易扩展到其他领域。

参考文献:

[1]王娟.基于ZigBee无线传感网络的智能家居系统设计与实现[D].东华理工大学,2013.

[2]孙国新.基于ZigBee技术的智能家居系统研究[D].天津科技大学,2011.

篇4:基于nRF905的粮库无线温湿度监控系统

1 系统结构与功能

该系统的总体结构框图如图1所示,为了满足无线数据传输的要求,系统分为下位机子系统和上位机子系统两部分,其中下位机子系统放置在温湿度的采集现场,由数字式温湿度传感器SHT11对现场的温湿度进行实时采集,并在AT89S52单片机的控制下通过液晶显示屏实时显示检测到的温湿度数值,同时将温湿度数据通过无线数传模块n RF905的发射端传送给上位机子系统,从而实现数据的无线传输。上位机子系统一般放置在控制机房,通过n RF905的接收端获取下位机采集的信息,并利用RS232串口与USB的转换芯片PL2303将AT89S52单片机的串行接口与PC机的USB接口相连接,完成单片机与PC机之间的通信。上位机(PC机)利用VB软件实现对串口数据的读取,并实时显示在上位机的控制界面上,也可将温湿度数据保存或绘制曲线,当实际温湿度超出设定范围时自动报警。

2 系统硬件电路设计

2.1 SHT11和n RF905简介

SHT11是集温度、湿度检测于一体的数字式传感器芯片,其内部集成了14位A/D转换器,采用数字信号输出,且测量精度可编程调节,其温度测量范围为-40~123.8℃,精度为±0.01℃;湿度测量范围为0~100%RH,精度为±0.03%RH。该芯片采用CMOSens工艺,测量时可将探头完全浸于水中,能提供温度补偿的湿度测量值和高质量的露点计算功能以及二线数字串行接口SCK和DATA,其接口简单,支持CRC传输校验[2],传输可靠性高,抗干扰能力强。

n RF905是单片射频发射器芯片,采用VLSI Shock Burst技术,可实现高速率的数据传输。n RF905工作电源电压为1.9~3.6V,工作于433、868、915MHz 3个ISM频道[3]。n RF905能自动完成处理字头和循环冗余码校验的工作,并由片内硬件自动完成曼彻斯特编码和解码,使用SPI接口与微控制器通信,配置简单方便。n RF905有两种工作模式和两种节能模式,当以0.1m W的输出功率发射时电流只有11m A,接收模式时电流为12.5m A,空闲模式或关机模式时电流均为2.5μA,易于实现低功耗设计[4]。

2.2 温湿度检测与显示电路

温湿度传感器SHT11通过两线串行接口(电路、单片机)直接连接,无需A/D转换电路,与传统的测量系统相比简化了传感器和单片机之间的接口。其中串行时钟输入线SCK用于单片机与SHT11之间的通信同步,串行数据线DATA用于内部数据的输出和外部数据的输入。测量时将SHT11的DATA线接到AT89S52的P1.0口,SCK时钟线连接到P1.1口,同时在DATA线上加10kΩ的上拉电阻,以确保测量结果的精确度。如需增加检测点,只要增加对应的I/O口即可,而且只需对程序稍加修改便可实现系统的灵活扩展。显示部分由性价比高、功耗低的LCD1602液晶显示模块组成,该模块的数据接口与AT89S52的P1口相连接,其中P1.2、P1.3分别用于控制液晶屏的读写操作,而温湿度数据通过单片机P0口的P0.0~P0.7分别传递到LCD1602的D0~D7口并实时显示在液晶屏幕上[5],为了解现场的温湿度情况提供了直观的观测手段。

2.3 无线数据传输电路

n RF905与单片机的接口连接是实现高效、可靠地无线数据传输的重要环节,根据AT89S52单片机的特点和n RF905的接口设计要求,将单片机的I/O端口分别与n RF905的模式接口、SPI接口和状态接口相连接[1],如图2所示。其中AT89S52的P2.4~P2.6端口分别与n RF905的PWR_UP、TRX_CE、TX_EN模式接口相连[6],实现对n RF905的发射和接收等4种工作模式的控制;P2.0~P2.3端口分别与n RF905的CSN、SCK、MOSI、MISO接口相连,实现对n RF905的数据传输参数的设置和控制。P3.2~P3.4端口分别与AM、CD、DR状态接口相连,其中AM接口用于检测目的地址与本机地址是否相同,DR接口用于判断数据收发是否完成,CD接口用于n RF905的载波检测。

n RF905的工作参数配置是通过SPI接口实现的,SPI接口由5类寄存器(状态寄存器、RF配置寄存器、发送地址寄存器、发送有效数据寄存器和接收有效数据寄存器)和1个SPI指令集组成。不同的SPI指令对应着不同寄存器的操作。任何一条指令均从CSN的由高到低的转换开始。另外,需要注意SPI接口只有在掉电和Standby模式下处于工作状态。

2.4 单片机与PC机的通信电路

为了满足部分计算机不带串口或者串口数量少的情况,充分发挥USB接口即插即用的特点,本系统在单片机与PC机之间的通信过程中设计了一种RS232转USB的转换接口,采用PL2303专用转换芯片,其支持RS232串行接口,完全兼容USB1.1规范,具有双向数据流缓冲器和片上USB收发器,传输速率超过1Mb/s[7]。由于PL2303的输入输出电压要求TTL/CMOS电平,因此需要在RS232接口与PL2303芯片之间进行电平转换,电平转换电路选用MAX213芯片。

在PL2303芯片与USB接口连线时,USB接口的D+和D-数据线分别连PL2303芯片的DP和DM端,从而建立起PL2303芯片到USB接口电气连接。同时在布线时应注意PL2303芯片与USB接口的距离尽量短,D+和D-差分数据线的长度尽量保持一致,避免差分数据线阻抗的不连续性[7]。而在PL2303芯片与MAX213芯片连线时,PL2303的DTR_N端、TXD端、RTS_N端分别与MAX213的RS232电平驱动器的T1、T2、T4输入端相连接。把RS232转USB接口插入PC机USB接口时,PC机会自动检测出这个串行端口,而不是一个USB接口,这说明PC机已经识别了外接电路并且把它当作一个串行通信接口。

3 系统软件程序设计

3.1 无线数据传输程序设计

n RF905发送和接收数据的工作流程如图3所示,其通过SPI接口发送指令来进行初始化,初始化的主要工作参数包括工作频率、发射功率、有效数据宽度、CRC校验位等信息。

当n RF905发送数据时,单片机首先将PWR_UP置高、TRX_CE置低,即把n RF905设置为Standby模式,再按时序把接收端的地址和待发送的数据低速写入n RF905对应的寄存器中,然后将PWR_UP、TRX_CE和TX_EN全部置高,使n RF905进入发送模式,此时射频寄存器自动开启,数据打包(加字头和CRC校验码)后被高速发送出去,数据发送完成时DR自动置高。若配置寄存器中的自动重发位(AUTO_RETRAN)被置高,则n RF905将不断重复发送数据包,直到TRX_CE被置低;TRX_CE被置低时,n RF905发送过程完成,自动进入待机模式。

n RF905接收数据时,单片机先在n RF905的待机状态下将接收地址写入射频配置寄存器,再将TRX_CE置高、TX_EN置低,使n RF905进入接收模式。n RF905会在650μs后不断监测载波,等待接收数据。当检测到同一频段的载波时,载波检测引脚CD被置高。如果接收地址相匹配,地址匹配引脚AM也被置高。正确的数据包接收完毕后,n RF905会自动移去字头、地址和CRC校验位,并把数据准备引脚DR置高,之后单片机把TRX_CE置低,n RF905进入待机模式;最后,单片机通过SPI接口以一定的速率接收数据,所有的数据接收完毕后,n RF905把地址匹配引脚AM和数据准备引脚DR置低。

3.2 上位机程序设计

上位机监控软件采用VB6.0设计,根据系统要求设计了6个窗体模块,分别为:

a.主控窗体。此窗体是上位机操控的主界面,包含其它5个子窗体,可完成各窗体之间的切换。其通过添加的MSComm控件和Timer控件建立起单片机与PC机之间的通信,完成数据的交换,并实时显示采集时间和温湿度数值。

b.串口设定窗体。设定COM端口号与传输波特率,确保传输的有效性和可靠性。

c.报警温湿度设定窗体。定义温湿度报警的上下限,通过比较采集的温湿度与设定的温湿度范围,当采集温湿度超出或低于预定范围时发出报警。

d.采样间隔窗体。通过对采集间隔的控制与设定,使温湿度数据按照规定的时间间隔存储到历史数据窗体,应用List Box控件对采样时间间隔进行选取。

e.温湿度实时监测窗体。采用两个Timer控件在实时调用温度数据的同时显示当前时间,同时利用Line函数定义的方法,绘制采集的温湿度随时间变化曲线。

f.历史数据窗体。用于实现对所采集的温湿度数据和对应的时间进行存储和处理,以备数据的后续分析和研究,也可根据需要进行曲线或数据列表的打印。

4 实验与测试结果

为了验证无线检测与传输系统的可靠性和测量精度,把测试地点分别选在无障碍物的开阔地和实验室内,其中在开阔地主要测试系统的有效传输距离和不同传输距离下的传输误码率,而在实验室主要测定系统的测量精度。开阔地实验的测量范围选在0.1~300m区间,每隔50m做一个测量区间,每个测量区间选取不同距离、不同地点测试20次,统计每个测量区间接收数据的平均误码率。系统测试结果见表1,结果表明该系统的最大有效传输半径为200m,且在同等的条件下,误码率大小与传输距离的远近有关。另外,在室内测得系统的温度测量范围为-30~100℃,误差小于0.2℃,湿度测量范围为2#~98%RH,误差小于3%RH。

5 结束语

本系统创新之处在于下位机电路设计简单,利用单片机实现了模拟SPI功能,即实现了模拟移位寄存的功能,节省了单片机的I/O口,避免了外围电路使用数据移位寄存器,既简化了电路,又降低了系统的成本。在串口通信模块的设计中,还利用PL2303实现了RS232串口转USB的功能,实现了数据接口的即时插拔,从而方便了系统测试和携带,并且满足了没有串口的PC机对于串口通信的要求。另外,系统的上位机功能强大,能够实现温湿度的远程测量与监控,并将采集的温湿度实时显示和保存,还可根据需要绘制曲线或打印数据列表,为温湿度数据的后续处理和分析提供了便利。

摘要:针对短距离无线通信在数据采集中的优势,设计了基于无线射频传输技术的智能温湿度检测、传输系统。该系统以nRF905无线射频传输模块和AT89S52单片机为核心,由上位机和下位机两部分构成。上位机和下位机之间通过nRF905无线收发模块和PL2303转换芯片完成数据的无线传输以及RS232串口与USB的转换。

关键词:无线数据传输,nRF905,RS232转USB,PL2303

参考文献

[1]赵建华,韩玉杰.基于nRF905的温室无线数据传输系统[J].机电产品开发与创新,2009,22(6):141~142.

[2]樊建明,陈渊睿.基于SHT11的温室多点测量系统设计[J].国外电子测量技术,2006,25(11):4~8.

[3]杨剑.基于nRF905的无线射频数据采集系统的开发与实现[D].长沙:中南大学,2007.

[4]李余庆,张华,刘继忠.基于DS1820的无线温度采集系统的设计[J].微计算机信息,2009,25(9):187~189.

[5]张迎新.单片机(微控制器)原理及应用[M].北京:高等教育出版社,2009.

[6]蒋博.nRF905的无线数据传输系统[J].工业仪表与自动化装置,2006,(3):59~60.

上一篇:至简至淡的励志经典名言下一篇:在数学公式编辑器中输入除法竖式