如何將GPS數(shù)據(jù)發(fā)送到手機
電子學的主要應用之一是它在地理定位方面的應用。在本教程中,我們將了解如何通過互聯(lián)網(wǎng)將GPS數(shù)據(jù)發(fā)送到手機或其他設備。
關于NEO-6m
NEO-6M GPS模塊是一種受歡迎的GPS接收器,用于電子和DIY項目,因為它的價格實惠。要了解更多信息,請查看我不久前寫的這篇文章。
硬件
NEO-6m接線如下:
注意:在某些版本的ESP32中,GPIO 16和GPIO 17被標記為RXD2和TXD2。記住,Neo-6m上的TX會轉(zhuǎn)到ESP32上的RXD2。
您也可以使用I2C接口連接OLED顯示器
最后,將Neo-6m使用在開闊的區(qū)域,可以看到天空(靠近窗戶,陽臺,戶外等),以獲得最佳連接。
ESP32模塊非常通用,可以通過WiFi連接到各種不同的平臺來發(fā)送和接收數(shù)據(jù)。在本教程中,我們將使用Arduino的物聯(lián)網(wǎng)云平臺(這是完全免費使用)與ESP32。有關Arduino IoT Cloud的更詳細概述,請查看此文檔。
什么是“東西”?
Arduino物聯(lián)網(wǎng)云中的事物代表一個物理設備(如Arduino板)以及您想要通過互聯(lián)網(wǎng)監(jiān)控或控制的變量和屬性。
你需要什么
?一個免費的Arduino云帳戶
?兼容板(如Arduino Uno R4 WiFi、MKR1000、Nano 33 IoT、ESP32或ESP8266)
?安裝在計算機上的Arduino Create Agent(上傳代碼)
?互聯(lián)網(wǎng)連接和USB連接線
在Arduino物聯(lián)網(wǎng)云上創(chuàng)建事物的步驟
1. 登錄Arduino物聯(lián)網(wǎng)云
?轉(zhuǎn)到cloud.arduino.cc,用你的Arduino帳戶登錄。如果你沒有,你可以免費注冊。
2. 點擊“創(chuàng)建內(nèi)容”
?登錄后:
?轉(zhuǎn)到物聯(lián)網(wǎng)云選項卡。
?點擊儀表板上的“Create Thing”按鈕。
?這將生成一個可以稍后重命名的新Thing。
3. 連接設備
?在“設備”部分下:
?點擊“選擇設備”
?選擇“設置新設備”
?選擇ESP32
?保存設備ID和密鑰
?按照提示通過USB連接您的板
注意:如果您使用的是第三方板,Arduino Cloud會要求您安裝特殊代理并選擇板和端口。
4. 添加變量
變量是物聯(lián)網(wǎng)邏輯的核心。它們表示Thing發(fā)送或接收的數(shù)據(jù)。
?點擊“添加變量”,然后:
?為變量命名(例如temperature)
?選擇一個類型(例如float, bool, int, String)
?設置其權限:只讀(例如傳感器值)或讀寫(例如LED狀態(tài))
決定是根據(jù)變化進行更新還是定期更新
注意:在物聯(lián)網(wǎng)云的免費版本中,您只能向一個事物添加5個變量。
這個項目的變量
注意:選擇CloudLocation來存儲這個項目的經(jīng)緯度數(shù)據(jù)。
5. 配置網(wǎng)絡憑據(jù)
?選擇你的東西,進入“設置選項卡”
?輸入您的SSID, WiFi密碼和密鑰(從設備)
?這些憑證在安裝過程中被安全地上傳到電路板上。
注意:SSID是大小寫敏感的,所以鍵入它完全是。
6. 編寫和編輯草圖
?Arduino Cloud會自動為你的東西生成草圖。您可以:
?打開“Sketch”選項卡
?直接在瀏覽器中編輯代碼(Web Editor)。
?您可以從這里直接上傳代碼。
7. 帶有儀表板的監(jiān)視器
?轉(zhuǎn)到“儀表板”選項卡。
?添加小部件(如開關、圖形、地圖、儀表等)。
?將它們連接到您的東西中的云變量(按照提示操作)。
8. 向手機發(fā)送數(shù)據(jù)
?下載Arduino IoT Cloud Remote(支持iOS和Android)
?使用您的Arduino IoT Cloud帳戶登錄。
?選擇您的儀表盤&您準備好了!
代碼
讓我們一段一段地看看代碼是怎么做的:
庫和初始化
?TinyGPS++:從GPS模塊中解析NMEA句子。
?U8g2lib:控制OLED顯示。
?h:保存你的Arduino IoT云變量和設備配置。
注:所有庫均預裝在物聯(lián)網(wǎng)云平臺上。
這將通過I2C初始化SH1106 OLED(通常是經(jīng)典0.96 OLED顯示器的最佳選擇)。
?在ESP32上設置UART2,使用GPIO16和GPIO17進行GPS通信。
設置()函數(shù)
?啟動與GPS和OLED的通信。
?在OLED上顯示啟動信息。
?初始化物聯(lián)網(wǎng)云變量并連接到網(wǎng)絡。
循環(huán)()函數(shù)
?保持ESP32與云儀表板的連接和同步。
讀取GPS數(shù)據(jù)
?讀取新的GPS數(shù)據(jù)并更新有效的內(nèi)部變量。
重新連接處理
?如果2秒后GPS沒有收到數(shù)據(jù),設備就會通過OLED屏幕提醒用戶。
OLED顯示器- printAll()
這個函數(shù)做兩件事:
?更新云變量,如位置、高度和速度。
?在OLED顯示屏上顯示如下:
注意:顯示僅在有新數(shù)據(jù)可用時更新,避免閃爍或帶寬使用。
本文編譯自hackster.io