Sommario:

GEOLOACAZIONE: 5 Passi
GEOLOACAZIONE: 5 Passi

Video: GEOLOACAZIONE: 5 Passi

Video: GEOLOACAZIONE: 5 Passi
Video: Passo Giau - 〽️Giro dei 5 Rifugi (GPS + DRONE) 2024, Novembre
Anonim
GEOLOACATION
GEOLOACATION

È il mio progetto di stage estivo. Mi sorprende davvero quando sento che possiamo tracciare la posizione di qualsiasi dispositivo senza utilizzare il modulo GPS solo utilizzando NodeMCU. Attraverso questo possiamo tracciare qualsiasi dispositivo. Sorprendi anche come possiamo rintracciare il dispositivo usando solo il WiFi. Ecco la descrizione del tipo per capirlo.

  • · Scansiona quasi tutto il tuo WiFi.
  • · Invia la posizione di questo dispositivo a Google utilizzando l'API di Google
  • · In base a questo è individuare la posizione del dispositivo
  • · Hai una forte connessione di rete per questo progetto.

Passaggio 1: parti e strumenti

Parti

  • NodoMCU (ESP8266 1.0 12E)
  • Cavo USB

Utensili

Arduino IDE con scheda NodeMcu 1.0 12E

API di Google

Passaggio 2: trova l'API di Google

Trova l'API di Google
Trova l'API di Google
Trova l'API di Google
Trova l'API di Google
Trova l'API di Google
Trova l'API di Google
  • Apri il tuo browser e digita: console.developer.google.com
  • Crea un nuovo progetto
  • Dopo aver creato un nuovo progetto, fai clic su credenziali
  • Fare clic su Chiave API
  • La tua chiave API è stata generata

    Per una facile comprensione vedere l'immagine seguente |>

Passaggio 3: configurare NodeMCu su Arduino IDE

Configura NodeMCu su Arduino IDE
Configura NodeMCu su Arduino IDE
Configura NodeMCu su Arduino IDE
Configura NodeMCu su Arduino IDE
Configura NodeMCu su Arduino IDE
Configura NodeMCu su Arduino IDE
  • Scarica Arduino IDE dal seguente link: - https://www. Principale/Software arduino.cc/en/
  • Aggiungi la scheda Node MCu su Arduino IDE
  • Per caricare il codice su NodeMCU devi aggiungere la scheda NodeMCu su ARDUINO IDE.

    • VAI a file e preferenze nell'IDE di Arduino
    • E nella sezione Gestione scheda aggiuntiva copia il seguente link
    • arduino.esp8266.com/stable/package_esp8266c…
    • e fai clic su Ok
    • La scheda è scaricata
    • Vai agli strumenti e alla scheda e seleziona NodeMCU 1.0 12E
    • Guarda l'immagine avobe per una facile comprensione

Passaggio 4: scarica la libreria ArduinoJson

Scarica la libreria ArduinoJson
Scarica la libreria ArduinoJson
  • Vai al
  • Schizzo Includi libreria Gestisci libreria

    Digita Arduino Json nella casella di ricerca

    Scarica l'ultima versione della libreria ArduinoJson

    dopo aver scaricato la libreria, fai clic su chiudi

    Aggiungi libreria da

    SketchincludeLibraryArduinoJson

Passaggio 5: programma

Carica il seguente programma sulla scheda NodeMCU. e vedere la posizione del dispositivo (scheda NodeMCU 1.0 12E) sul monitor seriale.

#includere

#includere

#includere

char myssid = "Il tuo SSID"; // il tuo SSID di rete (nome)

char mypass = "La tua password"; // la tua password di rete

//Credenziali per l'API di geolocalizzazione di Google…

const char* Host = "www.googleapis.com";

String thisPage = "/geolocation/v1/geolocate?key=";

// --- Ottieni una chiave ap di Google Maps qui:

developers.google.com/maps/documentation/geolocation/intro

String key = "La tua chiave API di Google ";//Trova dal passaggio2

Istruzione

int stato = WL_IDLE_STATUS;

String jsonString = "{n";

doppia latitudine = 0.0;

doppia longitudine = 0.0;

doppia precisione = 0.0;

int più_testo = 1; // imposta a 1 per più output di debug

void setup() {

Serial.begin(9600);

Serial.println("Avvio");

// Imposta il WiFi in modalità stazione e

disconnettersi da un AP se era precedentemente connesso

WiFi.mode(WIFI_STA);

WiFi.disconnect();

ritardo(100);

Serial.println( Impostazione

fatto );

// Iniziamo connettendoci a a

Rete Wi-Fi

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;

Serial.println("inizio scansione");

// ritornerà WiFi.scanNetworks

il numero di reti trovate

int n = WiFi.scanNetworks();

Serial.println("scandone");

se (n == 0)

Serial.println("nessuna rete trovata");

altro

{

Serial.print(n);

Serial.println("reti trovate…");

if (more_text) {

// Stampa il json formattato…

Serial.println("{");

Serial.println("\"homeMobileCountryCode\":234, "); // questo è un vero Centro clienti del Regno Unito

Serial.println("\"homeMobileNetworkCode\":27, "); // e una vera multinazionale britannica

Serial.println("\"radioType\":\"gsm\", "); //per gsm

Serial.println("\"operatore\":\"Vodafone\", "); //associato a Vodafone

Serial.println("\"cellTowers\": ["); // Non sto segnalando alcun ripetitore

Serial.println("], ");

Serial.println("\"AccessPoint wifi\": [");

for (int i = 0; i < n; ++i)

{

Serial.println("{");

Serial.print("\"macAddress\": \"");

Serial.print(WiFi. BSSIDstr(i));

Serial.println("\", ");

Serial.print("\"signalStrength\": ");

Serial.println(WiFi. RSSI(i));

se (i < n - 1)

{

Serial.println("}, ");

}

altro

{

Serial.println("}");

}

}

Serial.println("]");

Serial.println("}");

}

Serial.println(" ");

}

// ora crea jsonString…

jsonString = "{n";

jsonString +="\"homeMobileCountryCode\": 234, \n"; // questo è un vero Centro clienti del Regno Unito

jsonString +="\"homeMobileNetworkCode\": 27, \n"; // e una vera multinazionale britannica

jsonString +="\"radioType\": \"gsm\", \n"; // per gsm

jsonString +="\"carrier\": \"Vodafone\", \n"; // associato a Vodafone

jsonString +="\"wifiAccessPoints\": [n";

per (int j = 0; j < n; ++j)

{

jsonString += "{n";

jsonString +="\"macAddress\": \"";

jsonString +=(WiFi. BSSIDstr(j));

jsonString +="\", \n";

jsonString +="\"signalStrength\": ";

jsonString += WiFi. RSSI(j);

jsonString += "\n";

se (j < n - 1)

{

jsonString +="}, \n";

}

altro

{

jsonString +="}\n";

}

}

jsonString += ("]\n");

jsonString += ("}\n");

//--------------------------------------------------------------------

Serial.println("");

client WiFiClientSecure;

//Connettiti al client ed effettua la chiamata API

Serial.print("Richiesta URL: ");

// ---- Ottieni la chiave API di Google Maps qui, link:

Serial.println("https://" + (String)Host + thisPage +"METTI IL TUO-GOOGLE-MAPS-API-KEY-QUI");

Serial.println(" ");

if (client.connect(Host, 443)) {

Serial.println("Connesso");

client.println("POST" + thisPage + key +"

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);

}

//Leggi e analizza tutte le righe di

la risposta dal server

mentre (client.disponibile()) {

Stringa riga =client.readStringUntil('\r');

if (more_text) {

Serial.print(line);

}

JsonObject& root =jsonBuffer.parseObject(line);

if (root.success()) {

latitudine =radice["posizione"]["lat"];

longitudine =root["location"]["lng"];

accuratezza = root["accuratezza"];

}

}

Serial.println("chiusura connessione");

Serial.println();

cliente.stop();

Serial.print("Latitudine =");

Serial.println(latitudine, 6);

Serial.print("Longitudine =");

Serial.println(longitudine, 6);

Serial.print("Precisione =");

Serial.println(precisione);

ritardo (10000);

Serial.println();

Serial.println("Riavvio…");

Serial.println();

ritardo (2000);

}

Consigliato: