资料介绍
描述
本指南是代表 Arm 软件开发人员团队创建的,请在 Twitter 上关注我们:@ArmSoftwareDev和 YouTube:Arm 软件开发人员以获取更多资源!
关于
该项目将指导您使用 LoRaWAN 通信将您的Adafruit Feather RP2040板连接到The Thing Networks 。
重点将放在基本的 LoRaWAN 通信上,其中板将定期发送其内部温度,发送到板的消息将用于控制内置 LED。
虽然本指南侧重于Adafruit Feather RP2040板,但可以使用任何配备Raspberry Pi 的 RP2040 微控制器 (MCU) 的板,例如Raspberry Pi Pico。如果您不使用本指南中使用的Adafruit LoRa Radio FeatherWing - RFM95W 900 MHz - RadioFruit ,您还需要Semtech SX1276无线电模块或分线器,例如Adafruit RFM95W LoRa 无线电收发器分线器 - 868 或 915 MHz - RadioFruit。
什么是 LoRaWAN?
LoRaWAN是低功耗广域网的网络协议规范。它使用Semtech 的 LoRa (远程)无线电技术作为物理层 - 允许以低数据速率(0.3 至 50 kbps)进行远程通信(5 - 20 公里,使用正确的天线和视线)。
LoRaWAN 网络由几个组件组成:终端节点、网关/集中器、网络服务器和应用程序服务器。Thing Network - LoRaWAN Architecture页面对这些组件有很好的解释。
LoRaWAN 节点是发送和接收数据的嵌入式设备 - 我们将在本指南中专注于创建 LoRaWAN 节点。
什么是物联网?
The Things Network是一个构建开源和去中心化 LoRaWAN 网络的全球社区。
该网络由遍布全球 150 多个国家的 19k+ 个社区运行的LoRaWAN 网关组成,并被全球 142k+ 社区成员使用。
对于本指南,您需要确保物联网 (TTN) 网关在范围内,请查看TTN 地图了解网络覆盖范围。如果您所在地区没有 TTN 网关,您可以购买TTN 室内网关,用于开发和试验 TTN 和 LoRaWAN。
![poYBAGN1ItaATjBtAAZ305MkyS8030.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1ItaATjBtAAZ305MkyS8030.png)
组装硬件
Adafruit Feather RP2040 板没有焊接任何接头。您需要使用烙铁将用于羽毛的短接头套件 - 12 针 + 16 针母接头焊接到板上。
![pYYBAGN1ItmADzSdAAC3bIGLOkc883.jpg](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1ItmADzSdAAC3bIGLOkc883.jpg)
接下来将公接头焊接到Adafruit LoRa Radio FeatherWing-RFM95W 900 MHz-RadioFruit以及Simple Spring Antenna - 915MHz 。有关详细信息,请参阅Radio FeatherWing 组装指南。
![pYYBAGN1ItuACkoXAAEEUI1MnQw319.jpg](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1ItuACkoXAAEEUI1MnQw319.jpg)
开箱即用的LoRa Radio FeatherWing 仅将 SPI 数据引脚连接到接头引脚。我们还需要将 Feather Wing 上的 DIO1、IRQ、CS 和 RST 连接器焊接到连接器 B、C、D 和 E(注意:这些连接很灵活,可以在软件中更改)。
![poYBAGN1It2AYNLDAABAaq4d8uI782.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1It2AYNLDAABAaq4d8uI782.png)
将 FeatherWing 插入 Feather 板的顶部。
![pYYBAGN1IuCAIjaqAADopRtllDQ009.jpg](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IuCAIjaqAADopRtllDQ009.jpg)
设置 Pico SDK 开发环境
您首先需要使用 Raspberry Pi 的 Pico SDK 和所需的工具链来设置您的计算机。
有关详细信息,请参阅“ Raspberry Pi Pico 入门”。
该指南的第 2.1 节可用于所有操作系统,然后是操作特定部分:
- Linux:第 2.2 节
- macOS:第 9.1 节
- 窗户:第 9.2 节
获取和编译 pico-lorawan 库和示例
确保设置了PICO_SDK环境变量。
export PICO_SDK_PATH=/path/to/pico-sdk
在终端窗口中,克隆 git 存储库并更改目录:
cd ~/
git clone --recurse-submodules https://github.com/sandeepmistry/pico-lorawan.git
cd pico-lorawan
创建一个构建目录并将目录更改为它:
mkdir build
cd build
运行cmake和make进行编译:
cmake .. -DPICO_BOARD=adafruit_feather_rp2040
make
获取开发板默认 Dev EUI
在注册库中包含的示例之一时,我们需要一个唯一的板标识符来打印它。
使用 USB 电缆将开发板插入计算机,然后按住BOOTSEL按钮,然后点击开发板上的RESET按钮,
将examples/default_dev_eui/pico_lorawan_default_dev_eui.uf2文件复制到挂载的树莓派Pico启动ROM盘:
cp examples/default_dev_eui/pico_lorawan_default_dev_eui.uf2 /Volumes/RPI-RP2/.
使用串行监视器应用程序,例如屏幕打开查看板的 USB 串行输出,将/dev/cu.usbmodem0000000000001替换为板的路径:
screen /dev/cu.usbmodem0000000000001
将显示基于板闪存序列号的板默认 Dev EUI,在下面的屏幕截图中值为“ 4545373038056807 ”。
![poYBAGN1IuOAMWhvAAIMKYTwihM677.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IuOAMWhvAAIMKYTwihM677.png)
记下此值以供下一步使用。
将设备添加到物联网
Things Network 已弃用他们的 V2 堆栈,该堆栈将在 2021 年底关闭,现在向用户推荐更多 V3 堆栈。V3 现在称为“ The Things Stack Community Edition ”。本节将指导您在 V3 堆栈上设置节点。
转到The Things Stack 社区版控制台并选择您所在的地区。
![poYBAGN1IuaAHZh_AAPWp6KEk-c169.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IuaAHZh_AAPWp6KEk-c169.png)
接下来单击“使用 The Things ID 登录”按钮
![poYBAGN1IuqAaBWzAATwCz_3rHE174.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IuqAaBWzAATwCz_3rHE174.png)
如果您还没有 TTN 帐户,请单击注册创建一个然后登录。
![pYYBAGN1Iu6AesIPAAO3E9uTqrU807.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1Iu6AesIPAAO3E9uTqrU807.png)
登录后,单击“转到应用程序”。
![poYBAGN1IvKAMLWjAAYFWUyUkzw712.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IvKAMLWjAAYFWUyUkzw712.png)
如果您没有现有的应用程序,请单击“添加应用程序”按钮创建一个。
![pYYBAGN1IvaAWa8_AAOqRk3pv8U234.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IvaAWa8_AAOqRk3pv8U234.png)
输入一个Application ID,我们在下面使用了“ feather-rp2040-app ”,然后点击“ Create application ”按钮。
![poYBAGN1IvmAM4HYAAQ-MKjGVG4712.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IvmAM4HYAAQ-MKjGVG4712.png)
单击“添加终端设备”按钮以创建新设备。
![pYYBAGN1Iv2AO7DiAAXfRuLe5hE419.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1Iv2AO7DiAAXfRuLe5hE419.png)
单击“手动”选项卡,因为我们正在创建的设备不在 LoRaWAN 设备存储库中。
![pYYBAGN1IwGAWHslAATp2L-zo6E150.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IwGAWHslAATp2L-zo6E150.png)
选择“无线激活 (OTAA) ”作为激活模式,选择“ MAC V1.0.2 ”作为 LoRaWAN 版本。该字段的其余部分可以保留其默认值,然后您可以单击“开始”按钮。
![poYBAGN1IwaAZIACAAXUji_3VZo953.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IwaAZIACAAXUji_3VZo953.png)
接下来输入“ End device ID ”,在下面的屏幕截图中输入“ feather-rp2040 ”,为 JoinEUI 输入全 0,并使用您从开发板获得的默认 Dev EUI 值作为DevEUI字段。然后单击“网络层设置”按钮。
![pYYBAGN1IwqAACXyAAX91pbqA7M026.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IwqAACXyAAX91pbqA7M026.png)
选择您所在地区的“频率计划”和“地区参数版本”为PHY V1.0.2 REV A ,然后单击“加入设置”按钮。
![pYYBAGN1Iw6ATNTQAAX8BhgNKho565.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1Iw6ATNTQAAX8BhgNKho565.png)
单击 AppKey 旁边的圆形箭头按钮生成 AppKey,然后单击“添加终端设备”按钮。
![poYBAGN1IxOAbq5WAAaGwCb5QuM663.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IxOAbq5WAAaGwCb5QuM663.png)
现在已经添加了设备,请记下 JoinEUI、DevEUI 和 AppKey 值以备后用。
配置板 OTAA 设置
打开examples/otaa_temperature_led/config.h并输入从上一节获得的信息。
US915 示例:
#define LORAWAN_REGION LORAMAC_REGION_US915
// set to NULL use the boards default Dev EUI
#define LORAWAN_DEVICE_EUI NULL
// Join EUI
#define LORAWAN_APP_EUI "0000000000000000"
#define LORAWAN_APP_KEY "00DBE0B97B52F2F01A406CC8B3830753"
// TTN specific channel mask, only needed for US915 region
#define LORAWAN_CHANNEL_MASK "FF0000000000000000020000"
EU868 示例:
#define LORAWAN_REGION LORAMAC_REGION_EU868
// set to NULL use the boards default Dev EUI
#define LORAWAN_DEVICE_EUI NULL
// Join EUI
#define LORAWAN_APP_EUI "0000000000000000"
#define LORAWAN_APP_KEY "00DBE0B97B52F2F01A406CC8B3830753"
// set to NULL for default channel mask
#define LORAWAN_CHANNEL_MASK NULL
现在使用更新的 OTAA 设置重新编译示例:
make
按住BOOTSEL按钮,然后点击板上的RESET按钮,
将examples/otaa_temperature_led/pico_lorawan_otaa_temperature_led.uf2文件复制到挂载的树莓派Pico启动ROM盘:
cp examples/otaa_temperature_led/pico_lorawan_otaa_temperature_led.uf2 /Volumes/RPI-RP2/.
使用串行监视器应用程序,例如屏幕打开查看板的 USB 串行输出,将/dev/cu.usbmodem0000000000001替换为板的路径:
screen /dev/cu.usbmodem0000000000001
如果成功,板将加入 TTN 并开始每 30 秒发送一次内部温度传感器值。
![pYYBAGN1IxaAasu0AAIzw8tnAaQ156.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IxaAasu0AAIzw8tnAaQ156.png)
您还可以在 TTN 控制台中查看板状态。
![poYBAGN1IxuAN99PAAfdrMWFCUM190.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IxuAN99PAAfdrMWFCUM190.png)
单击“实时数据”以查看板的实时数据:
![poYBAGN1IyCAQIkSAAgWSSx5jRE069.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IyCAQIkSAAgWSSx5jRE069.png)
数据消息值是十六进制的,应该与串行监视器上显示的值相匹配。在上面的屏幕截图中,0x26 = 38 °C。
接下来我们可以向板子发送一条下行消息,点击“消息”选项卡。
![poYBAGN1IySALAZZAAX7g9R1keo492.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IySALAZZAAX7g9R1keo492.png)
然后“ Downlink ”,输入01作为Payload,然后点击“ Simulate uplink ”按钮。注意:如果按钮被禁用,您可以刷新页面以启用它。
![pYYBAGN1IymAVhorAAbHohmkC6A817.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IymAVhorAAbHohmkC6A817.png)
一旦板子收到下行信息,它的板载 LED 就会亮起,并且串行监视器上也会显示一条信息:
![poYBAGN1IyyATCv6AAMbdg8_aIA143.png](https://file.elecfans.com/web2/M00/7B/3D/poYBAGN1IyyATCv6AAMbdg8_aIA143.png)
LoRaWAN B 类设备在发送上行消息后,只能在特定窗口期内接收下行消息。我们加载的示例每 30 秒发送一条消息,因此您必须等待一分钟才能收到它。
您现在可以向电路板发送另一个带有 00 的下行链路消息以清除 LED。
![pYYBAGN1IzCAfAILAAOohy1Nlvw678.png](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IzCAfAILAAOohy1Nlvw678.png)
下一步
我们已经介绍了如何使用 Raspberry Pi Pico SDK 和带有 The Things Network V3的pico-lorawan库创建基于 RP2040 的 LoRaWAN 节点。我们创建的示例应用程序每 30 秒将板子内部温度发送到 TTN,下行链路消息可以远程控制板子的 LED。
您现在可以通过以下方式构建此示例:
- 在上行链路消息中添加更多传感器值
- 使用来自下行链路消息的附加值来控制其他执行器
- 遵循The Things Stacks 集成指南,使用 HTTP Web 挂钩、MQTT、NODE-Red、IFFT 或云平台(例如 AWS IoT)处理应用程序上的下行链路消息。
由于 Raspberry Pi RP2040 包含双核功能,您还可以创建更高级的项目,这些项目可以在一个核上收集和使用机器学习,同时让另一个核处理与 TTN 的 LoRaWAN 通信。
如果您使用本指南制作了一个很酷的项目,请在Hackster.io上为它创建一个项目指南,供其他人欣赏!
在世界标准时间 4 月 29 日下午 5 点举行的本周Arm 创新咖啡会议上,聆听 The Things Network 团队的更多信息,并了解该项目的实际运行情况。
![pYYBAGN1IzKAFQy-AAEJEQVpi8c662.jpg](https://file.elecfans.com/web2/M00/7B/CB/pYYBAGN1IzKAFQy-AAEJEQVpi8c662.jpg)
- 如何在Windows上设置Pico RP2040
- RP2040 Raspberry Pi Pico遇见LoRa
- Arduino Raspberry Pi Pico/RP2040以太网:W5100S EVB Pico
- 将MicroPython从Raspberry pi(RP2040)移植到Wiznet5K
- 基于RP2040板的SUMP/OLS兼容逻辑分析仪固件
- 使用RP2040和KMK固件的40%正交线性键盘
- 使用RP2040和W5100S的无套接字功能
- AI WB2和XIAO RP2040组合开源
- 将您的中央供暖连接到Arduino
- 使用Seeed Wio RP2040模块进行环境监测
- RP2040模块MCU开源分享
- BBkey80:由XIAO RP2040驱动的GL516兼容键盘
- RP2040迷你板开源分享
- RP2040 MicroMOD处理器板开源分享
- ProMicro-RP2040印刷电路板
- 5分钟内将Raspberry Pi Pico变成简单的示波器+波形发生器 2318次阅读
- 使用CW32单片机通过ESP8266连接OneNET物联网平台 1594次阅读
- 基于RP2040的ToF雷射测距装置设计 1174次阅读
- 连接到您最喜欢的数据库集 662次阅读
- 物联网中的精度很重要 582次阅读
- 物联网中的精度很重要 690次阅读
- 简化嵌入式物联网应用的软件开发 685次阅读
- 当Arduino遇上树莓派:Nano RP2040连接板 7269次阅读
- 基于RP2040设计的发光魔法LED立方体 2330次阅读
- Nano RP2040连接板的应用程序 5019次阅读
- 基于树莓派产品 Raspberry Pi微控制器板的优缺点 2984次阅读
- 物联网是什么和物联网基本架构 6087次阅读
- 基于RP2040的Pico可用作PIO的逻辑分析仪 1w次阅读
- 物联网的工作原理是怎样的 1w次阅读
- 物联网应用连接到 Google Cloud怎样去实现 725次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论