汇集最新的物联网技术,在工业物联网和智能城市环境中定位资产。
这个项目中使用的东西 硬件组件 STM32 Nucleo-64板 STMicroelectronics STM32 Nucleo-64板 细胞核 - L152RE × 1 STMicroelectronics X-NUCLEO-IDW01M1 SPWF01SA扩展板 × 1 Semtech LoRa Shield × 1
介绍 使用物联网LoRaWAN智能城市低功耗广域网(LPWAN)技术,COLLOS 协同定位服务门户和MyDevicesCayenne 物联网平台,实现仅使用WiFi信号的下一代物联网定位解决方案。
此解决方案不使用GPS。相反,只需按一下按钮即可扫描WiFi信号,并通过本地LoRaWAN网络将其提交给云,以供COLLOS位置服务提供商查找。使用COLLOS,您可以选择使用嗅探WiFi数据与Skyhook生成位置经度和经度(如本项目所示),或者您可以使用LoRaWAN网络内置位置功能和TDoA /RSSI技术。LoRaWAN网络定位方法最适用于您所在地区可能无法使用的高网关密度。
使用嗅探的WiFi数据,返回的位置坐标通常与GPS相当。然而,与GPS不同,该系统在室内工作!
以下是您需要做的事情来启动和运行: 1. 组装STMicro Nucleo-64,X-NUCLEO-ID1M01 WiFi模块,Semtech LoRa屏蔽。 2. 编写随时可用的应用程序固件。 3. 创建The Things Network 帐户和应用程序(创建设备和应用程序,然后获取AppEUI和AppKey)。使用DevEUI配置TTN应用程序,使用AppEUI和AppKey配置应用程序固件。 4. 创建MyDevices Cayenne帐户,创建设备,并可选择安装移动应用程序。 5. 在The Things Network 控制台中配置COLLOS和Cayenne集成。 除硬件成本外,所有这些都可以免费完成。 第1步 - 组装硬件
如图所示,将X-NUCLEO-IDW01M1连接到NUCLEO-L152RE。然后连接Semtech LoRa Shield。无需其他配置。使用USBmini电缆连接到PC,然后继续执行步骤2。
第2步 - 编程固件 下载“WPS固件映像”文件
WPS_EVAL_STM32L1_SPWF01SA_LORA_v1.bin 到您的PC,可从该项目的附件部分获得。使用STM32-NUCLEO,您可以将此文件拖放到文件系统中显示的“NODE_L152RE”大容量存储设备中。在可用的STLINK虚拟COM端口上打开115200的终端。按下重置按钮。观察操作固件的确认(参见下面的预期输出)并记录DevEUI。 DevEUI对每个设备都是唯一的。将其视为GUID。对于ST MCU器件,它基于工厂编程的唯一ID。在此示例中,DevEUI 是2e4d7910848b2cc9。
StartingIntelligent Asset Tracker for LoRaWAN version 1 Configuration: DevEUI:2e4d7910848b2cc9 SCAN_RANDOM_AP:1 NUM_SCANS:3 MAX_SCAN_RESULTS:20 MAX_AP:6 Cannot start: please set your LoRaWAN AppEui and AppKey settings with 'mta set lora appeui/appkey' command then reboot. 第三步 - 创建和配置物联网网络帐户,注册设备和获取应用程序密钥,配置固件 在这里,您需要准备好Device的唯一标识符DevEUI - 一个8位十六进制数字字符串 - 这样您就可以在创建新应用程序后在The Things Network 控制台中为它注册新设备。然后,您将从应用程序中获取两个重要的十六进制数字 - 应用程序固件所需的8字节AppEUI 和16字节AppKey ,以实现与物联网应用程序的安全端到端连接。
前往The Things Network 并注册或登录。使用此快速教程添加应用程序。将应用程序ID设置为您喜欢的任何内容。接下来,注册一个新设备。
在Devices部分下,选择“registerdevice”。输入名称(设备ID)。一切都会做,例如MyAssetTracker。然后将步骤2中获取的DevEUI 字符串粘贴到Device EUI字段中。单击“注册”按钮。完成后,转到新设备的设备概述,然后滚动到底部以查找“示例代码”。这是查找固件所需的AppEUI 和APPKey 的最简单方法。从以下示例:
AppEUI 是76B3D57EDABC9574 AppKey 是DAC1F3E9EBAC12345678913994C58A4B
const char *appEui = "76B3D57EDABC9574"; const char *appKey = "DAC1F3E9EBAC12345678913994C58A4B"; 在终端中将AppEUI和AppKey输入到固件中,如下所示: 0000: Contiki> mta set lora appeui 76B3D57EDABC9574 OK 0000: Contiki> mta set lora appkeyDAC1F3E9EBAC12345678913994C58A4B OK 0000: Contiki> mta save OK 0000: Contiki> mta get AppKey: [DAC1F3E9EBAC12345678913994C58A4B] AppEui: [76B3D57EDABC9574] DevEui: 2e4d7910848b2cc9 0000: Contiki> 第4步 - 创建MyDevices Cayenne帐户和设备 按照The Things Network 指南,了解如何设置Cayenne,创建合适的设备,并将其添加为集成。注意!我们实际上并没有向Cayenne发送任何有效载荷数据,因此请忽略有效载荷类型(CayenneLPP)字段和配置,因为它最终将更改为自定义。COLLOS集成将位置坐标数据汇集到您的Cayenne集成中。
第五步 - 在The ThingsNetwork控制台中配置COLLOS和Cayenne集成。 这是让您的The Things网络应用程序准备好接收和处理设备的WiFi位置数据的最后关键步骤!
最好由The Things Network 在这里描述。注册会员(免费)。您可能需要等待一两天才能获得访问权限。然后按照快速入门。对于Collos API端点URL,您可以使用'loraSkyhook':
https://api.preview.collos.org/localization-lora-recipes/v1/loraSkyhook 重要!要启用WiFi 本地化,请按照此处的说明设置自定义有效负载解码器功能。这对于将设备的嗅探WiFi数据(接入点MAC和RSSI)发送到COLLOS系统并转发到Skyhook至关重要。
测试 重新启动设备并观察终端。您应该看到以下内容
StartingIntelligent Asset Tracker for LoRaWAN version 1 Configuration: DevEUI:2e4d7910848b2cc9 SCAN_RANDOM_AP:1 NUM_SCANS:3 MAX_SCAN_RESULTS:20 MAX_AP:6 >> Trialstart: 19 Press button to trigger positionreading. Looking for accelerometer... LSM6DSL not present. StartingLoRaWAN stack.. wait for join complete LoRa stack init REGION_US915_HYBRIDinit SXX1272 radioversion: 22 Set ADR ON: 0 Set public network: 0 Device join method=OTAA DevEui: 2e4d7910848b2cc9 AppEui: 76B3D57EDABC9574 AppKeyAC1F3E9EBAC12345678913994C58A4B Send JOIN request... 0 Device state:SLEEP Device JOIN success Starting wifi module attempt=1. -- SEND: EMPTY: OK Device state:SLEEP Airtime added: 289 ms TX power: 5 Datarate: 0 Successfultransmission Wifi module started.
按下板上的蓝色按钮以触发WiFi嗅探器读数。它将尝试在列表中获得6个唯一的站点ID,最多扫描3次。由于WiFi模块不需要与任何接入点相关联,因此可以在读数之间将其断电至非常深的睡眠模式(微安范围)。读数本身只需要几秒钟,包括从睡眠状态重启模块。
(button) scanevent 1 >>Running WiFi Scan (0)... >> Got 6 scan results --- Sortedresults after scan: [0]: SSID: TELUS1234 MAC: 9c:1e:95:7c:b5:f2 RSSI: -40 [1]: SSID: TELUS4567 MAC: 72:1e:95:7c:b5:f0 RSSI: -41 [2]: SSID: TELUS9876-2.4G MAC: 70:f1:96:9b:f2:2 RSSI: -74 [3]: SSID: SpaceAce MAC: 0:1e:c0:3a:ed:58 RSSI: -80 [4]: SSID: TELUS6671 MAC: 20:76:0:75:d:b4 RSSI: -81 [5]: SSID: MonkeyMan MAC: 10:9f:a9:37:5d:13 RSSI: -90 scanningcomplete - filled result list (6). LoRa_sendBuffer: sending 42 bytes -- SEND: INTERVAL Time: 155393, Battery: 3330 mV Temp: 29 C Sending mac txuncnf port=2 0r=42 len=0... OK Device state: SLEEP Airtime added: 113 ms TX power: 5 Datarate: 3 Successfultransmission 结论 WiFi嗅探器设备由STM32L152 MCU,ST WiFi模块和SemtechSX1272 LoRa收发器构成。固件是基于开源Contiki操作系统(GitHub链接)和LoRaMac-Node参考实现(GitHub链接)开发的。
通过第三方基础设施,网络和服务提供商的协作,演示了端到端的基于位置的物联网应用。通过在移动设备上安装MyDevices Cayenne应用程序,您将能够演示完整的端到端,任意位置的设备到电话跟踪解决方案。这是物联网的最前沿。
原贴(含代码资料):http://www.stmcu.org.cn/module/forum/thread-619657-1-1.html
|