APP下载

基于ARM处理器与nRF24L01无线通信的植物工厂监控系统

2016-11-09李雪峰

物联网技术 2016年9期
关键词:传感器

摘 要:利用无线传感网络技术和嵌入式实时数据处理技术,提出了一种基于nRF24L01和GSM网络的植物工厂无线监测系统。系统通过7个nRF24L01无线模块构建星型子网结构,扩展用GPRS模块SIM900A完成子网与GSM网络的无线通信,从而实现监控人员对植物工厂的远程监测。星型网络由多个采集终端和集中控制机构成6发1收模式,以集中控制方式对植物工厂的大气温度、土壤湿度、光照强度、CO2等信息进行实时采集。实验测试结果表明,星型子网能够实时完成900 m距离范围内的无线数据传输,系统可扩展性强、工作稳定,可以实现植物工厂的远程在线监测。

关键词:传感器;ARM处理器;nRF24L01模块;无线监测;GPRS

中图分类号:TP391.8 文献标识码:A 文章编号:2095-1302(2016)09-00-05

0 引 言

随着物联网技术的快速发展,集成化和智能化设备被越来越多地应用于植物工厂的环境监测中[1],选择可靠监控方案的主要指标是其成本和能耗。传统的植物生长监测系统使用标准CAN总线或者RS 485总线构成分布式监测网络,这种网络需要大量连接电缆,构建成本较高且系统维护和管理不易。相比较而言,无线连接方式主要应用于近距离无线通信技术构建无线传感器网络,使用标准的无线通信协议,避免了布线的麻烦,可以更灵活地管理监测点,还可以利用蜂窝网接入技术,以短消息的方式实现随时随地无线通信,在远程无线监测中具有较好优势[2]。ZigBee无线通信目前可以采用CC2530 ZigBee无线射频芯片,用于构建低成本、短时延、低功耗、可靠的无线通信系统。但由于其涉及的通信协议复杂,较nRF24L01芯片来说价格没有优势。无线收发一体芯片nRF24L01[3]克服了无线局域网、蓝牙、红外线数据通信的通信协议和特定硬件结构的缺点,在短距离无线监测中具有较大优势。本文设计的监控系统主要用来采集自然光光照强度、空气温度、土壤湿度、CO2浓度、植物生成图像等环境参数。

1 系统的硬件

子网系统由6个数据采集终端和一个集中控制机构成,在集中控制机部分搭建GSM网络,实时接收6个数据终端的数据。子系统的分布式星型网络架构如图1所示。按照nRF24L01说明书的阐述,nRF24L01一次只能接收同一频率下6个不同的数据,因此集中控制机上可搭载拨码开关,用于分时接收不同频率下的6组数据,从而构建一个稍具规模的无线通信网络。数据终端主要完成对植物生成环境参数的采集,并将采集到的数据通过nRF24L01模块发送到集中控制机,集中控制机将数据处理后显示并通过GPRS 模块发送至手机终端或者带有GSM接收的服务器,实现远程在线预警和现场监测数据存储分析。

1.1 集中控制机

集中控制机负责与监测终端之间点对多点无线通信和子网无线接入GSM的网络通信。集中控制机主要包括STM32-M4板、无线传输电路、液晶显示电路、存储器、按键电路、GPRS模块和语音报警模块。nRF24L01模块采用半双工通信方式完成与6个监测终端的无线监控链路通信;数据存储器采用24C02实现采集终端数据的越限记录存储,并可通过按键查询历史数据;利用STM32的RTL定时器实时显示时间,并将越限时间一同存储在24C02芯片中。显示模块采用7' TFTLCD,一行可显示多个字符,满足实时环境数据显示的需要。GSM模块采用SIM900A,借助GSM移动网络,通过手机短信实现远程监测或报警。集中控制机核心电路如图2所示,M4芯片使用了STM32F407,硬件资源比较丰富,24C02采用了I2C通信接口,使用M4芯片的I2C接口IIC1_SCL、IIC1_SDA就能实现通信;nRF24L01采用SPI接口通信方式,主要引脚有CE、SCK、MISO、MOSI、CSN等,利用M4的SPI1接口就能实现;SIM900A采用了串口1,M4的U1_TX连接SIM900A的RXD_I,U1_RX连接SIM900A的TXD_O;液晶显示接口占据34位管脚,采用16 b数据通信方式以提高显示速度;其他外围电路可以查看芯片应用手册。

1.2 数据终端

数据终端的硬件电路主要由STM32核心板、温度采集电路、土壤湿度检测传感器、光照传感器、CO2采集电路、无线传输电路、液晶显示电路、按键电路及电源稳压电路等组成。温度的采集利用DS18B20,集成度和精度满足系统设计要求;光照强度监测采用BH1750FVI芯片,该芯片采用I2C总线接口,内含数字转换器,检测范围宽,分辨率高;土壤湿度检测电路利用模拟电路搭建而成,通过电位器调节相应阈值,可以以数字量直接输出或通过AD转换得到土壤湿度更精确的数值,数据采集终端电路如图3所示。

数据终端采用Cortex?-M3 STM32F103ZET6作为主控MCU,由于与M4的资源相似,在此主要介绍集中控制机的主控MCU-STM32F407ZGT6[4],其拥有的硬件资源包括集成FPU和DSP指令,同时具有192 KB SRAM、1 024 KB Flash、12个16位定时器、2个32位定时器、2个DMA控制器、3个SPI、2个全双工I2S、3个I2C、6个串口、2个USB(支持HOST /SLAVE)、2个CAN、3个12位ADC、2个12位DAC、1个RTC、1个SDIO接口、1个FSMC接口、1个10/100 M以太网MAC控制器、1个摄像头接口、1个硬件随机数生成器以及112个通用IO口等,这些硬件资源便于系统的日后升级。

1.3 无线收发模块

无线收发模块采用Risym工业级nRF24L01+PA+LNA数传无线模块[5]。其最大功率为100 mW,通信距离为1 100 m。空中速率250 K、1 M、2 M可调,单个数据包1~32字节,3级FIFO缓冲。该模块由挪威(Nordic)公司生产的nRF24L01+及其外围电路组成,工作于2.4~2.5GHz世界通用ISM频段,工作电压为1.9~3.6 V。可通过SPI写入数据,最高可达10 Mb/s,数据传输速率最快可达2Mb/s,且具有自动应答和自动再发射功能。芯片融入了增强式ShockBurstTM技术,其输出功率和通信频道可通过程序进行配置。该芯片的功耗较低,以-6 dBm功率发射时,工作电流为9 mA,接收时工作电流只有12.3 mA,在掉电模式和空闲模式下其功耗更低。

2 系统的软件设计

2.1 子网组网原理

资料[6]讲述了采用不用频道进行通信的方法,将6个终端采用不同的频道,主控端设有按键,使用按键选择不同的从机频道就可实现主机与从机的通信,但这种方法存在硬件稍微复杂,同一时刻只能显示一组通信数据等缺陷。本设计则通过所有从机使用相同的频道,不同的地址来实现。单个子网无线数据传输采用中心集中控制模式,由控制终端以广播的方式与监测终端建立有效通信链路,控制终端和监测终端在发送数据完毕后立即返回接收状态,实现“六发一收”的功能,还可以通过扩展地址的方式增加监测终端数量。

nRF24L01[7] 模块工作于增强型SchockBurstTM模式下,增强型ShockBurst?数据包格式如表1所列。其文字表述如下所示:

1字节前导码+5字节工作通道地址+9位标志位+32位的传感器数据+2字节CRC校验

nRF24L01模块用前导码来检测0和1,芯片在接收模式下去除前导码,在发送模式下加入前导码;工作通道地址是nRF24L01模块发送或者接收数据的通道地址;标志位是进行数据包丢包重传的计数;32位数据包括4位温度信息、4位土壤含水量、4位CO2浓度、19位可扩展数据(便于后续扩展)、1位通道标识符;2字节的CRC检验码用于检测数据传输的正确性。

在接收端,集中控制机将数据接收后存入RX_FIFO寄存器,通过函数将32位接收的数据读取出来,按照事先定义好的通信协议判别是哪一个通道上的数据:判断tmp_buf[31]==0否,则为0通道,判断tmp_buf[31]==1否,则为1通道,以此类推,并按照通道号显示在相应的TFT_LCD上。

2.2 主程序流程

系统的开发环境采用KEIL uVision 5 IDE,它集编程、编译、下载、调试于一体,可对多种嵌入式芯片进行开发。程序代码采用搭积木的方式对如实时时钟程序RTC,按键程序key,无线通信程序24L01等以子程序的形式编辑,编译通过后提供.c和.h文件放置在HARDWARE文件夹下,并在目标文件的编译选项下提供所有子程序的文件包含路径Include Paths,只需要在主程序中加载相应的头文件就可以实现子程序的调用。这种编程方式结构清晰,便于查错调试。

在主程序中首先定义相关变量,之后设置系统的时钟为168 MHz,串口的波特率为115 200 b/s,配置实时时钟RTC的WAKE_UP中断,使其1秒中断一次,用于定时,LED系统运行提示初始化,液晶驱动初始化,无线通信模块的收发初始化,按键初始化。初始化完成后,检测nRF24L01是否正常工作,并给出相应的提示信息,扫描按键以确定主从机的通信频率。设置好后按照预先定义好的数据帧格式判断接收的是哪路信号,并显示在相应的位置。与此同时,系统设置每隔5分钟由主机通过GPRS模块SIM900A发送6路信息到手机或其他智能终端。主程序流程图如图4所示。

2.3 无线发送模式流程

无线发送模式流程[7,8]如下所示:

(1)MCU控制引脚CE为低,使nRF24L01进入待机模式1;

(2)发送节点地址(TX_ADDR)、接收节点地址(RX_ADDR_P0用于自动应答)和有效数据(TX_PLD)通过SPI接口写入 nRF24L01,当CSN为低时数据被不断写入;

(3)使能通道0的自动应答和通道0的接收地址;

(4)设置自动重发的时间间隔和最大自动重发次数;

(5)设置RF的通道;

(6)设置TX的发射参数、0 db增益、2 Mb/s通信速率,开启低噪声增益;

(7)配置PWR_UP、EN_CRC、16BIT_CRC,开启所有中断;

(8)MCU控制引脚CE为高,使nRF24L01进入发送模式;

(9)发送端发送完数据后进入接收模式来接收应答信号。

nRF24L01的发送模式程序流程图如图5所示。

2.4 无线接收模式流程

无线接收模式流程如下所示:

(1)MCU将nRF24L01的CE引脚置低,使其进入待机模式1,并对其寄存器进行配置;

(2)写入6个从机的地址P0~P5;

(3)使能通道0~5的自动应答,使能通道0~5的接收地址,允许接收;

(4)设置RF的通信频率,通信频率可以通过软件编程设置,利用通信频率的不同实现多机通信;

(5)设置通道0~5的接收数据长度,统一设置为(RX_PLOAD_WIDTH=32)32个字节;

(6)设置TX的发射参数,0 db增益,2 Mb/s的通信速率,开启低噪声增益;

(7)设置PWR_UP、EN_CRC、16BIT_CRC接收模式的基本操作;

(8)将nRF24L01的CE引脚置高,使其进入接收模式;

(9)接收到有效数据包后(地址匹配、CRC校验正确),数据包设置最后一个字节的内容为0,判断当前数据包的第31位数据是0还是1~5,这样就可以按照通道号将传感器数据显示在不同的行上;

(10)发送确认信号。

无线接收流程图如图6所示。

单片机与SIM900A模块通过串口相连,按通信协议用AT指令实现SIM900A模块与GSM网络的通信[9]。

DS18B20[10]采集温度程序设计:使能端口时钟PORTG,使用端口PG11采集温度,首先检查DS18B20芯片是否就位,接着初始化DS18B20,复位DS18B20,跳过读取芯片内部的ROM序列,读取温度的低字节和高字节,数据处理后进行无线数据包的数据填充并显示。

光照强度采集程序设计:使能端口时钟PORTB,使用PB6的I2C1_SCL和PB7的I2C1_SDA,利用I2C硬件接口按照时序就可读取BH175FVI模块的光照情况,数据处理后供无线数据包填充和显示。

3 结 语

本项目设计的无线监测系统使用ARM M3-CPU和nRF24L01等模块构建数据的采集节点,ARM M4-CPU、 nRF24L01模块、 GPRS模块等构成集中控制器,利用ARM CPU强大的数据处理功能和nRF24L01模块组网灵活的特点,实现了1收6发的分布式植物工厂监控系统。测试结果表明,由于采用了双天线的nRF24L01模块,因此在900 m范围内无线传输基本稳定,随着距离的增加,数据丢包率随之升高。系统通过扩展,相邻子网之间采用不同频率方式工作而且频率间隔较大,可以实现更大范围的分布式监控系统。由于利用了TFT显示屏,可以随时查看采集的数据信息,该信息通过GPRS模块实时发送到用户的智能终端。该系统具有设计简单、稳定性好、可扩展性强等优点,可应用到各类无线传输的工程领域中,为其它环境监测系统提供参考。

参考文献

[1]刘彤,李尧,贺宏伟,等.基于ZigBee的密闭式LED植物工厂监控系统[J].农机化研究,2015 (5):75-81.

[2]郑争兵.基于nRF24L01和GSM的沼气工程无线监测系统设计[J].核电子学与探测技术,2013,33(8):995-999.

[3]时志云,盖建平,王代华,等.新型高速无线射频器件nRF24L01及其应用[J].国外电子元器件,2007 (8):42-44.

[4]意法半导体.STM32F103ZET6中文手册[EB/OL]. http://wenku.baidu.com/view/b42bbf40be1e650e52ea992f.html.

[5] Risym器件.工业级nRF24L01+PA+LNA 数传无线模块[EB/OL]. https://detail.tmall.com/item.htm?id=25563544406&spm=a1z09.2.0.0.RrAOte&_u=324f64f3ac.

[6] nRF24L01 如何实现多机通讯[EB/OL].http://www.openedv.com/posts/list/18326.htm.

[7]讯通科技.nRF24L01中英文说明[EB/OL]. http://wenku.baidu.com/link?url=G26rAwQSd7mYwNKQ8mlitzGm3PXm5bH8jgPgChM6gOhsXlJrgv36gmV04cWxhyDdHlXDEkOtu38ToIgLWSoWbAokdbS1tcPtSTKHF9PlDum.

[8]张永宏,曹健,王丽华.基于51单片机与nRF24L01无线门禁控制系统设计[J].江苏科技大学学报(自然科学版),2013,27(1):64-69.

[9]李雪峰,何振俊.基于单片机控制的多路激光安防报警装置设计[J].电子设计工程,2016,24(1):144-148.

[10]庄华勇,伍川辉.基于ZigBee的高速动车组车内温湿度监测系统设计[J].中国测试,2013,39(2):85-88.

猜你喜欢

传感器
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
光电传感器在自动检测和分拣中的应用
基于扩展卡尔曼滤波的PMSM无位置传感器控制