构建一款具有运动检测功能的低功耗物联网GPS跟踪器,专为实时资产和车辆监控而设计
扫描二维码
随时随地手机看文章
物联网GPS跟踪器与运动警报和LoRaWAN
目的:
•实时获取设备的GPS精确位置。
•使用加速计检测设备运动。
•通过LoRaWAN和The Things Stack将位置和运动状态发送到云平台进行远程跟踪。
•当设备意外移动或进入/退出定义的地理区域(地理围栏,如果平台支持)时,配置警报。
先决条件:
•Arduino (C/ c++)编程基础。
•电子学的基本概念。
•熟悉Arduino IDE或PlatformIO开发环境。
•了解LoRaWAN通信和物栈操作。
•具备GPS系统和具有地图功能的物联网平台的基本知识。
所需材料和软件:
硬件:
•WISBLOCK底座:RAK19003迷你底座板(用于紧凑便携的设计)
•WISBLOCK Core: RAK4630 Nordic NRF52840(集成LoRaWAN远程通信)
•WISBLOCK传感器:RAK12033 IM-42652 6轴加速度计
•RAK12500 ZOE-M8Q GNSS GPS模块
•其他组件/配件:
•RAK7268V2 WisGate Edge Lite 2 (LoRaWAN网关)
•电池连接器电缆
•螺丝刀
软件:
•Arduino IDE或PlatformIO
•用于RAK模块的Arduino库(例如RAKwireless_RAK4631_BSP)和用于GPS的特定库(例如TinyGPS++, SoftwareSerial,如果GPS使用非硬件UART引脚)和加速度计(例如SparkFun_ICM-20948_Arduino_Library或类似)。
•RAK7268V2网关配置软件。
•Things Stack(用于LoRaWAN网络)和具有映射功能的云物联网平台(例如,Ubidots, Datacake, Cayenne MyDevices)上的帐户。
学习成果:
•能够实现实时GPS跟踪系统。
•具备检测设备移动并作出反应的技能。
•掌握通过LoRaWAN传输位置数据,优化物栈坐标的有效载荷。
•了解物联网平台上的地理数据可视化和地理围栏配置。
•有优化便携式电池供电设备功耗的经验。
设置和实现步骤:
•硬件组装:将RAK4631 (Core)模块连接到RAK1903 (Mini Base Board)上。连接RAK12500 GPS模块和RAK12033加速度计。连接电池线缆。
•开发环境配置:安装Arduino IDE/PlatformIO,支持RAK4631板。为GPS和加速度计安装必要的库。
•节点编程(RAK4631):
•编写代码初始化GPS模块并获取坐标(经度,纬度,海拔)。
•配置加速度计来检测运动(例如,使用加速度变化或活动/不活动检测的阈值)。
•实现通过LoRaWAN发送GPS数据和运动状态的逻辑。建议仅在有移动时发送数据,静态时定期发送数据。
•优化功耗:不需要恒读时,将GPS模块置于低功耗模式,或者间歇性地打开或关闭。使用微控制器的深度睡眠模式。
•网关配置(RAK7268V2):将网关接入网络,配置为与the Things Stack相连。
Things栈配置:
•进入Things Stack控制台。
•注册网关:添加RAK7268V2网关。
•创建应用程序:创建新的应用程序。
•注册设备(RAK4631节点):用其LoRaWAN凭据注册设备。
•配置有效负载格式化器(解码器):编写Javascript代码,将GPS坐标和运动状态从二进制有效负载解码为JSON对象。Things Stack与可以使用这些数据的地图平台直接集成。
•与云物联网平台集成:将集成(例如“Webhook”或“MQTT”)添加到具有映射功能的物联网平台(例如Ubidots, Datacake)。
•测试:在室外测试设备,确保良好的GPS信号采集。移动设备并验证地图上的位置是否更新,移动警报是否按预期触发。
挑战和故障排除提示:
•GPS信号采集:GPS模块可能需要时间来获得初始定位(称为“冷启动”),特别是在室内或天空能见度较差的情况下。总是在户外测试。
•GPS精度:根据信号质量和环境,GPS精度可以从米到几十米不等。为了获得更高的精度,可以使用平均读数或过滤器等技术。
•GPS功耗:GPS模块是功耗最高的器件之一。实施积极的电源管理策略至关重要(例如,打开GPS仅几秒钟以获取读数,然后关闭它)以延长电池寿命。
•地理围栏:实现地理围栏可能很复杂。逻辑可以驻留在设备上(需要更多的处理和内存),也可以驻留在云平台上(更简单,但需要设备不断向平台发送数据以评估位置)。
评估标准:
•该装置准确可靠地获取和传输GPS位置。
•加速度计始终检测运动。
•位置数据在物联网平台的地图上正确地可视化。
•运动或地理围栏警报会按预期触发。
•电池寿命在预期用例中是可以接受的(例如,一次充电几天或几周)。
本文编译自hackster.io