www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > IoT設(shè)計分享
[導(dǎo)讀]有沒有想過你的手機軟件是如何在駕駛時使用GPS定位你的位置的?這個問題的答案是,嵌入你手機中的一個小型GPS模塊與衛(wèi)星網(wǎng)絡(luò)通信,以確定你手機的位置。在這個項目中,我們將了解GPS模塊是如何工作的,我們將了解一種流行的GPS接收器模塊NEO 6M,該模塊與手機中使用的模塊大小不同,但工作原理相同。通過使用GPS接收器模塊和Thingspeak物聯(lián)網(wǎng)平臺提供的信息,我們將嘗試在圖表上繪制數(shù)據(jù)。除此之外,我們還將通過使用Thingspeak- Matlab可視化中的inbuild函數(shù)生成URL來可視化衛(wèi)星視圖地圖上的位置(需要編碼,在代碼說明部分進行解釋)。

有沒有想過你的手機軟件是如何在駕駛時使用GPS定位你的位置的?這個問題的答案是,嵌入你手機中的一個小型GPS模塊與衛(wèi)星網(wǎng)絡(luò)通信,以確定你手機的位置。在這個項目中,我們將了解GPS模塊是如何工作的,我們將了解一種流行的GPS接收器模塊NEO 6M,該模塊與手機中使用的模塊大小不同,但工作原理相同。通過使用GPS接收器模塊和Thingspeak物聯(lián)網(wǎng)平臺提供的信息,我們將嘗試在圖表上繪制數(shù)據(jù)。除此之外,我們還將通過使用Thingspeak- Matlab可視化中的inbuild函數(shù)生成URL來可視化衛(wèi)星視圖地圖上的位置(需要編碼,在代碼說明部分進行解釋)。通過使用這個URL,任何瀏覽器的任何人都可以跟蹤它所連接的GPS設(shè)備的位置。如果你正在尋找一個簡單的解決方案,你也可以看看NodeMCU GPS Webserver項目,它也非常類似于我們即將構(gòu)建的。

組件的要求

?NEO 6M GPS模塊

?節(jié)點單片機

?連接電線

GPS模塊是如何工作的?

GPS是全球定位系統(tǒng)的縮寫,是一種全球性的無線電導(dǎo)航系統(tǒng)。為了跟蹤設(shè)備的位置,GPS跟蹤系統(tǒng)使用全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)網(wǎng)絡(luò)。該網(wǎng)絡(luò)由一系列衛(wèi)星組成,這些衛(wèi)星使用微波信號傳輸數(shù)據(jù),這些數(shù)據(jù)將被GPS接收器模塊接收。

GPS衛(wèi)星星座由24顆繞地球運行的GPS衛(wèi)星組成。這些衛(wèi)星的定位方式是,在任何時候,至少有6顆衛(wèi)星處于地球表面任何地方的視線范圍內(nèi)。當(dāng)涉及到GPS設(shè)備的精確定位時,該系統(tǒng)遵循一個簡單的數(shù)學(xué)原理,稱為三邊定位。

例如,考慮衛(wèi)星a。當(dāng)您打開移動GPS時,它會接收衛(wèi)星a的當(dāng)前時間和位置。現(xiàn)在接收器通過計算信號的時間和速度(信號的速度等于光速)來計算到衛(wèi)星A的距離。接收器現(xiàn)在知道它必須位于由衛(wèi)星A的距離形成的圓上。現(xiàn)在,GPS接收器從另一顆衛(wèi)星獲得數(shù)據(jù),假設(shè)是衛(wèi)星B。通過使用衛(wèi)星B提供的數(shù)據(jù),它知道它必須位于這兩個圓(由衛(wèi)星A和衛(wèi)星B組成)之間的交互點上。現(xiàn)在,它從第三顆衛(wèi)星獲取數(shù)據(jù)來精確定位。這種利用衛(wèi)星的時間和位置等數(shù)據(jù)來確定你的位置的過程被稱為三邊定位。

NEO 6M GPS接收器模塊

因此,現(xiàn)在在我們的項目中,我們將使用NEO 6M GPS接收器模塊,它由50個通道組成。這些頻道就像房間,每個頻道可以容納每個衛(wèi)星的一個頻率。這些信道通常是并行操作的,這使得接收機在移動時保持精度。首次定位時間(TTFF)是接收衛(wèi)星信號和導(dǎo)航信號并使用該數(shù)據(jù)計算位置所需的時間。NEO 6M的TTFF在冷啟動和熱啟動時為27秒,熱啟動時為1秒。

在工作條件方面,最大工作電壓為3.6V,最小工作電壓為2.7V。NEO 6M模塊的平均供電電流為39mA。在一些模塊中,有一個內(nèi)置的3.3V穩(wěn)壓器。因此,我們可以將模塊連接到5V以獲得最大性能。在通信方面,該模塊采用UART,可以方便地與任何MCU (Node MCU)進行通信。連接部分在電路圖部分討論。

測試Neo 6M GPS模塊

要知道GPS模塊是否工作,請按照如下電路圖連接模塊,并上傳空代碼。注意,如果您上傳的是空代碼,那么串行通信將使用nodeMCU的默認(rèn)TX和RX引腳進行。要檢查串行監(jiān)視器上的數(shù)據(jù),請相應(yīng)地更改電路,即將GPS模塊的RX和TX連接到NodeMCU的RX和TX,如下所示

上傳空代碼后,打開串口監(jiān)視器。到目前為止,您應(yīng)該看到屏幕上打印了一些值。等等,它們不是正確的值。如果您觀察,您可以發(fā)現(xiàn)輸出中缺少一些位。首先,模塊需要一些時間才能給出正確的值。注意:如果GPS模塊開始閃爍,則表示該模塊正在接收值。下圖顯示了接收到的數(shù)據(jù)中缺少一些位的情況。

如果數(shù)據(jù)沒有丟失位,則數(shù)據(jù)將如下圖所示。

您看到的上述數(shù)據(jù)是用NMEA格式表示的數(shù)據(jù)。NMEA代表國家海洋電子協(xié)會。這種標(biāo)準(zhǔn)數(shù)據(jù)格式被所有GPS制造商所支持,就像計算機制造商的ASCII一樣。

GPGSV -顯示當(dāng)前的GPS衛(wèi)星

1 =此周期內(nèi)該類型消息的總數(shù)

2 =留言號

3 =正在查看的sv的總數(shù)

4 = SV PRN號

5 =仰角,最高90度

6 =方位角,從真北000到359度

7 =信噪比,00-99 dB(不跟蹤時為空)

8-11 =第二個SV信息

12-15=第三SV信息

16-19=第四個SV信息

GPGLL -地理定位,緯度和經(jīng)度。例如:$GPGLL,4815.45,N,12311.12,W,215455,A

GPS跟蹤器電路圖

節(jié)點MCU與NEO 6M模塊之間的連接非常簡單。NEO 6M模塊的VCC和GND引腳連接到面包板的正負(fù)電源軌,節(jié)點MCU的3v3和GND引腳連接到面包板的正負(fù)電源軌,如下圖所示。NEO 6M的RX和TX引腳連接到節(jié)點MCU的D1和D2引腳。Node MCU采用USB供電方式。

設(shè)置Thingspeak

首先,如果你是一個新用戶,注冊一個thingspeak帳戶。我們已經(jīng)用Thingspeak構(gòu)建了很多有趣的項目,你也可以去看看。

注冊后,選擇頻道。選擇通道后,選擇“新建通道”。

選擇新通道后,將加載下面的頁面。輸入詳細信息和適當(dāng)?shù)淖侄蚊Q,然后單擊保存。

選擇保存后,將加載下面的頁面?,F(xiàn)在選擇選項API密鑰

選擇API密鑰后,將加載以下頁面?,F(xiàn)在,記下通道ID,寫鍵和讀鍵。在nodeMCU編程中使用Write鍵,而在Matlab可視化程序中使用Read鍵。

之后,選擇私有視圖選項并單擊Matlab可視化選項。

現(xiàn)在,下面的頁面將被加載。不做任何更改,然后選擇Create。

現(xiàn)在,您將加載一個頁面,您可以在其中編寫代碼,使用緯度和經(jīng)度在地圖上指出位置。復(fù)制粘貼本文提供的代碼,并更改所需的值(讀取密鑰和通道ID)。

檢查“創(chuàng)建公共URL”框,以便任何人都可以使用此URL找到設(shè)備的位置。

接下來,我們需要兩種不同類型的程序。一個代碼處理從GPS模塊獲取數(shù)據(jù),然后將數(shù)據(jù)傳輸?shù)絫hingspeak。第二個代碼處理使用發(fā)送給thingspeak的數(shù)據(jù)指向地圖上的位置。第一個代碼是用Arduino IDE編寫的,而第二個代碼是用thingspeak Matlab可視化編寫的。

在進入代碼解釋之前,需要下載某些庫,這些庫有助于將原始數(shù)據(jù)(NMEA格式)轉(zhuǎn)換為可理解的數(shù)據(jù)。首先,使用提供的鏈接下載tinyGPS庫。接下來,通過在庫管理器中搜索下載thingspeak庫。下載MathWorks提供的那個。

NodeMCU程序讀取GPS數(shù)據(jù)并發(fā)送給Thingspeak

完整的程序可以在本頁底部找到,相同的解釋如下。下面的代碼片段用于包含庫,這些庫是我們的代碼正常工作所需的,并且將GPIO引腳4和5設(shè)置為NodeMCU的RX和TX引腳。設(shè)置GPS波特率為9600。

以下代碼僅在有來自GPS模塊的傳入數(shù)據(jù)時運行。代碼對數(shù)據(jù)進行編碼,如果編碼后的數(shù)據(jù)有效,則考慮該數(shù)據(jù),并進行進一步的計算以將NMEA數(shù)據(jù)轉(zhuǎn)換為可理解的數(shù)據(jù)。下面的代碼只向thingspeak發(fā)送緯度和經(jīng)度值。

Matlab ThingSpeak可視化代碼在地圖上顯示位置

現(xiàn)在,我們必須編寫一個代碼,它可以通過使用緯度和經(jīng)度值在地圖上指出位置,這些值被轉(zhuǎn)移到thingspeak中。下面的屏幕截圖顯示了示例URL。

下面的代碼獲取最后10個值的值,并將它們定位在地圖上。通過使用URL,該URL將在運行代碼后可用。要更改值的數(shù)量,它需要考慮更改寫在‘ NumPoints ’之后的值。

在下面輸入您的MATLAB代碼

下面的代碼使用由nodeMCU提供的緯度和經(jīng)度在地圖上精確定位位置。

一旦您的編程完成,您的頁面應(yīng)該看起來像下面所示

通過使用提供的URL,我在web瀏覽器中得到了下面的圖片。

Matlab可視化從字段中獲取數(shù)據(jù),然后在地圖上定位它們。下圖顯示了繪制在字段上的數(shù)據(jù),這將進一步用于Matlab可視化。

測試NodeMCU GPS跟蹤器

一旦啟動nodeMCU,串行監(jiān)視器中看到的讀數(shù)可能不正確。它需要一些有限的時間來得到正確的讀數(shù)。如果GPS模塊開始閃爍,您將知道讀數(shù)是正確的。一旦nodeMCU與LAN連接,并且GPS數(shù)據(jù)有效,則該數(shù)據(jù)將被發(fā)送到thingspeak。您可以在Thingspeak的字段中查看正在更新的數(shù)據(jù)。通過使用我們在Matlab可視化中獲得的生成的URL,我們可以從任何瀏覽器跟蹤位置。

本文編譯自iotdesignpro

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉