广西民族师范学院 王 靖 张贤国 黄灿胜
系统的设计方案如图1所示,系统有2个监测点,分别为从机1和从机2,工作时,从机放置于被测环境中(如蔬菜大棚),单片机将传感器采集到的数据通过无线模块发送出去;主机安装在工作人员处,通过无线模块接收从机1和从机2发来的数据,经过单片机处理后在液晶屏12864上显示。
图1 系统设计方案
单片机又称微控制器, 在一块芯片中集成了CPU、数据存储器、 程序存储器、定时器/ 计数器和多种功能的I/O(输入/ 输出)接口等基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。51单片机是对所有兼容Intel 8031指令系统的单片机的统称,被广泛应用于工业测控系统之中。STC89C52RC是我国宏晶公司生产的一种低功耗、低成本、高性能的8位微控制器,完全满足本项目的需要。
nRF24L01+是由NORDIC生产的工作在2.4GHz至2.5GHz的ISM频段的无线收发芯片,共有126 个1MHz 带宽的选频,采用SPI协议与单片机通信,工作电压范围1.9-3.6V,并具有数据自动重发,自动应答等功能,可通过软件设置2Mbps,1Mbps,250Kbps 三种数据波特率,是目前近距离无线通信的理想选择。该芯片有20个引脚,体积小,不容易焊接,芯片成本和模块差不多,所以本系统直接使用NRF24L01模块,如下图所示:
图2 nRF24L01+模块示意图
图3 SHT20传感器示意图
该传感器基于数字传感技术,体积小、响应迅速、低能耗、抗干扰能力强,性价比高,使该产品能够适于多种场合的应用。通过I2C总线协议与单片机通信,工作电压2.1-3.6V。
湿度测量范围:0~100%RH;湿度测量精度:±3%RH;
温度测量范围:-40~125℃;温度测量精度:±0.3℃。
LCD12864是一种内部含有简体中文字库的点阵图形液晶显示模块,内置8192个汉字和128个ASCII字符集.利用该模块灵活的接口方式和简单的操作指令,可构成全中文人机交互图形界面,在单片机应用中得到了广泛使用。
主机以单片机作为控制核心,AMS1117将5V转化为3.3V,给nRF24L01+模块和SHT20模块供电,可调电阻R2用来调节液晶12864的对比度。主机和从机的硬件原理图几乎一致,仅是主机不需要连接SHT20传感器。系统工作时,不同的从机通过地址进行区分。下图是用Altium Designer 09画的原理图:
图4 系统硬件原理图
主机首先把nRF24L01+模块配置为接收模式,参照nRF24L01+数据手册可知,最多可以同时接收6路不同的通道,每一个通道使用不同的地址,共用相同的频率(使用跳频可以更好的避开干扰,但本文限于篇幅不讨论跳频)。
地址可以通过寄存器进行设置,通道0的40位地址自由配置,通道0-5的配置格式为:32位公共地址+8位各自的地址。例如从机1接收地址设为: { 0x34,0x43,0x10,0x10,0x01},主机设置寄存器EN_RXADDR为0X03,即打开通道0和1,分别用来接收从机1和从机2的数据;设置寄存器EN_AA使能自动应答,即发送应答信号确认数据收到。设置寄存器RF_SETUP可以配置传输速率和发射功率。 nRF24L01+收到数据后存储在寄存器中,可以通过判断寄存器的RX_P_NO位是哪一个通道接收到数据,并将数据分别存入数组data1[],data2[]中,主机的程序流程图如图5所示。
图5 主机的程序流程图
图6 从机的程序流程图
从机1和从机2的程序除了发送地址不一样,其他都一样。首先参考数据手册的读写时序写出SHT20温湿度采集程序,然后把nRF24L01+设置为发射模式,在发射模式下,从机还需要接收主机发出的应答信号,所以接收地址要和发射地址一样以便收到正确的应答信号,从机的程序流程图如图6所示。
根据原理图,用AD软件进行PCB布线,然后用热转印法制作3块电路板,在板上焊接好元器件,搭建硬件平台。把编好的程序(Keil 4+ C语言)烧录进单片机,调试无误后系统可正常工作。
通讯距离是无线模块的一个综合指标,受到很多条件和参数的影响,一般来说地点是否空旷,天线(PCB天线或者外置天线),输出功率大小,数据传输速率这四者的影响较大。通过本系统,在近距离内可以很好的实现数据传输,经实测,在空旷条件、功率为0dBm的前提下,设为2Mbps传输速率时,传输距离可达15米左右,1Mbps速率下30米左右,250Kbps速率下60米左右。在本文的基础上,如果想加大通讯距离,可选择加了外置天线和功率芯片的无线传输芯片,距离最远可达1100米。
[1]魏鸿磊.单片机原理及应用(C语言编程)[M].上海:同济大学出版社,2015:20-184.
[2]彭伟.单片机C语言程序设计实训100例——基于8051+Proteus仿真[M].北京:电子工业出版社,2016:129-145.
[3]魏芬.基于Proteus的单片机实验与课程设计[M].北京:清华大学出版社,2015:250-281.