
这是如何使用RAK811 LoRA节点模块并将LoRa数据包发送到网关的分步教程。 , ^. g' U, P C9 J8 p) _硬件组件 RakWireless RAK831 LoRA网关前端 × 1 Raspberry Pi 3型号B. × 1 跳线(通用) × 1 USB-A到Micro-USB线 ×1 面包板(通用) × 1 Arduino UNO和Genuino UNO × 1 RakWireless RAK811 lora节点 × 1 手动工具和制造机器 烙铁(通用) 介绍 本教程是RAK wireless开始使用RAK811 lora节点模块的分步指南。本教程假设我们已经有一个LoRA网关设置,如下所示:https ://www.hackster.io/naresh-krish/getting-started-with-the-rak-831-lora-gateway-and-rpi3-e3351d RAK811:经济实惠的Lora节点: RAKWireless rak811是基于sx1276semtech模块和STM32主机的低成本超级lora节点板。Te节点支持868和915.在这个turial中,我将关注867.5 mhz通道,其扩展因子为7。 $ a$ A4 H3 p2 r3 E; m一些术语:频率和数据速率: 在深入研究如何使用节点之前,最好先了解一些lora术语。 频段: LoRa无线系统在世界不同地区使用不同的频段,如美国,欧盟,中国。下表列出了频带以及LoRa信道频率。请注意,Gateway和End设备可以使用相同的频率进行传输,但是在不同的时隙。这个概念称为TDD。 ETSI为LoRa应用定义了433至434 MHz频段。它使用433.175 MHz,433.375 MHz和433.575 MHz频道。 B类终端设备在EU频段使用869.525 MHz频道。 注意:本页提供的信息来自LoRa™Alliance于2015年1月发布的LoRaWAN Specification V1.0。请参阅LoRa Alliance(http://www.lora-alliance.org)发布的最新规范。 LoRaWAN数据速率和应用程序包大小 数据速率和最大数据包大小大致取决于到最近网关的距离和要发送的数据类型,并且还在每个区域的规范中定义。与欧洲863-870MHz频段一样,对于最慢的数据速率,应用程序包大小在51字节之间变化,对于更快的速率,应用程序包大小在222字节之间变化。请注意,LoRaWAN协议会向应用程序有效负载添加至少13个字节。 固定硬编码数据速率为SF12或SF11的设备不允许加入网络。 LoRaWAN传输占空比和停留时间 为了避免网络拥塞,LoRaWAN定义了一些最大传输占空比158 和最大传输时间(停留时间)。这取决于许多因素,包括区域和操作类型(如发送数据或广播加入网络的请求)。 对于欧洲EU 863-870MHz ISM频段,规范137 将数据的占空比限制为1%: LoRaWAN强制执行每个子带占空比限制。每次在给定子带中发送帧时,为该子带记录发射时间和帧的播出持续时间。在下一个Toff秒期间,不能再使用相同的子带,其中: Toffsubband =(TimeOnAir /DutyCyclesubbband) - TimeOnAir 在给定子带的不可用时间期间,设备仍然能够在另一个子带上发送。如果所有子带都不可用,则设备必须在进一步传输之前等待。设备根据子带可用性调整其信道跳变序列。 示例:设备仅在一个默认通道上传输0.5秒长的帧。该通道位于子带中,允许1%的占空比。因此整个子频段(868 - 868.6)将无法使用49.5秒。 对于其他地区,非常类似的限制适用。 这是一个很棒的电子表格,可以帮助您完成上述所有数学运算: http://docs.google.com/spreadsheets/d/1QvcKsGeTTPpr9icj4XkKXq4r2zTc2j0gsHLrnplzM3I/edit#gid=0 这里有关于lora技术和硬件抽象的更详细的描述:https://www.digikey.com/en/articles/techzone/2016/nov/lorawan-part-1-15-km-wireless-10-year-电池寿命-IOT 电路板布局 这是一块标有一些重要引脚的电路板 当与PC一起使用时,CRX-TXD和CTX-RXD之间有跳线,如上图所示。如果你使用arduino在TXD-RX和RXD-TX之间有跳线 ![]() 将该板用作独立的LoRa节点。 RAK 811已经开启了基于AT命令的固件,开箱即用,支持各种操作。该板可以与Arduino UNO一起使用,也可以通过串口使用,我将在另一篇文章中介绍。也可以使用STM32 coIDE对电路板进行编程。这也将在不同的教程中介绍。 本节假设您有一个基于Windows的系统运行您选择的串行终端程序。我使用Realterm这是一种流行的终端软件。 通过micro usb电缆将电路板连接到PC。 转到开始 - >搜索并搜索设备管理器。打开应用程序 转到端口COM和LPT并记下指定RAK811的端口(将显示为ch340串行设备) 打开Realterm并以8N1和115200作为波特率连接到com端口。 输入+版本 它应显示show OK <版本号>。这意味着电路板连接正确。 TroubleShoot备注: 确保串行连接的波特率为115200 通信设置为8个数据位,无奇偶校验和1个停止位 最后的CR和LF组合是必不可少的。否则你不会得到董事会的回应 LoraWAN连接:ABP和OTAA 当您将节点连接到lora网关时,我们需要在它们之间建立一定程度的安全性和信任。有两种连接模式,我们使用安全标准和易于实现来区分它们。 ABP:通过个性化激活 OTAA:空中激活 ABP 优点:易于连接到网络; 该设备可以在很短的时间内运行。 缺点:允许与网络通信的加密密钥在设备中预先配置; 这削弱了安全性。 注意:轻松连接网络需要以安全为代价; 如果设备发生物理入侵,密钥可能被盗,设备的身份被检索,收集的数据被破坏。 示例:水表可能返回错误的仪表数据,从而导致不便(洪水,过度开支等)。 为了正确建立与网络的连接并识别对象,我们需要一些信息: AppEUI :这是用于对对象进行分组的唯一应用程序标识符。该地址(64位)用于按应用对外围设备进行分类。此设置可以调整。 DevEUI:这个标识符,工厂集,使每个对象都是唯一的。原则上,此设置无法调整。 AppKey:这是外围设备和网络之间共享的密钥。它用于确定会话密钥。此设置可以调整。 加密密钥在外围设备中预编程: DevAddr:这是用于标识网络上对象的逻辑地址。 NetSKey(网络会话密钥):对象和用于传输的运营商之间的加密密钥,用于验证消息的完整性。 AppSKey(应用程序会话密钥):用于传输的对象和用户(通过应用程序)之间的加密密钥,用于验证消息的完整性。 OTAA 优点:网络生成并发送加密密钥; 这样可以提高安全性。 由于更高的安全性,OTAA是IoT / LoRaWAN中最常用的方法。 缺点:对象必须实现此连接机制,这会增加额外的复杂性。 为了建立与网络的连接并识别对象,我们需要一些信息。 AppEUI :这是用于对对象进行分组的唯一应用程序标识符。该地址(64位)用于按应用对外围设备进行分类。此设置可以调整。 DevEUI :这个标识符,工厂集,使每个对象都是唯一的。原则上,此设置无法调整。 AppKey :这是外围设备和网络之间共享的密钥。它用于确定会话密钥。此设置可以调整。 专注于OTAA 网络服务器是负责与对象建立连接和管理网络核心的软件组件。 在OTAA连接期间,并且假设设备被授权连接到网络,网络与网络核心交换会话特定的加密密钥。然后,网络服务器分配特定于会话的信息并将它们发送到外围设备: DevAddr :将用于所有后续通信的逻辑地址(相当于IP地址)。 NetSKey(网络会话密钥):对象和用于传输的运营商之间的加密密钥,用于验证消息的完整性。 AppSKey(应用程序会话密钥):用于传输的对象和操作员(通过应用程序)之间的加密密钥,用于验证消息的完整性。 在TTN上配置节点: 我将在TTN网站上简要介绍设备注册的概念(步骤由TheThingNetwork.org提供)。在设备可以通过The Things Network进行通信之前,您需要在应用程序中注册它。 要使用默认的空中激活,您需要使用其设备EUI注册您的设备。有关说明,请参阅设备的文档,例如TheThings Uno的说明。 1.在控制台中,从应用程序或应用程序的“设备”屏幕中,单击“ 注册设备”。 对于设备ID ,选择 - 对于此应用程序 - 唯一的小写ID,字母数字字符和非连续- 和_ 。 o对于设备EUI ,请复制粘贴从设备检索到的设备。 如果您打算切换到ABP ,请单击为您生成一个按钮。 保留要生成的App密钥。 对于App EUI ,从列表中选择生成的EUI。 ![]() 2.单击“ 注册” 完成。 您将被重定向到新注册的设备,您可以在其中找到激活设备所需的生成的App Key 。 个性化ABP设备 建议使用空中激活(OTAA)协商会话密钥以进行进一步的通信。您可以选择个性化设备,这意味着您将手动生成或分配会话密钥,并在设备上使用硬编码。 在制作中,你会想要使用OTAA。这样更可靠,因为激活将得到确认并且更加安全,因为会话密钥将在每次激活时进行协商。ABP对于研讨会非常有用,因为您无需等待下行链路窗口可用于确认激活。 在控制台中,转到您要个性化的设备。 从右上角的菜单中,选择“设置”。 3.对于激活方法,单击ABP 。 ![]() 保留为您生成网络会话密钥和应用会话密钥,或者如果您想自己设置它,请单击自定义它。 4.单击“ 保存” 完成。 您将被重定向回设备,在设备中您将找到激活设备所需的设备地址和会话密钥。 在我们的示例中,我们将使用OTAA配置lora节点的方式。因此,请将您的会话设置保留为OTAA模式。 配置RAK811 LoRA节点。 现在您已在云中配置节点。是时候配置节点与网关通信了。您现在需要掌握三个细节 dev - eui app-eui来自设备控制台页面 app_key:也来自设备控制台页面。应用会话密钥 如果您在下面看到at + <command>,则需要在终端程序中输入。下面的任何一行都只是董事会的回应。 加入OTAA: Welcome to RAK811at+mode=0 /* SET LoraWAN workmode */ OK at+get_config=dev_eui /* GET Dev_EUI check */ OK3037343644357402 at+set_config=rx2:3,868500000 at+set_config=app_eui:39d7119f920f7952&app_key:a6b08140dae1d795ebfa5a6dee1f4dbd /* SET LoraGatewayapp_eui and app_key , big endian*/ OK at+join=otaa /* Join OTAA type*/ OK at+recv=3,0,0 /* Join statussuccess*/ if you get 6,0,0 you need to recheck your configyrations 加入ABP: Welcome toRAK811 at+mode=0 /* SET LoraWAN workmode */ OK at+set_config=rx2:3,868500000 at+set_config=dev_addr:00112233&nwks_key:3432567afde4525e7890cfea234a5821&apps_key:a48adfc393a0de4 58319236537a11d90/* SET LoraGateway dev_addr nwks_key andapps_key , big endian*/ OK at+join=abp /* Join ABP type*/ OK at+recv=3,0,0 /* Join statussuccess*/ 通过LoRAWan发送和接收消息: 现在连接后,您可以通过LoraWAN方法发送和接收消息:要发送消息,这是一个示例: /*After joingateway success, then can send and receive data*/ at+send=0,2,000000000000007F0000000000000000/*APP port:2, battery level 50%,unconfirmed message*/ at+recv=2,0,0 /*unconfirmed mean tx success*/ at+send=1,2,000000000000007F0000000000000000/*APP port :2, battery level 50%, confirmedmessage*/ at+recv=1,0,0 /*confirmed mean receive ack from gateway*/ 通过P2P发送和接收消息: 要在两个lora节点之间发送接收消息,这里有一个小样本: /* Module A RxSide*/ Welcome toRAK811 at+mode=1 /* SET LoraP2P work mode */ OK at+rf_config=867700000,10,0,1,8,14 /* SET LoraP2P Frequency:867.7MHz, SF10,Bandwith 125KHz,coding Rate:4/5,Preamlen:8, tx power:14dbm */ OK at+rxc=1 /* SET LoraP2P Rx continue enable report rx data */ OK at+rx_stop /* If want stop Rx continue */ /* Module B TxSide*/ Welcome toRAK811 at+mode=1 /* SET LoraP2P work mode */ OK at+rf_config=867700000,10,0,1,8,14 /* SET LoraP2P Frequency:867.7MHz, SF10,Bandwith 125KHz,coding Rate:4/5,Preamlen:8, tx power:14dbm */ OK at+txc=100,1000,800100000600010002da9557e142d9 /* SET LoraP2P Tx continue ,100packets, 1S interval, hex data */ OK at+recv=9,0,0 /*When Tx complete */ at+tx_stop /* If want stop Tx continue */ 检查TTN控制台是否收到传入消息: TTN设备控制台提供一个选项卡,用于以列表的形式查看已注册的lora节点的传入数据。有关使用数据字节的大量方法列表,请在此处查看有关TTN API的教程: http://www.thethingsnetwork.org/docs/devices/bytes.html 以上是使用LoRa网关设置RAK811的用法。 原理图 ![]() |