基于nRF24L01的无线温湿度检测系统设汁
扫描二维码
随时随地手机看文章
摘要:提出了一种针对无线数据传输问题的解决方案,该方案基于nRF24L01来设计无线温度采集系统。该系统采用低功耗、高性能单片机STC12C5A08S2和温湿度传感器DHT11来构成多点、实时温湿度监测系统,最后在PC机上完成配置、显示和报警等功能。该系统使用方便,扩展十分容易,可广泛应用于各种工农业生产和养殖等场合。
关键词:无线传输;nRF24L01;温湿度检测;DHT11
0 引言
在当今的工农业生产中,需要进行温湿度采集的场合越来越多,准确方便地测量温度变得至关重要。传统的有线测温方式存在着布线复杂,线路容易老化,线路故障难以排查,设备重新布局要重新布线等问题。特别是在有线网络不通畅或由于现场环境因素的限制而不便架设线路的情况下,给温湿度的数据采集带来了很大的麻烦。要想监测到实时的温湿度数据,就必须采用无线传输的方式对数据进行采集、发送、接收并对无线采集来的数据通过上位机进行处理,以控制并监测设备的运行情况,减少不必要的线路设备开支。
1 系统组成框图
本文设计的多路无线温湿度检测系统将单片机检测控制系统和射频通信系统相结合,系统由主机和从机两部分构成,从机负责检测温湿度,并将采集到的数据通过射频系统发送给主机,主机接收从机发送过来的信号,并通过串口和PC机进行通信,记录数据.同时可通过PC机设定报警数据上下限。其系统组成框图如图1所示。
2 系统硬件电路
系统的温湿度数据采用数字式温湿度传感器DHT11进行数据采集,以51系列增强型单片机STC12C5A08S2为核心和无线射频nRF2401构成收
发电路,从机使用液晶LCD1602显示,主机显示则使用LCD12864,整个显示系统可与PC上位机相连接。
2.1 温湿度采集电路设计
DHT11是一款含有已校准数字信号输出的温湿度复合传感器。该传感器应用专用的数字模块采集技术和温湿度传感技术,具有极高的可靠性与卓越的长期稳定性。图2所示为其温度采集电路。DHT11传感器包括一个电阻式感湿元件和一个NTC测温元件,可与高性能8位单片机相连接。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的过程中可调用这些校准系数。单线制串行接口可使系统集成变得简易而快捷,而且信号传输距离可达20m以上。当连接线长度短于20m时,应使用5kΩ上拉电阻,大于20m时,应根据情况使用合适的上拉电阻。
2.2 无线发射、接收电路设计
nRF24L01是NORDIC公司生产的一款无线通信芯片,采用FSK调制方式,内部集成有NORDIC自己的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度可以达到2 Mb/s。NORDIC无线发射、接收芯片nRF24L01的电路原理图如图3所示。
nRF24L01是单片射频收发芯片,工作于2.4~2.5 GHz的ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。nRF24L01芯片的能耗非常低,以-5 dBm的功率发射时,工作电流只有10.5 mA,接收时的工作电流只有18 mA,它具有多种低功率工作模式,节能环保,设计方便。
nRF24L01无线收发模块的各管脚功能如表1所列,图4所示是nRF24L01与单片机连接时的电路图。
本无线发射接收模块需要的电源为1.9~3.6 V,本系统中采用3.3 V直流电源来直接对无线发射接收模块供电,5 V电源经.ASM1117-3.3芯片转换后可得到稳定的直流电源,其电源转换电路如图5所示。
2.3 串行通信模块
主机单片机接收到nRF24L01的数据后,经MAX232电平转换可实现单片机程序下载与升级,同时可实现单片机与PC机(上位机)的通信,以便将显示数据信息通过此电路传送到PC机,并存PC机上显示,其串行通信电路如图6所示。
3 软件设计
3.1 下位机软件
本系统使用C语言编程,应根据设计任务的要求确定系统程序的完整结构,尽可能采用模块化程序设计方法,将任务划分为相对独立的功能模块,明确各模块的功能、时间顺序和相互关系,系统的软件设计可以分为几个部分,首先是各个模块的底层驱动程序编写,而后是系统联机调试,最后再编写上位机的系统程序。
主程序是控制和管理的核心,系统上电后,首先进行初始化,系统开始正常运转后,再进行温、湿度的监测与处理等操作。
3.2 上位机软件设计
系统上位机能完成的功能有显示串口号,提示串口是否已被成功打开;同时,上位机能够与下位机同步显示温度,而且能够实时曲线显示温度;上位机能够设置下限温湿度和上限温湿度,当高于上限温湿度或低于下限温湿度时,还能够报警。将主机单片机的控制电路串行接口与电脑串口经过电平转换连接后,选择正确的通信协议,设置好波特率,即可进行通信。图7所示是上位机操作界面图。
上位机软件可在PC机上通过VC6.0编写,主要是对MSComm控件及CserialPort类进行操作。
首先是串口设置。本系统利用的是CSERIALPORT类中的初始化函数InitPort (this,nport,nbtl,‘N’,8,1,m_dwCommEvents,512).其巾nport为串口号,nbtl为波特率,可利用串口设置对话框中的串口号和波特率两个组合框分别得到初始化函数中的nport和nbtl。
其次是对温湿度上下限的设置。可利用CSERIALPORT类中的启动串口监测进程函数Start Monitoring、发送字符串函数WriteToPort以及关闭串口进程StopMonitoring来进行温度上下限的设置,其信息通过这些函数发送到串口,单片机从RS232上收到数据后,与自身的温度相比较,再进行相应的处理。
第三是曲线显示。动态曲线显示可利用CHistogram类中的SetRange(200,400),SetPos(temp)函数,SetRange设置上下极限值,SetPos是在图上显示相应的数据点,temp是从单片机传来的温湿度数据的处理结果,具体的移动曲线可由CHistogram类中函数实现。
4 结论
经测试,在发射接收模块没加天线的情况下,无线发射接收模块在大多数情况下的数据传输距离在200 m左右,发射头发射功率、接收头接收灵敏度等因素可能会影响传输距离,若外加天线,则会大大增加传输距离。另外,在调试过程中,振荡电阻必须匹配,否则接收距离会变短甚至无法接收。
本系统的数字信号由单片机采样,基于DHT11的数字温湿度传感器构成的实时监控系统具有精度高、抗干扰能力强、电路简单等诸多优点。然后利用单片机与PC机的通信可将数据送到PC机进行数据的存储、后期处理与显示。本系统数据处理功能强大、显示直观、界面友好、性价比高,可广泛应用于工业控制、仪器、仪表、农业养殖及智能家居等诸多领域。