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