当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:智能家居是当前物联网的主要应用之一,当前采用的技术主要有ZigBee和Z-Wave技术。然而,ZigBee器件成本昂贵,Z-Wave技术是非开发式标准,存在系统的兼容性问题。针对上述问题,文中提出了基于NRF24L01实现智能家居系统的解决方案。同时详细地介绍了智能家居系统的框架和通信协议,并给出了可行的解决方法。最终测试结果表明,使用nrf24L01是一套低成本的智能家居解决方案,可进一步推进智能家居的应用。

引言

随着计算机、通信、自动控制和微电子技术的发展,无线传感网络成为当前研究热点,其主要应用领域涉及工业控制、环境监测和智能家居等。其中,智能家居应用尤为瞩目,旨在建立由家庭安全防护系统、网络服务系统和家庭自动化系统组成的家庭综合服务和管理集成系统,实现全面安全防护、便利通信网络以及舒适的居住环境。目前,在智能家居领域开发应用中,2.4GHz的ZigBee和900MHz频段的Z-Wave两大技术应用最为广泛。

Z-Wave是一种基于射频的低成本、低功耗、高可靠性的短距离无线通信技术,数据传输速率达9.6Kb/s,信号有效覆盖范围室内为30m,室外可超过100m;单一家庭网络最多可支持232个节点,足以满足一般家庭需求。目前,美国市场上已有成品的Z-Wave家居产品销售,包括各种家电控制设备,如Zensys公司推出的远程遥控器、插座等,然而Z-Wave联盟并没有开放其标准,束缚了系统的开发和扩展。

基于IEEE802.15.4协议的ZigBee技术是一种短距离的通信标准,有着近距离、低复杂度、自组织、低功耗、低数据速率的特点。由ZigBee协议标准可知,一个ZigBee网络可容纳65536台设备,有着250Kb/s的高带宽,且节点间通信具备较高的可靠性,再加上ZigBee联盟开放了这一标准,吸引了更多的厂商和研究机构对ZigBee的研究,使得ZigBee在智能家居中成为通行的国际标准。然而,ZigBee的器件成本相对较高,智能家居中无线传感器网络的建立需要一笔巨额费用。

针对上述问题,本文采用2.4GHz这一频段来实现无线数据传输,选用的NRF24L01芯片在此频段上具备较多的频点,能够解决家庭间信道干扰问题,同时搭配成本低廉的STM8S103F3组成智能节点,降低了节点的成本,也降低了开发难度。

1节点硬件设计

节点分为网关节点和普通节点:普通节点带有各类传感器,负责实时采集数据和网络组建;网关节点负责该网段网络的控制和数据的汇总、分析、上传。图1所示为网关节点和普通节点的结构图。

基于nRF24L01的智能家居网络的设计

1.1MCU

STM8S103F3单片机具有用户可调整的16MHzCPU时钟频率,容量为8KB的Flash程序存储器,集成640B真正的数据存储器EEPROM和1KB的RAM,强大的I/O功能,具有16位高级控制定时器(TIM1)、SPI、I2C、UART、窗口看门狗、独立看门狗、ADC、PWM定时器(TIM2)、8位定时器(TIM4)等资源。单线接口模块(SWIM)和调试模块(DM),允许非侵入式、实时的在线调试和快速的存储器编程。STM8S103F3高度集成,精简外部电路可以设计出更小的节点。由于STM8S103F3单片机的这些特点,非常适合应用在无线传感器网络中。

1.2射频收发器件nRF24L01

nRF24L01是一款工作在2.4~2.5GHz世界通用工科医用频段的单片无线收发器芯片,芯片内置晶体振荡器、功率放大器、频率合成器以及调制器等功能模块,工作电压为1.9~3.6V,有多达125个频道可供选择,输出功率和通信信道可以通过软件进行配置。

nRF24L01采用SPI总线接口与外部微控制器通信,最高可达10Mb/s,数据发送传输最快可达2Mb/s。

芯片自动处理字头和CRC,当发送数据时,只需要配置相关寄存器,将发送的数据和接收地址发送给nRF24L01,它会自动完成数据的打包(加字头和CRC校验码)和发送;当接收数据时,nRF24L01自动检测载波并进行地址匹配,接收到正确数据后自动移去字头、地址和CRC校验码,mcu通过SPI读取数据即可。

2通信协议的设计

2.1网络地址的分配

节点的网络地址设置为5字节,前4个字节表示网段地址,最后一字节设置为0表示网关节点,设置为1~190表示传感器节点,191~254表示子网组播地址,255用于局部广播地址。理论上能划分232个网段,在单个网段内,可以容纳1个网关节点,190个传感器节点,划分44个子网。节点的网络地址事先写入MCU的EEPROM中,上电自动获取。

2.2数据传输模式

本次设计中数据传输的模式有单播、广播和组播3种。单播是指从网关节点到传感器节点或者传感器节点到网关节点数据的传输,是点对点通信;广播是指从一个节点到该网段的所有节点的通信;组播是指从网关节点到一组传感器节点的数据传输。

由于nRF24L01具有6个接收地址,将pipe0设置为单播使用,开启nRF24L01的自动应答和重发功能,pipe1设置为局部广播使用,pipe2设置为组播使用,在广播和组播时关闭自动应答和重发功能。

2.3MAC层协议

为了避免节点发送数据和接受数据时导致信道的冲突,在网络的MAC层采用CSMA/CA协议[3]。该协议就是在发送数据帧之前先对信道进行预约。图2所示是节点A-E分布图。图中,第一种情况是节点B、C、E在节点A的无线信号覆盖范围内,而D不在;第二种情况是节点B、A、D在节点B的无线信号覆盖范围内,而C不在。

基于nRF24L01的智能家居网络的设计

图2  两种节点分布图

这样,可将CSMA/CA协议的实现流程分为两个部分,分别解决以下两个问题。

第一,当节点B和节点C都要向节点A发送数据时,会导致发送端数据的冲突。解决的方法可以采用在通信之前,节点设置为接收模式,利用nRF24L01的载波检测(CD)功能监听信道是否空闲。若检测到信道忙碌,则节点随机延迟一段时间后重新监听;若检测到信道空闲,则节点并不立即发送,而是采用一定的退避机制,将信道冲突的可能性降到最低。所以,节点随机退避一段时间后再进行发送。这里采用二进制指数退避算法BEB。

第二,当节点A和节点D都向节点B发送数据时,会导致接受端数据的冲突。解决的方法可以利用RTS/CTS/DATA/ACK握手机制。具体过程如下:

发送节点向接收节点发送前,先通过竞争方式获得信道使用权,再向接收节点发送请求连接帧(requesttosend,RTS)。

接收节点收到发送节点的RTS帧后,向外广播确认帧(cleartosend,CTS),里面包含发送节点地址,建立两者之Add1C1L1间的通信连接。

发送节点收到接收节点的CTS帧后,向接收节点发送数据帧DATA,若没有收到CTS帧,则重新发送RTS帧。

接收节点收到发送节点的DATA帧后,向从站发送数据确认帧ACK。

发送节点收到接收节点的ACK帧后,整个通信过程结束,若没有收到,则重新发送data。

2.4差错控制

在差错控制方面,系统采取数据重发机制与nRF24L01自身CRC校验相结合的方式。发送节点在发送RTS或DATA后,若在一定时间内没有收到接受节点的CTS或ACK,贝憧新发送传输失败的帧,直到接收到回复或重发次数达到设定值。另外,nRF24L01提供对CRC校验的硬件支持,通过设置RF配置寄存器,采取8位CRC校验[4]。当接收的数据CRC校验出错时,nRF24L01会自动丢弃错误帧。

2.5数据帧格式

nRF24L01在增强型ShockBurstTM模式下的数据包格式如图3所示。

基于nRF24L01的智能家居网络的设计

将网络中所有节点的通道都配置为32字节模式,因此,一个数据帧可以发送32字节。其中数据帧的格式如图4所示。

基于nRF24L01的智能家居网络的设计

图4中,Networksegment为4字节,Sendaddress为1字节,Receiveaddress为1字节,Sourceaddress为1字节,CMD为1字节,剩下的24字节为data。Cmd具体含义见表1所列。

基于nRF24L01的智能家居网络的设计

2.6路由表的初始化和维护

在设计中,每个节点都要保存它下一跳的路径,也就是要保存它的邻居节点信息。每个节点的路由表结构图5所示。

基于nRF24L01的智能家居网络的设计

Addi是邻居节点地址,Ci表示该节点与它第i个邻居通信所需要的cost,Li表示节点通过第i个邻居向网关节点发送数据所需要的cost。邻居节点在路由表中的位置按照Li从小到大的顺序排列。L1是节点的mincost。数据发送时按照mincost发送。

3实验测试

笔者制作了7个节点模块,通过软件将网络地址前4个字节统一写为00:FF:EE:FF,最后一位分别写为0,1,2,3,10,12,34,66。将7个节点模块放置在2个房间中,上电组网测试。

通过实验得出:点对点通信时,在无障碍物时距离可以达到30m,有一墙之隔时可传输10m。对于单播和广播通信正常,丢包率不到0.5%。

4结语

本设计采用2.4GHz这一频段来实现无线数据传输,考虑到选用的nRF24L01芯片在此频段上具备较多的频点,能够解决家庭间信道干扰问题,同时搭配成本低廉的STM8S103F3组成智能节点,可降低节点成本,也降低了开发难度。本文阐述了系统中的硬件模块实现,家庭内部无线传感器网络的通信协议及通信数据包的设计方法,最后测试系统的可行性及稳定性。

20211027_617942cbc957c__基于nRF24L01智能家居网络的设计

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭