Sommario:

Localizzatore di posizione con NodeMCU ESP8266: 10 passaggi
Localizzatore di posizione con NodeMCU ESP8266: 10 passaggi

Video: Localizzatore di posizione con NodeMCU ESP8266: 10 passaggi

Video: Localizzatore di posizione con NodeMCU ESP8266: 10 passaggi
Video: GPS Tracker (localizzatore) con SIM800L e GPS Neo6M - 4/4 - Programmazione SIM800L - Video 674 2024, Novembre
Anonim
Localizzatore di posizione con NodeMCU ESP8266
Localizzatore di posizione con NodeMCU ESP8266

Sei curioso di sapere come il tuo NodeMCU può monitorare la tua posizione? È possibile, anche senza modulo GPS e senza display. L'output saranno le coordinate di dove ti trovi e le vedrai nel tuo monitor seriale.

La seguente configurazione è stata utilizzata per NodeMCU 1.0 (modulo ESP-12E) con Arduino IDE.

  • Windows 10
  • Arduino IDE v. 1.8.4

Passaggio 1: cosa ti serve?

Quello che ti serve per seguire questo tutorial sono i seguenti componenti:

  • Cavo micro USB
  • NodoMCU ESP8266

Inoltre, avrai bisogno di:

  • LocationAPI (da Unwired Labs)
  • Accesso a wifi o hotspot

Passaggio 2: vai a Laboratori non cablati

Vai a Laboratori non cablati
Vai a Laboratori non cablati

La geolocalizzazione è molto utile perché quando il GPS è spento, puoi comunque utilizzare la geolocalizzazione per tracciare la tua posizione. Il nostro host che fornisce la geolocalizzazione sarà https://www.unwiredlabs.com/. Vai a quel sito Web e registrati (il pulsante arancione nell'angolo in alto a destra).

Passaggio 3: registrati per ottenere il token API

Registrati per ottenere il token API
Registrati per ottenere il token API

Nella pagina di registrazione, devi inserire il tuo nome, e-mail (il tuo token API verrà inviato alla tua e-mail) e caso d'uso (ad esempio, uso personale). Seleziona il tipo di account. La versione gratuita andrà bene, ma tieni presente che sei limitato e non puoi tenere traccia della tua posizione 24 ore su 24, 7 giorni su 7. Iniziamo!

Passaggio 4: controlla la tua email

Vai alla tua email e vedrai il tuo token API. Copia il token API, perché è necessario per il codice che utilizzeremo. Ecco come appare l'e-mail:

Ciao!

Grazie per esserti registrato con Unwired Labs LocationAPI! Il tuo token API è "il tuo codice API è qui" (senza virgolette). Questo darà 100 richieste al giorno gratis - per sempre.

Se desideri monitorare 5 dispositivi gratuitamente, rispondi con i seguenti dettagli e aggiorneremo il tuo account entro 12 ore:

1. Tipo di distribuzione (Hardware/ App/ Altro):

2. Sul tuo progetto:

3. Sito Web:

Puoi accedere alla tua dashboard qui: https://unwiredlabs.com/dashboard. Se riscontri problemi o hai domande, rispondi a questa email e ti aiuterò!

Localizzazione felice!

Sagar

Laboratori non cablati

Passaggio 5: biblioteche di cui avrai bisogno

Biblioteche di cui avrai bisogno
Biblioteche di cui avrai bisogno

Il prossimo passo è aprire Arduino e andare a gestire le librerie. Devi installare la libreria ArduinoJson. Le altre librerie sono già integrate. Quando sei pronto, puoi iniziare a scrivere il codice.

Passaggio 6: aggiungi codice in Arduino per connetterti con LocationAPI

Crea un nuovo schizzo e aggiungi il seguente codice in Arduino. Scrivi il tuo nome wifi/hotspot e la tua password. Incolla il token API che hai ricevuto nell'e-mail. Carica il tuo codice sul tuo NodeMCU.

#includere

#includere

#include "ESP8266WiFi.h"

// il tuo SSID di rete (nome) e password di rete

char myssid = "Il tuo nome wifi/hotspot"; char mypass = "La tua password";

// unwiredlabs Hostname e URL dell'endpoint di geolocalizzazione

const char* Host = "www.unwiredlabs.com"; Endpoint stringa = "/v2/process.php";

// UnwiredLabs API_Token. Iscriviti qui per ottenere un token gratuito

Token stringa = "d99cccda52ec0b";

String jsonString = "{n";

// Variabili per memorizzare la risposta unwiredlabs

doppia latitudine = 0.0; doppia longitudine = 0.0; doppia precisione = 0.0;

void setup(){

Serial.begin(115200);

// Imposta il WiFi in modalità stazione e disconnettiti da un AP se era connesso in precedenza

WiFi.mode(WIFI_STA); WiFi.disconnect(); Serial.println("Installazione completata");

// Iniziamo connettendoci a una rete WiFi

Serial.print("Connessione a "); Serial.println(myssid); WiFi.begin(myssid, mypass);

while (WiFi.status() != WL_CONNECTED) {

ritardo (500); Serial.print("."); } Serial.println("."); }

ciclo vuoto() {

char bssid[6]; DynamicJsonBuffer jsonBuffer;

// WiFi.scanNetworks restituirà il numero di reti trovate

int n = WiFi.scanNetworks(); Serial.println("scansione eseguita");

se (n == 0) {

Serial.println("Nessuna rete disponibile"); } else { Serial.print(n); Serial.println("reti trovate"); }

// ora crea jsonString…

jsonString = "{n"; jsonString += "\"token\": \""; jsonString += token; jsonString += "\", \n"; jsonString += "\"id\": \"saikirandevice01\", \n"; jsonString += "\"wifi\": [n"; for (int j = 0; j < n; ++j) { jsonString += "{n"; jsonString += "\"bssid\": \""; jsonString += (WiFi. BSSIDstr(j)); jsonString += "\", \n"; jsonString += "\"segnale\": "; jsonString += WiFi. RSSI(j); jsonString += "\n"; if (j < n - 1) { jsonString += "}, \n"; } else { jsonString += "}\n"; } } jsonString += ("]\n"); jsonString += ("}\n"); Serial.println(jsonString);

client WiFiClientSecure;

//Connettiti al client ed effettua la chiamata API

Serial.println("Richiesta URL: https://" + (String)Host + endpoint); if (client.connect(Host, 443)) { Serial.println("Connesso"); client.println("POST " + endpoint + " HTTP/1.1"); client.println("Host: " + (String)Host); client.println("Connessione: chiudi"); client.println("Tipo di contenuto: application/json"); client.println("User-Agent: Arduino/1.0"); client.print("Lunghezza contenuto: "); client.println(jsonString.length()); client.println(); client.print(jsonString); ritardo (500); }

// Legge e analizza tutte le righe della risposta dal server

while (client.available()) { String line = client.readStringUntil('\r'); JsonObject& root = jsonBuffer.parseObject(line); if (root.success()) { latitudine = root["lat"]; longitudine = root["lon"]; accuratezza = root["accuratezza"];

Serial.println();

Serial.print("Latitudine = "); Serial.println(latitudine, 6); Serial.print("Longitudine = "); Serial.println(longitudine, 6); Serial.print("Precisione = "); Serial.println(precisione); } }

Serial.println("chiusura connessione");

Serial.println(); cliente.stop();

ritardo (5000);

}

Passaggio 7: apri il monitor seriale per vedere se sei connesso

Vai su strumenti in Arduino e apri il monitor seriale. Per vedere se sei connesso a Internet, dovresti vedere quanto segue nel monitor seriale:

Configurazione completata

Connessione a (il tuo nome wifi) … scansione completata

Passaggio 8: ottenere le coordinate

Se ha funzionato con successo, dovresti vedere sotto scansione eseguita un intero elenco di dati. L'unica cosa di cui abbiamo bisogno è il codice sotto l'URL richiedente, quindi avremo bisogno della latitudine e della longitudine. Queste sono le coordinate.

URL di richiesta:

Collegato

Latitudine = 52.385259

Longitudine = 5.196099

Precisione = 41.00

chiusura della connessione

Dopo 5 secondi il codice si aggiornerà costantemente e probabilmente vedrai cambiare latitudine, longitudine e precisione. Questo perché l'API sta cercando di tracciare la posizione nel modo più preciso possibile.

Passaggio 9: vai su Google Maps

Vai su Google Maps
Vai su Google Maps

Vai su https://www.google.com/maps/ e digita le tue coordinate nella barra di ricerca. Le coordinate devono essere scritte nel seguente modo: 52.385259, 5.196099. Google Maps dovrebbe mostrare dove ti trovi sulla mappa.

Passaggio 10: invia la posizione al tuo cellulare

Invia la posizione al tuo cellulare
Invia la posizione al tuo cellulare

E hai finito! Pertanto, se desideri inviare la posizione al tuo cellulare, è possibile. Se lo desideri, Google Maps ti invierà un'email con le tue coordinate.

Felice localizzazione!

Consigliato: