0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用ESP12E板來獲取位置的實時坐標(biāo)

科技觀察員 ? 來源:circuitdigest ? 作者:Rishabh Jain ? 2022-09-21 15:45 ? 次閱讀

你有沒有想過在不使用任何 GPS 硬件的情況下獲取設(shè)備的位置?聽起來不錯??!是的,只需使用 NodeMCU ESP 板就可以獲取位置坐標(biāo),而無需任何額外的硬件。在這里,我們將使用ESP12E 板來獲取我們位置的實時坐標(biāo)。由于Google 的 Geolocation API ,這成為可能。那么讓我們看看這個 Geolocation API 是如何工作的,以及我們?nèi)绾问褂盟鼇慝@取位置。

谷歌地理定位 API 的工作原理是什么?

眾所周知,用于智能手機Android 操作系統(tǒng)由 Google 提供支持。通常,大多數(shù)手機一直都啟用 GPS 和 Wi-Fi,因此 Google 不僅可以跟蹤我們的位置,還可以跟蹤附近的 Wi-Fi 網(wǎng)絡(luò)。例如,如果您在啟用 Wi-Fi 和 GPS 的街道上行走,那么您的手機會不斷掃描附近的 Wi-Fi 網(wǎng)絡(luò)以及 Google 所做的事情,它會保存 MAC 地址和該 Wi-Fi 網(wǎng)絡(luò)的名稱以及我們手機的位置。

poYBAGMqwLOAeZ56AAExeaRFoIU797.png

因此,根據(jù)手機接收到的信號強度,Google 會估計特定 Wi-Fi 網(wǎng)絡(luò)的位置,并將該數(shù)據(jù)保存到數(shù)據(jù)庫中。因此,下一次,如果有人通過相同的 Wi-Fi 網(wǎng)絡(luò)并且沒有在他的手機中啟用 GPS,他仍然可以根據(jù)該特定 Wi-Fi 網(wǎng)絡(luò)的位置獲取手機的位置。

poYBAGMqwK-APz-WAAFnuivCUak011.png

因此,附近的 Wi-Fi 網(wǎng)絡(luò)數(shù)量越多,位置就越精確。這就是 Google 地理定位的工作原理。有關(guān)更多信息,您可以查看Geolocation API 的文檔。

現(xiàn)在,我們將在 NodeMCU ESP12E 開發(fā)板中使用 Geolocation API 的魔力,并嘗試獲取位置坐標(biāo)。在這里,我們將使用Arduino IDE 的串行監(jiān)視器來查看坐標(biāo)。

從 Google Geolocation 獲取 API 密鑰

要使用 Google 的 Geolocation 服務(wù),我們需要一個 Google 帳戶和 API 密鑰。按照以下步驟獲取 API 密鑰。

第 1 步:-轉(zhuǎn)到Google 開發(fā)者頁面,使用您的 Google 帳戶登錄并點擊獲取 API 密鑰,然后點擊開始。

poYBAGMqwKuAaGWOAAJDBuliOa4247.png

第 2 步:-通過單擊開始,將打開一個新窗口,如下所示。

pYYBAGMqwKiAFrrbAAGXVXAvvNs226.png

點擊Maps and Places for Pick Product 選項,然后點擊continue。

第 3 步:-為您的項目命名,然后單擊Next。

poYBAGMqwKSACjSwAAMD0RUkpWw781.png

第 4 步:-下一步是設(shè)置帳單。您必須保存您的銀行卡詳細信息。雖然這項服務(wù)免費一年,但這只是為了檢查你不是機器人。一年后,未經(jīng)您的許可,它不會從您的帳戶中扣除金額。因此,只需填寫詳細信息并繼續(xù)并單擊下一步。

第 5 步:-之后,您將獲得您的 API 密鑰。復(fù)制此密鑰并將此密鑰保存在記事本上。我們的代碼中需要這個鍵。

pYYBAGMqwJ6Aa2nyAAE_J1gU1GM405.png

現(xiàn)在,你們都準(zhǔn)備好繼續(xù)編碼部分了。

編程 NodeMCU 以獲取 GPS 數(shù)據(jù)

在這里,我們將使用Arduino IDE 對 ESP12 進行編程。因此,請確保您已下載 ESP8266 開發(fā)板文件。

對于編碼部分,我們需要三個庫ESP8266HTTPClient 、 ArduinoJson 、 ESP8266WiFi。


然后,我們?yōu)?Wi-Fi 名稱、Wi-Fi 密碼、API 密鑰初始化變量并初始化代碼中使用的其他變量。

字符 ssid[] = "********"; // 您的網(wǎng)絡(luò) SSID 名稱
char pass[] = "********"; // 你的網(wǎng)絡(luò)密碼
String key = "your api key";
...
..

雙緯度 = 0.0;
雙經(jīng)度 = 0.0;
雙精度 = 0.0;
在設(shè)置功能中,我們將 Wi-Fi 設(shè)置為站模式并斷開與之前連接的 AP 的連接。

無效設(shè)置(){
序列.開始(9600);
Serial.println("開始");
WiFi.mode(WIFI_STA);
WiFi.disconnect();
延遲(100);
Serial.println("設(shè)置完成");

..
在循環(huán)功能中,我們將掃描所有附近的 Wi-Fi 網(wǎng)絡(luò)并提取這些網(wǎng)絡(luò)的 MAC 地址和強度。然后,我們從提取的信息中生成 json 字符串并將其發(fā)送到 Google 云,作為回報,我們得到位置的坐標(biāo),即緯度、經(jīng)度和準(zhǔn)確度。準(zhǔn)確性將取決于附近可用的 Wi-fi 網(wǎng)絡(luò)數(shù)量。

int n = WiFi.scanNetworks();
Serial.println("掃描完成");
如果(n == 0)
Serial.println("沒有找到網(wǎng)絡(luò)");
別的
{
序列號.print(n);
Serial.println("找到網(wǎng)絡(luò)...");

如果(更多文本){
Serial.println(""wifiAccessPoints": [");
對于 (int i = 0; i < n; ++i)
{
序列號.println("{");
Serial.print(""macAddress" : "");
Serial.print(WiFi.BSSIDstr(i));
Serial.println("",");
Serial.print(""信號強度": ");
......
……
將最后給出的完整代碼上傳到板上并打開串行監(jiān)視器。

您將看到您所在位置的坐標(biāo)和準(zhǔn)確性,如下所示。

pYYBAGMqwJeAfzn1AAGGbkFlin4408.png

現(xiàn)在,在您的智能手機中打開 Google 地圖并輸入以逗號 (,) 分隔的經(jīng)緯度。如圖所示,您將在地圖上看到您的位置。

pYYBAGMqwJOAeYUlAAE1qpH4hjM322.png

因此,我們已經(jīng)看到只需使用多功能 ESP12 而無需任何 GPS 模塊即可輕松獲取任何設(shè)備的當(dāng)前位置。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • GPS技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    10213
  • ESP
    ESP
    +關(guān)注

    關(guān)注

    0

    文章

    179

    瀏覽量

    33740
  • NODEMCU
    +關(guān)注

    關(guān)注

    13

    文章

    289

    瀏覽量

    21187
收藏 人收藏

    評論

    相關(guān)推薦

    esp12e得到了錯誤的ADC讀數(shù)是為什么?

    我遇到了一個非常煩人的問題:我有一個使用 esp12e 的項目,在某些上我得到了錯誤的 ADC 讀數(shù)(使用 system_adc_read SDK 2.0.0 NONOS),即使我將 ADC 引腳接地,我也可以讀取一個值 ~10mV。我試圖改變WiFi模式(所有模式),
    發(fā)表于 07-11 06:19

    基于ESP12E Dev Kit的NodeMCU開發(fā)教程

    基于ESP12E Dev Kit的NodeMCU開發(fā)教程
    發(fā)表于 05-26 09:11

    ESP12F/ESP12E wifi模塊的分線板

    描述ESP12F/ESP12E-突破該 PCB 是 ESP12F/ESP12E wifi 模塊的分線板。使用此 PCB,您可以輕松測試 ESP12
    發(fā)表于 08-08 06:05

    為什么無法與ESP8266 ESP12E通信?

    你好。我正在嘗試一些非常簡單的事情,即將草圖上傳到我的一個 ESP12e。 直到幾周前,我才能夠毫無問題地做到這一點?,F(xiàn)在,我收到以下消息:代碼:全選esptool.py v2.8Serial
    發(fā)表于 02-23 08:11

    如何從UNO轉(zhuǎn)移到NODEMCU ESP12E?

    我有一些小型私人項目在 Arduino UNO 上工作,帶有顯示器和按鈕,我想將它們移動到 NODEMCU ESP12E,以便能夠擴展可用性,在物理按鈕旁邊有虛擬按鈕,由智能手機、網(wǎng)絡(luò)服務(wù)器或
    發(fā)表于 02-23 07:41

    使用NodeMCU ESP8266 ESP12E,Arduino IDE報錯的原因?

    您好,我正在使用 NodeMCU ESP8266 ESP12E 我的 Arduino IDE 出現(xiàn)以下錯誤 請幫忙 請告訴我我做錯了什么? “無法打開 COM3”- 您沒有 COM3 或 COM3 已被另一個應(yīng)用程序打開。
    發(fā)表于 05-08 07:08

    ESP12E的能耗問題求解

    我無法找到一種方法發(fā)現(xiàn)我的 ESP12E 的能耗。我正在使用睡眠模式進行測試,我想知道我的設(shè)備呈現(xiàn)的消耗,即使有一個睡眠模式消耗表也是如此。我有一個萬用表,但我不確定將它連接到哪里。
    發(fā)表于 05-17 08:59

    為什么ESP12E串口通信失敗?

    我有一個簡單的電子電路,帶有 ESP12E (esp8266) wifi 模塊、PIC18F27K40、RFM95W Lora 模塊和 LM317(用于上電 3.3 V 輸出)。 我有一個非常奇怪
    發(fā)表于 05-23 06:30

    如何在不將ESP12E、ESP12ESP07模塊焊接到某個地方的情況下對其進行閃存?

    您是否曾經(jīng)想過在不將 ESP12E、ESP12ESP07 模塊焊接到某個地方的情況下對其進行閃存? 現(xiàn)在你可以 !無需任何特殊零件或工具即可 DIY 適配器!
    發(fā)表于 05-23 07:14

    求助,ESP12E的天線可以剪掉嗎?

    我的項目需要盡可能小的外形,我目前使用 ESP12 作為微控制器。我的應(yīng)用不需要WiFi,所以我的問題是:是否可以簡單地用小鋸子將ESP12E的天線部分鋸掉,使尺寸變小?剪掉天線會不會導(dǎo)致ESP12
    發(fā)表于 05-29 08:52

    ESP12EESP12F PCB封裝及原理圖免費下載

    本文檔的主要內(nèi)容詳細介紹的是ESP12EESP12F WIFI模塊PCB封裝及原理圖免費下載。
    發(fā)表于 04-17 08:00 ?230次下載
    <b class='flag-5'>ESP12E</b>和<b class='flag-5'>ESP12</b>F PCB封裝及原理圖免費下載

    ESP12E上運行復(fù)合視頻和8086PC-XT仿真

    你能否在ESP12E上運行具有640KRAM、80×25CGA復(fù)合視頻和1.44MBMS-DOS磁盤的8086PC-XT仿真,而無需其他組件?
    的頭像 發(fā)表于 03-30 17:33 ?2248次閱讀
    在<b class='flag-5'>ESP12E</b>上運行復(fù)合視頻和8086PC-XT仿真

    ESP12F/ESP12E開源分享

    電子發(fā)燒友網(wǎng)站提供《ESP12F/ESP12E開源分享.zip》資料免費下載
    發(fā)表于 07-25 09:01 ?9次下載
    <b class='flag-5'>ESP12</b>F/<b class='flag-5'>ESP12E</b>開源分享

    使用ESP12E的App控制RGB UV LED水族燈

    電子發(fā)燒友網(wǎng)站提供《使用ESP12E的App控制RGB UV LED水族燈.zip》資料免費下載
    發(fā)表于 01-30 09:43 ?0次下載
    使用<b class='flag-5'>ESP12E</b>的App控制RGB UV LED水族燈

    有用的ESP12E DEV原型擴展板

    電子發(fā)燒友網(wǎng)站提供《有用的ESP12E DEV原型擴展板.zip》資料免費下載
    發(fā)表于 02-01 09:39 ?0次下載
    有用的<b class='flag-5'>ESP12E</b> DEV原型擴展板