基于NRF24L01的校园智能路灯初步粗略设计方案

上传人:206****923 文档编号:91081566 上传时间:2019-06-21 格式:DOCX 页数:28 大小:868.09KB
返回 下载 相关 举报
基于NRF24L01的校园智能路灯初步粗略设计方案_第1页
第1页 / 共28页
基于NRF24L01的校园智能路灯初步粗略设计方案_第2页
第2页 / 共28页
基于NRF24L01的校园智能路灯初步粗略设计方案_第3页
第3页 / 共28页
基于NRF24L01的校园智能路灯初步粗略设计方案_第4页
第4页 / 共28页
基于NRF24L01的校园智能路灯初步粗略设计方案_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《基于NRF24L01的校园智能路灯初步粗略设计方案》由会员分享,可在线阅读,更多相关《基于NRF24L01的校园智能路灯初步粗略设计方案(28页珍藏版)》请在金锄头文库上搜索。

1、传感器与检测应用设计报告 实验名称: 基于NRF24L01的校园智能路灯课程设计 一 设计名称基于NRF24L01的校园智能路灯初步粗略设计方案二 摘要近年来,低碳生活,节能减排越来越受到国家的大力支持,在校园生活中平均一盏路灯的功率在200W-300W之间,每晚大概需要点亮时长为18:00-5:00,粗略的计算会发现每盏路灯的功耗大概在2.2-3.3kWh,学校大多用电平局一度电在0.55元左右,因此,每晚一盏路灯所产生的电费大概在1.2-1.8元左右,大学校园犹如一个小城市,每个学校的路灯至少上百盏,路灯的数量有的会达到上千盏甚至更多。这给学校每天的开销带来了一部分没必要的浪费。节约校园照

2、明用电消耗成为响应国家对于节能号召的重要措施之一。一般的校园照明系统只是运用普通的声控及光控传感器组成开环的控制系统,其灵活性差,功耗大,不可人为干预。而市场上闭环控制的照明系统投入资金大,稳定性差,无法在校园中得到推广。三 设计目的1. 了解NRF24L01的基本通信原理2. 掌握stm32f103芯片的AD转换原理3. 熟练掌握光敏电阻的应用4. 将本学年所学知识进行一次综合汇总四 设计原理系统的设计主要有以下四个模块部分:微控制器STM32,光敏电阻模块, LED照明电路.无线射频模块。其中光敏电阻模块与LED照明电路组成检测照明部分,主要负责检测外界光的强度,人流高峰期会默认开启普通照

3、明模式,夜间会默认开启节能模式。微控制器STM32负责收集采集数据,以及AD转换,通过串口向PC机发送消息。无线射频模块负责向主机传递信息,当从机照明电路出现错误时会触发射频模块发射数据,不同从机对应不同数据。发送完成结束传输。1. 本设计的设计要求(1).综合考虑选择是一主多从还是一从多主。(2).硬件设计上应该考虑到滤波的重要性,结构尽量简单实用,易于实现,使系统电路尽量简单。(3).软件设计必须要有完善的思路,要充分考虑到各种传感器和无线收发器的时序,做到程序简单,调试方便。(4).通过软件设计尽量降低无线数据传输的误码率2.主要硬件介绍(1).NRF24L01无线模块简介各管脚如下定义

4、:8.IRQ7.MISO6.MOSI 5.SCK4.CSN 3.CE 2.VCC1.GND具体说明:3.CE 芯片的模式控制线。在 CSN 为低的情况下,CE 协同NRF24L01 的CONFIG 寄存器共同决定NRF24L01 的状态(参照NRF24L01 的状态机)。 4.CSN 为芯片的片选线 CSN 为低电平芯片工作5.SCK 为芯片控制的时钟线(SPI时钟)6.MOSI 为芯片控制数据线(Master output slave input) 主输出 从输入7.MISO 芯片控制数据线 (Master input slave output)主输入 从输出8.IRQ 中断信号引脚。中断时

5、变为低电平,即NRF24L01内部发生中断时IRQ 引脚从高电平变为低电平。引脚会在以下三种情况变低:Tx FIFO 发完并且收到ACK(使能ACK情况下)、Rx FIFO 收到数据、达到最大重发次数。中断:nRF24L01 的中断引脚(IRQ)为低电平触发,当状态寄存器中TX_DS(数据发送完成中断位)、RX_DR(接收数据中断位) 或MAX_RT(达到最多次重发中断位)为高时触发中断。当MCU 给中断源写1时,中断引脚被禁止。可屏蔽中断可以被IRQ 中断屏蔽。通过设置可屏蔽中断位为高,则中断响应被禁止。默认状态下所有的中断源是被禁止的。系统结构框图如下所示检测照明部分检测照明部分检测照明部

6、分STM32微控制器STM32微控制器STM32微控制器.NRF24L01发射或接收NRF24L01发射或接收NRF24L01发射或接收NRF24L01通道 五设计原理NRF24L01工作原理发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_

7、ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TXFIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就

8、将数据包存储在RXFIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。 在写寄存器之前一定要进入待机模式或掉电模式。如下图,给出SPI操作及时序图:图2.4 SPI读操作SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU。 nRF24L0

9、l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01 的配置寄存器共有25个,常用的配置寄存器如表2所示。 表2:常用配置寄存器地址(H)寄存器名称功能00CONFIG设置24L01工作模式01EN_AA设置接收通道及自动应答02EN_RXADDR使能接收通道地址03SETUP_AW设置地址宽度04SETUP_RETR设置自动重发数据时间和次数07STATUS状态寄存器,用来判定工作状态0A0FRX_ADDR_P0P5设置接收通道地址10TX_ADDR设置接收接点地址1116RX_PW_P0P5设置接收通道的有效数据宽度六硬件电路图(1).NRF24L01原理图

10、 (2).光敏电阻模块原理图(3) .硬件电路连接图七.程序源码及分析(1).主机程序主机程序主要实现当三个从机中在时间触发的情况下进行AD采集带电压并且返回给主机,主机进行错误判断一号路灯出现问题时候,主机会通过串口向PC段发送数据,主机端监视助手会进行判断,对应的相应的灯会出现亮灭以及闪烁状态。以达到提醒维修人员及时检查维修路灯。程序部分如下所示/错误检测NRF_RX_Mode();printf(Receive modern);if(NRF_Rx_Dat(rxbuf) = RX_DR);elseprintf(接收失败rn);/第一个路灯出现问题if(rxbuf0=JC10&rxbuf1=J

11、C11&rxbuf2=JC12)bz1=1;USART_SendData(USART1,0x01);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=RESET);delay_ms(10);printf(出错请检查路灯rn);memcpy(rxbuf,12);printf(%drn,rxbuf0);printf(%drn,rxbuf1);printf(%drn,rxbuf2);/第二个路灯出现问题else if(rxbuf0=JC20&rxbuf1=JC21&rxbuf2=JC22)bz2=1;USART_SendData(USART1,0x02

12、);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=RESET);delay_ms(10);printf(出错请检查路灯rn);memcpy(rxbuf,12);printf(%drn,rxbuf0);printf(%drn,rxbuf1);printf(%drn,rxbuf2);/第三个路灯出现问题else if(rxbuf0=JC30&rxbuf1=JC31&rxbuf2=JC32)bz3=1;USART_SendData(USART1,0x03);while(USART_GetFlagStatus(USART1,USART_FLAG_TX

13、E)=RESET);delay_ms(10);printf(出错请检查路灯rn);memcpy(rxbuf,12);printf(%drn,rxbuf0);printf(%drn,rxbuf1);printf(%drn,rxbuf2);/路灯一和路灯二出现问题else if(bz1&bz2=1)USART_SendData(USART1,0x04);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=RESET);delay_ms(10);bz1=0;bz2=0;/路灯二和路灯三出现问题else if(bz2&bz3=1)USART_SendDat

14、a(USART1,0x05);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=RESET);delay_ms(10);bz2=0;bz3=0;/路灯一和路灯三出现问题else if(bz1&bz3=1)USART_SendData(USART1,0x06);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=RESET);delay_ms(10);bz1=0;bz3=0;/路灯一.路灯二.路灯三出现问题else if(bz1&bz2&bz3=1)USART_SendData(USART1,0x07);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号