【IoT迷你赛】LoRa初探-守护小花
- 2020 年 3 月 11 日
- 笔记
LoRa介绍
首先,LoRa是一种用于无线物联网络的通信技术,那这种技术和我们熟知的wifi、4g、蓝牙等技术有什么不同,它合适的市场场景是怎么样的呢?
LoRa、Wifi、蓝牙对比
- WiFi:日常最常见的网络技术之一,主要工作频段在2.4G以及5G。主要特点:高速率(一般可达100Mbps)、覆盖范围中等(有障碍物信号会有衰减)、高能耗(相对其他物联网技术)。
- 3G/4G:移动通信网络主要使用的技术,工作带宽在1.4MHz到20MHz不等。基特点是高速率、广覆盖(最多可达100公里)、支持高移动性。
- 蓝牙:使用主–从模式,工作在2.5GHz频段,视工作模式,覆盖范围在10厘米到100米不等。主要特点是小覆盖、小网络(最多7个从设备)、低速率(1-3Mbps)、相对节能(可以持续数天)。最新的低能耗蓝牙(BLUETOOTH-LE)速率更低,可以依靠电池使用数月。
- 802.15.4/ZigBee:专门针对物联网、传感器网络设计的一种通信技术,主要特点是低速率(最大0.25Mbps)、低能耗(可以依靠电池使用数月甚至数年)、覆盖范围中等
我们可以从下面的雷达图直观地看出来区别

而RoLa和以上技术的适用场景都不太一样,其主要特点是
- 大范围覆盖(5–10公里,组城市网这个范围正好合适)
- 抗干扰能力强(非常时候厕所等障碍物较多的场景)
- 低能耗
- 双向通信
- 高网络容量,支持密集节点
从其特点可以看出,RoLa非常适合智能楼宇、智能城市等场景,在智能水务、智能停车等方面已经有相对成熟应用
网络组成
LoRa网络主要由终端(可内置LoRa模块)、网关(或称基站)、Server和云四部分组成。应用数据可双向传输。

LoRa协议栈

- 最底层的灰色部分,表示LoRa所工作的频段。LoRa使用了无需授权的ISM频段,在欧洲为868MHz或者433MHz,在美国为915MHz,亚洲为430MHz;
- 上面的橙色部分,是LoRa物理层。LoRa物理层属于Semtech公司的私有技术并申请了专利,使用CSS(Chirp Spread Spectrum)调制方式。目前只有Semtech提供相关通信模块;
- 蓝色部分为LoRaWAN链路层协议,由LoRa Alliance联盟制定,是公开标准。主要规定了网络的组织方式、终端工作模式以及链路访问模式等等。
- 最上面的绿色部分就是用户的应用。
这里特别要注意的是LoRa物理层协议以及LoRaWAN的区别:LoRa物理层是私有协议,是基础;LoRaWAN是LoRa联盟基于LoRa物理层制定的链路层协议,是公开标准。
从前面介绍可以看出,LoRa开发涉及协议、终端、网关、云端服务等领域,还是有比较高的开发门槛的,不过好消息是,腾讯云已经几乎全都封装好了!下面我们用一个演示例子快速了解一下吧~
P-NUCLEO-LRWAN3初探
腾讯云配置
- 登录https://console.cloud.tencent.com/iotexplorer
- 新建项目 – 新建产品

在“自定义功能”里面“新建功能”

设置LoRaWAN参数
在设备开发页面中,按需调整 LoRaWAN 参数配置。本示例中使用默认的 OTAA 配置。

设置数据解释脚本
这里支持js语法,一般LoRa传输容量有限,所以不要直接传json,这里需要做下处理

创建设备
第三部交互开发先不用修改,直接到第四步
填写信息可以从节点背面找到

好,下面配置网关部分
网关配置

相关信息可以在网关背面找到~
这里配置已经完成啦~下面开始编写示例程序
下载源码
TencentOS tiny官方开源仓下载源码,地址为:https://github.com/Tencent/TencentOS-tiny
进入 <TencentOS-tinyboardNUCLEO_STM32L073RZKEILlorawan> 目录,打开TencentOS_tiny.uvprojx工程
修改代码
首先修改 examplesLoRaWANlora_demo.c
tos_lora_module_join_otaa("*******", "************");
这里填入节点相应的 DevEUI 和 AppKEY,可从LoRa节点开发板背面获取。
然后是 devicesrhf76_loraRHF76.h,这里80-87是信道
#define RHF76_ATCMD_SET_CHANNEL "at+ch=num,80-87rn"
就是这么简单,示例代码已经可以跑起来了,马上编译下载吧
完成后节点会重新启动,我们直接通过串口工具观察日志

当看到串口打印如下日志,即说明 LoRa 节点已经通过网关成功入网。
--->+JOIN: Network joined --->+JOIN: NetID 000000 DevAddr **:**:**:**
在线调试
完成接入后,我们可以在腾讯云上进行设备调试
这里不得不赞一下腾讯云团队,在线调试功能非常方便,虚拟设备调试也非常好用

可以看到,适用腾讯云物联网开发平台可以快速开发RoLa项目~
希望其他同学可以和我一起交流~