开始使用 RAK 831 Lora Gateway 和 RPi3
这个项目带您完成启动 RAK 831 Lora 网关模块并使用 wifi 作为回程运行所需的所有步骤。
故事
简介
本分步指南面向希望使用 RAK Wireless 出色的 RAK831 Lora 无线电前端模块开发自己的 Lora 网关的开发人员。本指南假定您了解 Raspberry pi 生态系统、硬件和相关 Debian 操作系统的基本知识。本指南还假定您了解 Raspberry Pi 上的 GPIO 和外围设备的基本知识。所以让我们开始吧:
什么是LoRA?
LoRa 联盟™ 技术。 LoRaWAN™ 是一种低功耗广域网 (LPWAN) 规范,旨在用于区域、国家或全球网络中的无线电池供电设备。 LoRaWAN 针对物联网的关键需求,例如安全的双向通信、移动性和本地化服务。
礼貌 Semtech
上图显示了 Lora 无线架构的各个部分。下面简要解释一些重要的部分:
LoRa 技术和 LoRaWAN 协议的主要特性
·GEOLOCATION:启用无 GPS、低功耗的跟踪应用
·低成本:通过三种方式降低成本:基础设施投资、运营费用和终端节点传感器
· 标准化:改进的全球互操作性加快了基于 LoRaWAN 的网络和物联网应用的采用和推出
·低功耗:专为低功耗设计的协议,可延长电池寿命长达 20 年
·长距离:单基站可在密集的城市/室内区域提供深度渗透,并连接最远可达 30 英里的农村地区
·安全:嵌入式端到端AES128加密
·高容量:每个基站支持数百万条消息,非常适合为众多客户提供服务的公共网络运营商
RAK 831 是 LorA Radio 前端;即它充当传入 lora 数据包的接收器,并将它们转发到聚合器管理软件/硬件主机。它还可以根据主机板的请求传输 LoRA 数据包。在我们的例子中,树莓派 3 是控制 RAK 831 前端的主板。
选择回程
什么是回程?回程是指树莓派如何连接到互联网。本指南重点介绍使用 Wifi 作为回程,但您也可以使用以太网或 3G/4G。如果您在网关附近有以太网可用,那么比 WiFi 或 3G/4G 更喜欢它。这是因为外壳内有额外的无线电信号会引起噪音。该软件可以处理嘈杂的环境,所以问题不大,但噪音越小越好。您可以将此选择与以太网供电结合使用,以最大限度地减少一直到网关的布线。
另一方面,如果您选择WiFi而不是以太网,那么请尝试使用带外置天线的加密狗并将天线移到外壳外以减少盒子内的噪音。
设置硬件:
在我们连接任何东西并开启之前,让我们在树莓派和 RAK 831 模块上完成以下配置:
树莓派
1) 获取 raspberry pi 3 板并准备好 8gb micro sd 卡和 raspbian 软件。您甚至可以购买预装软件的新手 SD 卡。关于如何在 sd 卡上刷新操作系统,请按照此处的说明进行操作:https://www.raspberrypi.org/learning/hardware-guide/
2) 将树莓派连接到 5v 2amps 电源。这是非常重要的。 lora 模块在无线活动期间可能会消耗 700 mA 峰值,因此有一个很好的电源砖来为树莓派供电
树莓派 v3
RAK 831:
1) 在给电路板通电之前,先将套件中的天线连接到天线螺钉端子。这是必不可少的。
Raspberry Pi v3、RAK 831 模块和 Lora 节点
连接详情:
下表显示了如何将 rak831 模块与树莓派连接:
rpi v3 to rak 831 pin连接rak 831丝印映射到rak 831 pin。rak 831丝印映射到rak 831 pin
要了解 Raspberry Pi 引脚布局,请访问:https://www.raspberrypi.org/documentation/usage/gpio/ 了解详情
注意事项:
- 复位引脚可以连接到 raspberry pi 3 上的任何 GPIO。
- 务必确保正确连接电源引脚,以免损坏 RAK 831 板。
启用SPI:
SPI 外设默认不开启。要启用它,请执行以下操作。
- 运行 sudo raspi-config。
- 使用向下箭头选择 9 个高级选项
- 向下箭头到 A6 SPI。
- 当它要求您启用 SPI 时选择是 ,
- 当它询问自动加载内核模块时也选择是。
- 使用向右箭头选择<完成>按钮。
- 在要求重启时选择是。
Raspi-config for SPI
系统将重启。重新启动后,登录并输入以下命令
>ls /dev/*spi*
树莓派应该响应
/dev/spidev0.0 /dev/spidev0.1
这些分别代表片上 SPI 设备使能引脚 0 和 1。这些引脚在 Pi 内是硬连线的。通常,这意味着接口最多支持两个外设,但也有多个设备可以菊花链连接,共享单个芯片使能信号的情况。
给板子供电:
与任何无线项目一样,它们往往需要比主机板通过电源引脚提供的功率更多的功率。下面的两个方案列举了如何为 RAK 831 和 raspberry pi 3 供电。
1) 从 Raspberry Pi 为 5v 轨供电
2) 分别为 Raspberry Pi 和 RAK831 上的 5v 轨供电
软件安装:
在树莓派上执行以下步骤来安装必要的软件:
- 启用 SPI:
使用 raspi-config 实用程序启用 SPI([5] 接口选项 -> P4 SPI)并扩展文件系统([7] 高级选项 -> A1 扩展文件系统):
$ sudo raspi-config
- 确保安装了 git
须藤 apt-get 更新
须藤 apt-get 升级
须藤 apt-get 安装 git
- 在树莓派上管理您的 wifi 连接
- 配置 wifi 凭据(查看此处了解更多详细信息)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
并在文件末尾添加以下块,替换 SSID 和密码以匹配您的网络:
network={
ssid=“The_SSID_of_your_wifi”
psk=“Your_wifi_password”
}
- 克隆安装程序并开始安装
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway
$cd ~/ic880a-gateway
$ sudo ./install.sh螺旋
- 安装步骤会询问您是否要启用远程配置。输入“y”或“yes”并继续安装。在命令行安装开始时,脚本会向您显示网关 EUI,这对后续步骤很重要。记下来!
- 如果您想使用远程配置选项,请确保您已在此处的网关远程配置存储库中创建了一个名为网关 EUI(例如 B827EBFFFE7B80CD.json)的 JSON 文件:https://github.com/ttn -zh/网关远程配置。 Fork repo,添加具有正确配置的
.json 文件,然后提交分叉的 repo。完成后,向主存储库发送拉取请求,该文件应在第二天显示在存储库中。示例 json 如下所示:
{
“gateway_conf”:{
“gateway_ID”:“您在 install.sh 控制台输出中记下的 ID”,
“服务器”:[
{
“server_address”:“您要连接的路由器”,
“serv_port_up”:1700,
“serv_port_down”:1700,
“serv_enabled”:true
}
],
“ref_latitude”:rak 831 网关的纬度,
“ref_longitude”:rak 831 网关的经度,
“ref_altitude”:40,
“contact_email”:“网关所有者的联系邮箱”,
“描述”:“简短说明”
}
}
注意:
有关有效路由器的列表,请查看此处的链接:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- 默认情况下,安装程序会将您的 Raspeberry Pi 的主机名更改为 ttn-gateway(以防止与网络中的其他 Raspberry Pi 发生冲突)。您可以在非远程配置模式下覆盖它。
- HURRAY 您的网关现在应该可以工作了。确保第二天重新启动网关,以便将 json 文件正确下载到 RPi3。
- 注意 global_config.json 中的需要根据以下内容进行调整:
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
对于那些希望使用 mp_pkt_fwd 而不是这里听到的旧 poly 数据包转发器并按照提供的说明进行安装的人:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd。同样,您可以在项目的根目录中看到 global_conf..json 文件,只需确保编辑该文件(如下所述的 imp 部分),并在编译后将其复制到 bin 文件夹中。
global_conf.json 中的一些可配置实体:
安装脚本运行后,global_conf.json 文件可以在您的项目目录下的 ./bin/global_conf.json 中找到。以下是您可能希望在 global_conf.json 文件中为您的特定网关配置编辑的一些实体的列表:
1) “radio_0”或“radio_1”配置,特别是Frequency参数和min和max扫频参数。
2) “gateway_conf”部分,尤其是网关 ID 或网关的 EUI。
3) server up and down port in同一个gateway_conf对象连同你自己的应用服务器地址的TTN服务器地址(如果有的话)。
重置板:
每当我们启动树莓派时,重置附加的 RAK831 lora 模块是一个很好的做法。有两种方法可以做到:
- 通过 Shell 脚本:
在 LoRa 驱动程序可以访问硬件之前,可以编写一个小的 shell 脚本来重置 RAK831。 shell 脚本的内容可以如下例所示(假设树莓派的 GPIO 17(引脚 11)连接到 RAK831 的复位引脚):
#!/bin/bash
echo “17”> /sys/class/gpio/export
echo “out”> /sys/class/gpio/gpio17/direction
echo “1”> /sys/class/gpio/gpio17/value
sleep 5
echo “0”> /sys/class/gpio/gpio17/value
sleep 1
echo “0”> /sys/class/gpio/gpio17/value
这些行可以存储在名为“rak831_reset.sh”的文件中。用户必须在每次启动后调用此脚本一次,以使集中器 IC 处于清洁状态。
- 通过接线 pi:
如果主机系统是树莓派,用户可以编写一个小的 C-Tool 来重置 RAK831。为了访问 Raspberry Pi 的 GPIO 引脚,有一个名为“wiringPi”的库负责处理底层细节。该库可以从 http://wiringpi.com 下载。请参阅此站点以获取安装和使用说明。 RAK831_reset.c 文件的内容如下所示:
#include
#include
#define GPIO_RESET_PIN 0 // 查看wiringPi 映射!
int main() {
wiringPiSetup();
pinMode(GPIO_RESET_PIN, OUTPUT);
digitalWrite(GPIO_RESET_PIN, HIGH);
sleep(5);
digitalWrite(GPIO_RESET_PIN, LOW);
return;
}
用户必须在每次开机后调用此工具一次,以使集中器 IC 处于清洁状态。
gcc -Wall -o 闪烁blink.c -lwiringPi
sudo ./blink
注册到TTN网络的网关:
为了让你的节点将数据发送到云端 TheThingsNetwork 提供了一个云服务来解析和存储 lora 节点通过 lora 发送的数据
阅读更多详细信息:开始使用 RAK 831 Lora Gateway 和 RPi3
制造工艺
- 使用 Raspberry Pi 和 Nagios 监测室温
- 使用 Moteino 和 Raspberry Pi 监测室温
- 传感器数据与 Raspberry Pi 微处理器的集成
- 带有 Sensorflare 和 RaspberryPi 的 433MHz 智能家居控制器
- 使用树莓派进行平移/倾斜面部跟踪
- 带有 Raspberry Pi 和湿度传感器的 Aeroponics
- 将 A111 脉冲雷达传感器与 Raspberry Pi 结合使用
- TJBot 入门
- $35 NanoPi K1 Plus 是一款类似于 Raspberry Pi 的计算机,具有两倍的 RAM(和不同的 CPU)
- LoRa – Raspberry Pi – 单通道网关 – 便宜!
- RAK831 LoRa 网关和 RPi3 入门
- 使用 Raspberry Pi 和 Python 构建机器人