我需要告诉它连接到节点和服务器吗?还是自动接收数据?
我是否将服务器编程为连接到网关或直接连接到节点?
#1 楼
在典型的LoRaWAN网络中,网关是愚蠢的设备,如LoRa联盟所解释:透明设备在后端设备与后端中的中央网络服务器之间中继消息。因此,只需配置网关即可连接到某些网络服务器,例如开放式物联网。仅此而已。
网关通常被称为“分组转发器”。这样,网关就可以做到这一点:它们将所有接收到的LoRaWAN数据包转发到某个网络服务器(无论发送哪个节点),然后传输网络服务器命令的内容。因此,节点(终端设备)不连接到某个网关。相反,它们只是传输并希望一个或多个网关接收其传输并将其转发给知道该节点的网络服务器。 (网关无法读取它们转发的加密数据。)
使用以下两个选项之一将节点“激活”以将其连接到网络:
空中激活(OTAA)
首先,使用某些网站或API,使用其唯一的设备EUI(
DevEUI
)在网络服务器中注册每个新节点。然后,它获得一个公共应用程序ID(AppEUI
)和一个秘密应用程序密钥(AppKey
)。这三个值被编程到节点中。接下来,当准备首次发送时,节点将使用这些值来创建和传输LoRaWAN加入请求。如果一个或多个网关收到了这样的请求,则将其转发到网络服务器,如果批准,它将通知一个网关发送加入接受。如果被节点接收,则为节点提供一个公共设备地址(
DevAddr
),一个秘密网络会话密钥(NwkSKey
)和一个秘密应用会话密钥(AppSKey
)。 每当节点需要传输一些实际数据时(连同每次加入时从零开始的安全计数器),都使用从加入接受确定的值。只要节点将其保留在内存中(并且安全计数器尚未耗尽),激活就有效,通常长达数月甚至数年。每当丢失时,节点都可以发送新的加入请求并获取新的机密。或API,会立即为节点提供设备地址(
DevAddr
),秘密网络会话密钥(NwkSKey
)和秘密应用程序会话密钥(AppSKey
),这些地址已编程到节点中,并且永不更改。节点在可以开始发送任何数据之前不需要先发送加入请求,但是需要注意安全计数器不会丢失。同样,密钥是给定网络的特定密钥。通过APB,很难(即使不是不可能)将节点移动到其他网络提供商。评论
一些特殊的网关包括LoRaWAN网络服务器,并且可以充当独立网络。但是大多数必须连接到外部网络服务器。我删除了我在那一点上还不够清楚的答案。
–西尔万
17年6月12日在18:16
#2 楼
Arjan的答案很好。技术。我想提供一个不同的风味答案,以帮助那些新手和努力将有关网关以及数据包如何来回移动的图片整理在一起的人。类比...
You > Letter > Mailbox > Mailman > Post Office Dist > Recipient
|----------------- TX -------------------|
Node > Packet > Transmission > Gateway > Network Server > Application
|----------------- RX -------------------|
Node < Packet < Transmission < Gateway < Network Server < Application
字母/数据包有地址。邮递员/网关从您的邮箱或您放入信函的任何邮箱中提取信件。它一直处理到收件人。如果地址错误,它将不会到达,您应该得到通知。收件人可以通过同一系统将一封信发送给您。
无论您是要使用The Things Network还是尝试使用LoRaServer之类的东西来构建自己的私有服务器,您都需要一个网关在您的节点/远程/终端设备的范围之内来回转发消息。可以将节点代码中的不同键视为类推中字母的地址。
您可以在其地图页面上确定您所在的区域中是否已经有TTN网关,以及是否可以到达该网关。在您的节点上,您的消息应该到达您的TTN(假设您已经将密钥注册并应用到了节点)。如果没有网关,您可以建立自己的网关。有很多选择可以做到这一点。
关于配置网关,取决于选择的库,通常只需要在源代码或global_conf.json或local_conf.json文件中配置一些参数。
这是一个使用single_chan_pkt_fwd修补RFM9X(基于SX1276)和RPI3 B +的示例,但顺便说一句,它不会提供响应...请记住,这仅用于修补/测试。转发器示例和global_conf.json下面的示例都不是即插即用的,因此不应依赖于正确的LoRaWan网络。兼容的网关具有3个无线电,并且可以处理多个信道并同时发送/接收。此示例仅从单通道上的节点接收,不是很可靠,但确实提供了当前配置。每个值都取决于您所使用的硬件以及您所处的位置...或网关的位置,例如美国,欧盟等...也值得注意的是,此类global_conf.json不是一个大小适合所有人。通常,不同的库具有用于多个无线电,频道等的更多配置选项。仅用于FYI。 。您可以使用LMIC-Arduino库和示例草图之类的东西。您首先必须根据设备硬件确定如何配置设备的Pinmap才能正常工作。然后,如果您要使用TTN,请按照许多指南中的任何指南进行注册,并获取放入草图代码中所需的键。您还必须确保以适当的频率进行传输,以便与您所在区域的网关对齐。
评论
欢迎来到该网站。您能否添加一些有关所用设备型号的信息,并添加一些有关您的用例的详细信息?这将帮助我们为您提供更好的答案。嗨,谢谢!我是物联网的初学者,所以我使用arduino uno,温度传感器和Dragino Lora Shield创建了一个节点,我试图将日期发送到服务器,所以我尝试使用树莓派创建LoraWan Gateway,关于如何将其转换为LoraWan网关的一些研究,我发现我可以使用其他Dragino Lora Shield或iC880A模块,但我发现可以使用它的源代码,但是我仍然对如何连接网关到节点,以及如何将数据从节点发送到网关到服务器?在此先感谢!!