如何使用ESP8266構(gòu)建基于LoRa的GPS跟蹤器
LoRa技術(shù)在世界范圍內(nèi)的滲透正在增加,由于它們能夠以非常低的功耗運行,LoRa設(shè)備非常適合電池密集型應(yīng)用,如遠程天氣監(jiān)測、遙感和跟蹤。我們之前已經(jīng)看到了如何將HPD13A Lora模塊與Arduino集成以建立與物聯(lián)網(wǎng)的通信并將溫度數(shù)據(jù)發(fā)送到TTN服務(wù)器。
在這個項目中,我們將使用Lora模塊HPD13A構(gòu)建一個GPS跟蹤器。我們的目標(biāo)是將實時GPS坐標(biāo)發(fā)送到物聯(lián)網(wǎng),同時使用與物聯(lián)網(wǎng)的Webhooks集成來獲得數(shù)據(jù)的可視化。
組件的要求
?HPD13A LoRa模塊
?Neo 6M GPS模塊
?ESP8266 NodeMCU開發(fā)板
?LM2596設(shè)置轉(zhuǎn)換器。
?接入附近的LoRa網(wǎng)關(guān)
這個LoRa GPS跟蹤器項目是如何工作的?
我們之前已經(jīng)討論了LoRa技術(shù)如何成為低功耗應(yīng)用的理想選擇。要將任何LoRa模塊連接到The Things Network,主要要求是附近有一個LoRa網(wǎng)關(guān),如果您有自己的LoRa網(wǎng)關(guān),可以參考我們之前關(guān)于如何在印度配置LoRa網(wǎng)關(guān)的文章。您也可以在物聯(lián)網(wǎng)網(wǎng)站www.thethingsnetwork.org/map上查看您附近的活動LoRa網(wǎng)關(guān)。一旦我們確定我們附近有一個工作的LoRa網(wǎng)關(guān),我們就可以繼續(xù)這個項目了。
這個項目的工作非常簡單,我們用ESP8266作為主控制器。ESP8266解析來自Neo-6M GPS模塊的數(shù)據(jù),并將緯度和經(jīng)度轉(zhuǎn)換為LoRa數(shù)據(jù)包,然后將該LoRa數(shù)據(jù)包發(fā)送到連接到附近網(wǎng)關(guān)的HPD13A LoRa模塊。一旦連接到LoRa網(wǎng)關(guān),該LoRa數(shù)據(jù)包將被發(fā)送到物聯(lián)網(wǎng)。你可以在你的物聯(lián)網(wǎng)儀表盤上查看這些原始數(shù)據(jù),但在這個項目中,我們將創(chuàng)建一個webhook集成,允許我們將位置數(shù)據(jù)發(fā)送到Ubidots。在Ubidots上使用這些數(shù)據(jù),我們可以創(chuàng)建一個地圖界面來繪制我們的跟蹤數(shù)據(jù)。
ESP8266 LoRa GPS跟蹤器電路圖
該Nodemcu LoRa GPS跟蹤器的連接很簡單,我們使用LM2596降壓轉(zhuǎn)換器從鋰電池接收9-12V的輸入,并將其降壓至4.2V,以驅(qū)動ESP8266和Neo-6M GPS模塊。LoRa模塊將由ESP8266的3.3V驅(qū)動,并通過SPI引腳進行通信。
注意:由于Neo-6M連接到ESP8266的硬件串行引腳,因此在ESP8266上上傳代碼時,您必須保持Neo-6M斷開連接。
在物聯(lián)網(wǎng)上設(shè)置終端設(shè)備
讓我們從注冊The Things Network開始吧。你可以創(chuàng)建個人賬戶或?qū)W生賬戶,這兩種賬戶都是免費的。在選擇LoRa集群時,如果您不在北美或澳大利亞,則可以選擇EU集群。一旦您創(chuàng)建了您的帳戶并完成了電子郵件驗證,您將能夠訪問TTN控制臺,如下所示。
單擊“創(chuàng)建應(yīng)用程序”。輸入唯一的應(yīng)用程序ID和應(yīng)用程序名稱,然后單擊create。
創(chuàng)建應(yīng)用程序后,單擊添加終端設(shè)備。
單擊“手動”頁簽,輸入如下參數(shù),生成DevUI、AppEUI和AppKey,完成終端設(shè)備的創(chuàng)建。
設(shè)備創(chuàng)建完成后,切換到“Payload Formatters”選項卡。
在Formatters Type選項下選擇“Custom Javascript formatter”并粘貼以下代碼。
我們在The Things網(wǎng)絡(luò)上的終端設(shè)備配置完成了,現(xiàn)在我們開始燃燒Arduino代碼。
打開設(shè)備概述,復(fù)制DevUI、AppEUI和AppKey。確保為DevUI、AppEUI設(shè)置了LSB訂單,為AppKey設(shè)置了MSB訂單。
打開附帶的Arduino代碼,簡單地將您的id粘貼到各自的字段中。
一旦你上傳Arduino代碼,你的設(shè)備將開始LoRa傳輸?shù)轿锫?lián)網(wǎng),這可以在“實時數(shù)據(jù)”選項卡中查看。
設(shè)置Ubidots連接用于數(shù)據(jù)可視化
現(xiàn)在我們已經(jīng)將數(shù)據(jù)傳送到TTN,我們將使用集成選項將Ubidots Dashboard與這些數(shù)據(jù)集成在一起。由于我們的數(shù)據(jù)主要是經(jīng)緯度坐標(biāo),我們可以使用Ubidots提供的Maps Widget。要開始,只需創(chuàng)建一個Ubidots STEM帳戶并打開您的儀表板。
在設(shè)備菜單中,選擇插件。
在給定的選項中,我們將搜索并選擇“the Things Stack”選項。
您可以將大部分設(shè)置保留為默認設(shè)置,并選擇Ubidots Token作為默認Token
添加了插件的名稱和描述后,單擊create。
你的插件現(xiàn)在是活的,我們現(xiàn)在點擊編輯插件選項。
在解碼器設(shè)置下,我們有HTTPs端點URL,這是我們將配置TTN服務(wù)器發(fā)送數(shù)據(jù)包的URL,并復(fù)制插件ID,即/api/webhook/部分之后的URL部分。
完成后,向下滾動到Decoder Function面板并取消下面一行代碼的注釋。
另外,注釋下面兩行。
這些變化看起來與下圖類似。
點擊Save & Make Live按鈕。在轉(zhuǎn)移到TTN之前,我們在Ubidots方面的集成現(xiàn)在已經(jīng)準(zhǔn)備好了。我們需要單擊配置文件菜單上的API憑據(jù)選項并復(fù)制默認令牌。這將在稍后使用。
打開TTN應(yīng)用程序,在集成面板上選擇Webhooks。然后點擊添加Webhook按鈕。
在所有列出的選項中,選擇Ubidots插件。
您現(xiàn)在需要輸入上面提到的插件ID和Ubidots令牌。
這將成功創(chuàng)建一個集成webhook。
一旦集成完成,我們的LoRa設(shè)備將發(fā)送數(shù)據(jù)到TTN服務(wù)器,TTN服務(wù)器將自動定向到Ubidots服務(wù)器。你可以打開你的Ubidots儀表板,在設(shè)備頁面下,我們的設(shè)備會自動顯示。
現(xiàn)在,我們可以執(zhí)行最后一步,在儀表板上添加Map Widget。在數(shù)據(jù)選項卡下,單擊儀表板打開儀表板。單擊Create Widget Button。
在Add new Widget菜單中,您將看到Map選項,選擇它。
單擊“添加標(biāo)記組”。
選擇LoRa設(shè)備。
根據(jù)您的需求調(diào)整Map Trace設(shè)置,然后單擊Save。
就是這樣!現(xiàn)在,從LoRa設(shè)備接收到的所有位置數(shù)據(jù)都將以位置標(biāo)記的形式顯示在地圖小部件上。您還可以添加其他小部件,例如用于顯示原始坐標(biāo)值和SNR(信噪比)的表格。
ESP8266 Lora GPS跟蹤器工作正常
下圖顯示了實際的硬件以及如何在ubidot上更新緯度和經(jīng)度值。我們的Lora GPS跟蹤器的范圍實際上取決于該地區(qū)有多少Lora網(wǎng)關(guān)。只要在您的LoRa模塊范圍內(nèi)有一個網(wǎng)關(guān),我們就可以向ubidot發(fā)送數(shù)據(jù),在我們的情況下,我們在辦公室(室內(nèi))只有一個網(wǎng)關(guān),我們只能覆蓋網(wǎng)關(guān)周圍2-3公里。
本文編譯自iotdesignpro