構(gòu)建一款具有運(yùn)動檢測功能的低功耗物聯(lián)網(wǎng)GPS跟蹤器,專為實(shí)時資產(chǎn)和車輛監(jiān)控而設(shè)計(jì)
物聯(lián)網(wǎng)GPS跟蹤器與運(yùn)動警報(bào)和LoRaWAN
目的:
?實(shí)時獲取設(shè)備的GPS精確位置。
?使用加速計(jì)檢測設(shè)備運(yùn)動。
?通過LoRaWAN和The Things Stack將位置和運(yùn)動狀態(tài)發(fā)送到云平臺進(jìn)行遠(yuǎn)程跟蹤。
?當(dāng)設(shè)備意外移動或進(jìn)入/退出定義的地理區(qū)域(地理圍欄,如果平臺支持)時,配置警報(bào)。
先決條件:
?Arduino (C/ c++)編程基礎(chǔ)。
?電子學(xué)的基本概念。
?熟悉Arduino IDE或PlatformIO開發(fā)環(huán)境。
?了解LoRaWAN通信和物棧操作。
?具備GPS系統(tǒng)和具有地圖功能的物聯(lián)網(wǎng)平臺的基本知識。
所需材料和軟件:
硬件:
?WISBLOCK底座:RAK19003迷你底座板(用于緊湊便攜的設(shè)計(jì))
?WISBLOCK Core: RAK4630 Nordic NRF52840(集成LoRaWAN遠(yuǎn)程通信)
?WISBLOCK傳感器:RAK12033 IM-42652 6軸加速度計(jì)
?RAK12500 ZOE-M8Q GNSS GPS模塊
?其他組件/配件:
?RAK7268V2 WisGate Edge Lite 2 (LoRaWAN網(wǎng)關(guān))
?電池連接器電纜
?螺絲刀
軟件:
?Arduino IDE或PlatformIO
?用于RAK模塊的Arduino庫(例如RAKwireless_RAK4631_BSP)和用于GPS的特定庫(例如TinyGPS++, SoftwareSerial,如果GPS使用非硬件UART引腳)和加速度計(jì)(例如SparkFun_ICM-20948_Arduino_Library或類似)。
?RAK7268V2網(wǎng)關(guān)配置軟件。
?Things Stack(用于LoRaWAN網(wǎng)絡(luò))和具有映射功能的云物聯(lián)網(wǎng)平臺(例如,Ubidots, Datacake, Cayenne MyDevices)上的帳戶。
學(xué)習(xí)成果:
?能夠?qū)崿F(xiàn)實(shí)時GPS跟蹤系統(tǒng)。
?具備檢測設(shè)備移動并作出反應(yīng)的技能。
?掌握通過LoRaWAN傳輸位置數(shù)據(jù),優(yōu)化物棧坐標(biāo)的有效載荷。
?了解物聯(lián)網(wǎng)平臺上的地理數(shù)據(jù)可視化和地理圍欄配置。
?有優(yōu)化便攜式電池供電設(shè)備功耗的經(jīng)驗(yàn)。
設(shè)置和實(shí)現(xiàn)步驟:
?硬件組裝:將RAK4631 (Core)模塊連接到RAK1903 (Mini Base Board)上。連接RAK12500 GPS模塊和RAK12033加速度計(jì)。連接電池線纜。
?開發(fā)環(huán)境配置:安裝Arduino IDE/PlatformIO,支持RAK4631板。為GPS和加速度計(jì)安裝必要的庫。
?節(jié)點(diǎn)編程(RAK4631):
?編寫代碼初始化GPS模塊并獲取坐標(biāo)(經(jīng)度,緯度,海拔)。
?配置加速度計(jì)來檢測運(yùn)動(例如,使用加速度變化或活動/不活動檢測的閾值)。
?實(shí)現(xiàn)通過LoRaWAN發(fā)送GPS數(shù)據(jù)和運(yùn)動狀態(tài)的邏輯。建議僅在有移動時發(fā)送數(shù)據(jù),靜態(tài)時定期發(fā)送數(shù)據(jù)。
?優(yōu)化功耗:不需要恒讀時,將GPS模塊置于低功耗模式,或者間歇性地打開或關(guān)閉。使用微控制器的深度睡眠模式。
?網(wǎng)關(guān)配置(RAK7268V2):將網(wǎng)關(guān)接入網(wǎng)絡(luò),配置為與the Things Stack相連。
Things棧配置:
?進(jìn)入Things Stack控制臺。
?注冊網(wǎng)關(guān):添加RAK7268V2網(wǎng)關(guān)。
?創(chuàng)建應(yīng)用程序:創(chuàng)建新的應(yīng)用程序。
?注冊設(shè)備(RAK4631節(jié)點(diǎn)):用其LoRaWAN憑據(jù)注冊設(shè)備。
?配置有效負(fù)載格式化器(解碼器):編寫Javascript代碼,將GPS坐標(biāo)和運(yùn)動狀態(tài)從二進(jìn)制有效負(fù)載解碼為JSON對象。Things Stack與可以使用這些數(shù)據(jù)的地圖平臺直接集成。
?與云物聯(lián)網(wǎng)平臺集成:將集成(例如“Webhook”或“MQTT”)添加到具有映射功能的物聯(lián)網(wǎng)平臺(例如Ubidots, Datacake)。
?測試:在室外測試設(shè)備,確保良好的GPS信號采集。移動設(shè)備并驗(yàn)證地圖上的位置是否更新,移動警報(bào)是否按預(yù)期觸發(fā)。
挑戰(zhàn)和故障排除提示:
?GPS信號采集:GPS模塊可能需要時間來獲得初始定位(稱為“冷啟動”),特別是在室內(nèi)或天空能見度較差的情況下??偸窃趹敉鉁y試。
?GPS精度:根據(jù)信號質(zhì)量和環(huán)境,GPS精度可以從米到幾十米不等。為了獲得更高的精度,可以使用平均讀數(shù)或過濾器等技術(shù)。
?GPS功耗:GPS模塊是功耗最高的器件之一。實(shí)施積極的電源管理策略至關(guān)重要(例如,打開GPS僅幾秒鐘以獲取讀數(shù),然后關(guān)閉它)以延長電池壽命。
?地理圍欄:實(shí)現(xiàn)地理圍欄可能很復(fù)雜。邏輯可以駐留在設(shè)備上(需要更多的處理和內(nèi)存),也可以駐留在云平臺上(更簡單,但需要設(shè)備不斷向平臺發(fā)送數(shù)據(jù)以評估位置)。
評估標(biāo)準(zhǔn):
?該裝置準(zhǔn)確可靠地獲取和傳輸GPS位置。
?加速度計(jì)始終檢測運(yùn)動。
?位置數(shù)據(jù)在物聯(lián)網(wǎng)平臺的地圖上正確地可視化。
?運(yùn)動或地理圍欄警報(bào)會按預(yù)期觸發(fā)。
?電池壽命在預(yù)期用例中是可以接受的(例如,一次充電幾天或幾周)。
本文編譯自hackster.io