面向LoRa的物联网平台研究

上传人:I*** 文档编号:188541421 上传时间:2021-07-31 格式:DOC 页数:9 大小:139.50KB
返回 下载 相关 举报
面向LoRa的物联网平台研究_第1页
第1页 / 共9页
面向LoRa的物联网平台研究_第2页
第2页 / 共9页
面向LoRa的物联网平台研究_第3页
第3页 / 共9页
面向LoRa的物联网平台研究_第4页
第4页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《面向LoRa的物联网平台研究》由会员分享,可在线阅读,更多相关《面向LoRa的物联网平台研究(9页珍藏版)》请在金锄头文库上搜索。

1、 面向LoRa的物联网平台研究 朱庆华+景妮琴+常莹摘要:该文面向LoRa的物联网平台,将平台分解为用户节点终端、LoRa网关、LoRa服务器、管理平台四个模块。其中,传感器和传输节点之间通过串口通信传输数据,节点接收数据之后通过LoRa调制方式发送给网关,服务器为所用设备公司提供的远程服务器,在PC端编写数据读取窗口读取服务器上接收的网关数据。最后对LoRa物联网平台进行了功能测试和性能测试。关键词:物联网;LoRa;短距离通信TP393 :A :1009-3044(2018)01-0075-031 概述1.1 技术的提出2013年8月,Semtech公司向业界发布了一种新型的,基于1GHz

2、以下的超长距低功耗数据传输技术(简称LoRa)的芯片。其接受灵敏度达到了惊人的-148dbm,LoRa是由升特公司(Semtech)发布的一种专用于无线电调制解调的技术,它与其他如FSK(频移键控)、GMSK(高斯最小频移键控)、BPSK(二进制相移键控)及其派生的调制方案形成竞争关系。LoRa融合了数字扩频、数字信号处理和前向纠错编码技术,拥有前所未有的性能。此前,只有那些高等级的工业无线电通信会融合这些技术,而随着LoRa的引入,嵌入式无线通信领域的局面发生了彻底的改变。1.2LoRa技术优势LoRa技术最突出的两个优点就是长距离和低功耗。LoRa技术的第一个优点就是传输距离长。在郊区环境

3、下,LoRa技术的传输距离可以达到1015km;在城市环境下,传输距离也能达到35km。这样的传输距离相比Wi-Fi、2G、3G、4G等要远很多。LoRa技术能有这么远的传输距离,得益于它工作的频率范围比较低,频率低的信号波长较大,在城市中众多建筑包围之下产生的衰落就比较小,所以传输距离远。LoRa技术另一个优点就是低功耗。LoRa技术之所以能够低功耗,首先是因为其发射频率低,信号波长比较长,在传播过程中所产生的衰落比较小,因而可以采用低功率发射;其次,LoRa采用扩频技术,能使信号的抗多径、抗衰落能力比较强,所以对发射功率的要求不高;最后,为达到省电的目的, 业界广泛应用WOR(Wake o

4、n Radio) 方式芯片周期性地进入接收模式以判断有没有唤醒信号(比如前导),其他时间处于Sleep模式,通过对比,采用WOR方式可以使电池寿命相比功耗同样不高的FSK调制提高3倍以上。1.3 LoRa WAN1.0LoRaWAN1.0是有LoRa联盟提出的LoRa技术规范,它定义了LoRa网络的通信协议和系统结构。通信协议和系统结构对LoRa网络的节点电池寿命、网络容量、服务质量、安全性和服务的多样性有着重要影响。如图1所示,LoRaWAN网络架构是一个典型的星形拓扑结构,在这个网络架构中,LoRa网关是一个透明的中继,连接前端终端设备和后端中央服务器。网关与服务器通过标准IP连接,而终端

5、设备采用单跳与一个或多个网关通信,所有的节点均是双向通信。LoRaWAN的终端设备服务于不同的应用,有着不同的要求。为了优化各类终端应用程序配置文件,LoRaWAN利用不同的设备类权衡网络下行通信延迟与电池寿命。在控制或执行器类型的应用程序,所述下行链路通信延迟是一个重要的因素。2 面向LoRa的物联网平台设计2.1 设计原则物联网平台的设计应该支持多种业务需求,既要满足不同业务的共性需求,同时又能够支持不同业务的个性化需求。除此之外,平台的系统设计还应该遵循以下几个原则:安全性原则、实用性原则、标准性原则和可扩充性原则。2.2 面向LoRa的物联网平台网络结构如图2所示,整个LoRa物联网平

6、台分为用户节点终端、LoRa网关、LoRa服务器、管理平台四个模块。其中,用户节点终端由测试节点与数据采集传感器相连接,用户节点终端部署在教学楼、学生公寓及行政楼等分散的多个位置,采用星型网络布局;LoRa网关放在网络中心机房内,用于接收测试节点发送的数据并转发至服务器;LoRa服务器采用设备商提供的远程云服务器;管理平台通过登录远程云服务器获取LoRa网关的数据,并能通过平臺向节点发送消息。3 面向LoRa的物联网平台实现平台实现的用户终端模块由检测仪、测试节点和移动电源组成,用于测试LoRa网络覆盖质量,传输温度、湿度和空气质量数据,同时,用户也可以通过检测仪了解到节点位置的温度、湿度和空

7、气质量情况。3.1 检测仪检测仪上的各个传感器都是通过串口通信传输数据,因而整个检测仪的数据采用串口方式传输,采用TTL-USB接口将检测仪连接到PC端,通过PC端的串口调试软件测试数据传输是否正常。根据检测仪的说明书,检测仪上传的数据间隔为1秒,波特率9600,数据位8位,停止位1位,无校验位。测试结果从串口调试软件串口数据接收获取,根据读取的数据,计算如下:温度=28.0;湿度=31RH%;PM2.5=0g/m3;PM10=0g/m3;计算结果与检测仪屏幕显示结果完全相符。测试结果说明检测仪串口数据上传没有问题。3.2 测试节点测试节点为基于LoRa物联网平台中的重要部分,它的主要功能有:

8、通过串口与检测仪通信;OLED显示屏,可根据需要显示数据;通过编程中的逻辑修改,实现LoRaMAC、PHYMAC、低功耗三个模式直接的切换;向LoRa网关发送上行数据;接收LoRa网关的下行数据;测试LoRa网络覆盖质量。节点编程实现:1) 串口驱动程序其中核心代码如下:endprint串口初始化函数:void UART_Init(void)该函数的作用为初始化串口设置,在对测试节点进行烧写编程时对串口的波特率、数据位数、有无停止位、有无校验位等参数进行设置,若想修改这些参数,需要对测试节点进行重新烧写。根据检测仪的串口参数需求,编写代码:UartHandle.Instance = USART

9、x;UartHandle.Init.BaudRate = 9600;UartHandle.Init.WordLength = UART_WordLENGTH_8B;UartHandle.Init.StopBits = UART_STOPBITS_1;UartHandle.Init.Parity = UART_PARITY_NONE;UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;UartHandle.Init.Mode = UART_MODE_TX_RX;串口发送函数的关键语句为:uint16_t i = 0 ;for(i = 0;i USART

10、1TDR = (uint8_t)(stri);while( HAL_USART_GET_FLAG(USART1,UART_FLAG_TC)= RESET);2) 屏幕驱动程序其中的核心函数如下:void OLED_Init(void)此函数为OLED的初始化函数,用于配置OLED引脚,设置对比度、扫描方向、亮度的参数。若想对OLED的基本参数进行改动,需修改此函数中的内容并重新烧写。void OLED_DrawPoint(u8 x,u8 y,u8 t)void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode) /单个字符显示此函数的功能为控制OLE

11、D显示屏在(x,y)坐標的位置显示一个字符。核心代码如下:for(t=0;t if(size=12)temp=asc2_1206chrt; / Font 1206else if(size=16)temp=asc2_1608chrt; / Font 1206else if(size=24)temp=asc2_2412chrt; / Font 1206else return; /Not word stockfor(t1=0;t18;t1+) if(temp&0x80)OLED_DrawPoint(x,y,mode);else OLED_DrawPoint(x,y,!mode);temp=1;y+;

12、if(y-y0)=size) y=y0;x+;break;void OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size) /显示需要的数据 while(*p= ) /Determine whether illegal if(x(128-(size/2)x=0;y+=size;if(y(64-size)y=x=0;OLED_Clear();OLED_ShowChar(x,y,*p,size,1);x+=size/2;p+; 3) LoRa频点、信道设置测试节点支持LoRaMAC工作模式,LoRaMAC工作模式又分为LoRa调制和FSK调制两种,本次所建的L

13、oRa物联网平台采用LoRa调制。实现LoRaMAC工作模式设置的程序写在app_oasl.c文件中,其核心代码如下:/设置LoRaMAC工作模式(LoRa调制)/设置信道1g_macData.channels0.Frequency = 779500000;/频点/速率范围:(最高速率4丨最低速率)g_macData.channels0.DrRange.Value = ( ( DR_5 4 ) | DR_0 );g_macData.channels0.Band = 0;4) 串口数据读取串口数据读取的程序语句如下:switch(step) case 0:if(ch = 0xFF) step+;

14、uart1_Rxcount= 0;memset(uart1_rxBuf,0,80);/?uart1_rxBufuart1_Rxcount = ch;uart1_Rxcount+;break;case 1:uart1_rxBufuart1_Rxcount+ = ch;if(uart1_rxBuf8=0x79)/跳过无用帧step=0;if(uart1_Rxcount=12)for(uint8_t i=0;i13;i+) sprintf(char*)temp_buf+len,%X,uart1_rxBufi);/bandwidthlen=strlen(char*)temp_buf);OLED_Sho

15、wString(0,24,(u8*)temp_buf,12);OLED_Refresh_Gram();5) 串口数据发送串口数据读取完毕后,调用osal_set_event函数启动发包程序。由于检测仪上传串口数据的频率固定为1秒1帧,而测试节点采用LoRa模式发送数据的频率远远低于检测仪上传串口数据的频率。为保证测试节点不出现死机的情况,设置为可以丢包但是不会死机的工作模式,以保证测试节点正常工作。3.3 用户节点终端模块整体测试用户节点终端模块由检测仪和测试节点组成,在完成对检测仪和测试节点的编程、调试工作后,需对用户节点终端模块整体进行测试。将测试节点上的4PIN串口数据线按照GND-GND,5V-5V,TX-RX,RX-TX的顺序连接。串口数据线连接完成后,将移动电源的Micro-USB口连接至检测仪,打开移动电源和检测仪的开关,测试节点已经正确地读取到了检测仪

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

当前位置:首页 > 中学教育 > 教学课件

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