Inhaltsverzeichnis:

GEOLOACATION: 5 Schritte
GEOLOACATION: 5 Schritte

Video: GEOLOACATION: 5 Schritte

Video: GEOLOACATION: 5 Schritte
Video: Garmin fēnix 5 und 5S Tutorial – Erste Schritte 2024, November
Anonim
GEOLOAKATION
GEOLOAKATION

Es ist mein Sommerpraktikumsprojekt. Ich bin wirklich überrascht, wenn ich höre, dass wir den Standort jedes Geräts verfolgen können, ohne das GPS-Modul nur mit NodeMCU zu verwenden. Dadurch können wir jedes Gerät verfolgen. Sie sind auch überrascht, wie wir Geräte nur mit WiFi verfolgen können. Hier sind die Sortierbeschreibungen, um es zu verstehen.

  • · Es scannt fast Ihr gesamtes WLAN.
  • · Diesen Gerätestandort über die Google API an Google senden
  • · Demnach ist es Ihren Gerätestandort zu lokalisieren
  • · Sie haben eine starke Netzwerkverbindung für dieses Projekt.

Schritt 1: Teile & Werkzeug

Teile

  • KnotenMCU (ESP8266 1.0 12E)
  • USB-Kabel

Werkzeuge

Arduino-IDE mit NodeMcu 1.0 12E-Board

Google-API

Schritt 2: Google API finden

Google-API finden
Google-API finden
Google-API finden
Google-API finden
Google-API finden
Google-API finden
  • Öffnen Sie Ihren Browser und geben Sie ein: console.developer.google.com
  • Erstellen Sie ein neues Projekt
  • Klicken Sie nach Erstellen eines neuen Projekts auf Anmeldeinformationen
  • Klicken Sie auf API-Schlüssel
  • Ihr API-Schlüssel wurde generiert

    Zum leichteren Verständnis siehe folgendes Bild |>

Schritt 3: NodeMCu auf Arduino IDE einrichten

NodeMCu auf Arduino IDE einrichten
NodeMCu auf Arduino IDE einrichten
NodeMCu auf Arduino IDE einrichten
NodeMCu auf Arduino IDE einrichten
NodeMCu auf Arduino IDE einrichten
NodeMCu auf Arduino IDE einrichten
  • Laden Sie Arduino IDE von folgendem Link herunter: - https://www. Main/Software arduino.cc/de/
  • Node MCu-Board auf Arduino IDE hinzufügen
  • Um Code auf NodeMCU hochzuladen, müssen Sie das NodeMCu-Board auf der ARDUINO IDE hinzufügen.

    • Gehen Sie zu Datei & Einstellungen in Arduino IDE
    • Und kopieren Sie im Abschnitt Zusätzliche Board-Manager den folgenden Link
    • arduino.esp8266.com/stable/package_esp8266c…
    • und klicke auf Ok
    • Das Board wird heruntergeladen
    • Gehen Sie zu Tools und Board und wählen Sie NodeMCU 1.0 12E
    • Sehen Sie sich das Avobe-Bild zum leichteren Verständnis an

Schritt 4: ArduinoJson-Bibliothek herunterladen

ArduinoJson-Bibliothek herunterladen
ArduinoJson-Bibliothek herunterladen
  • Gehe zum
  • Skizze Bibliothek einbeziehen Bibliothek verwalten

    Geben Sie Arduino Json in das Suchfeld ein

    Laden Sie die neueste Version der ArduinoJson-Bibliothek herunter

    Klicken Sie nach dem Herunterladen der Bibliothek auf Schließen

    Bibliothek hinzufügen aus

    SketchincludeLibraryArduinoJson

Schritt 5: Programm

Laden Sie das folgende Programm auf die NodeMCU-Platine hoch. und sehen Sie den Standort Ihres Geräts (NodeMCU 1.0 12E-Platine) auf dem seriellen Monitor.

#enthalten

#enthalten

#enthalten

char myssid = "Ihre SSID"; // Ihre Netzwerk-SSID (Name)

char mypass = "Ihr Passwort"; // Ihr Netzwerk-Passwort

//Anmeldedaten für die Google GeoLocation API…

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

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

// --- Holen Sie sich hier einen Google Maps-App-Schlüssel:

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

String key = "Ihr Google API-Schlüssel";//Find from step2

Anweisung

int-Status = WL_IDLE_STATUS;

String jsonString = "{n";

doppelter Breitengrad = 0,0;

doppelter Längengrad = 0,0;

doppelte Genauigkeit = 0,0;

int more_text = 1; // auf 1 setzen für mehr Debug-Ausgabe

Leere Einrichtung () {

Serial.begin (9600);

Serial.println ("Start");

// WLAN auf Stationsmodus setzen und

Trennen Sie sich von einem AP, wenn dieser zuvor verbunden war

WiFi.mode(WIFI_STA);

WiFi.disconnect();

Verzögerung (100);

Serial.println( Setup

getan );

// Wir beginnen mit der Verbindung zu a

WLAN-Netzwerk

Serial.print( Verbinden mit

);

Serial.println (myssid);

WiFi.begin(myssid, mypass);

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

Verzögerung (500);

Serial.print(".");

}

Serial.println(".");

}

Leere Schleife () {

char bssid[6];

DynamicJsonBuffer jsonBuffer;

Serial.println("Scanstart");

// WiFi.scanNetworks wird zurückkehren

die Anzahl der gefundenen Netzwerke

int n = WiFi.scanNetworks();

Serial.println("scandone");

wenn (n == 0)

Serial.println ("keine Netzwerke gefunden");

anders

{

Serial.print (n);

Serial.println("Netzwerke gefunden…");

if (more_text) {

// Drucken Sie das formatierte JSON aus…

Serial.println("{");

Serial.println("\"homeMobileCountryCode\":234, "); // das ist ein echter UK MCC

Serial.println("\"homeMobileNetworkCode\":27, "); // und ein echter britischer MNC

Serial.println("\"radioType\":\"gsm\", "); //für GSM

Serial.println("\"Träger\":\"Vodafone\", "); //verbunden mit Vodafone

Serial.println("\"cellTowers\": ["); // Ich melde keine Mobilfunkmasten

Serial.println("], ");

Serial.println("\"wifiAccessPoints\": [");

für (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));

wenn (i < n - 1)

{

Serial.println("}, ");

}

anders

{

Serial.println("}");

}

}

Serial.println("]");

Serial.println("}");

}

Serial.println(" ");

}

// baue jetzt den jsonString…

jsonString = "{n";

jsonString +="\"homeMobileCountryCode\": 234, \n"; // das ist ein echter UK MCC

jsonString +="\"homeMobileNetworkCode\": 27, \n"; // und ein echter britischer MNC

jsonString +="\"radioType\": \"gsm\", \n"; // für gsm

jsonString +="\"Träger\": \"Vodafone\", \n"; // mit Vodafone verbunden

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

für (int j = 0; j < n; ++j)

{

jsonString += "{n";

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

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

jsonString +="\", \n";

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

jsonString += WiFi. RSSI(j);

jsonString += "\n";

wenn (j < n - 1)

{

jsonString +="}, \n";

}

anders

{

jsonString +="}\n";

}

}

jsonString += ("]\n");

jsonString += ("}\n");

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

Serial.println("");

WiFiClientSecure-Client;

// Verbinden Sie sich mit dem Client und machen Sie den API-Aufruf

Serial.print ("Anfordernde URL: ");

// ---- Holen Sie sich den Google Maps Api Key hier, Link:

Serial.println ("https://" + (String)Host + thisPage +"PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");

Serial.println(" ");

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

Serial.println("Verbunden");

client.println("POST" + thisPage + key + "HTTP/1.1");

client.println("Host:" + (String)Host);

client.println("Verbindung: schließen");

client.println("Inhaltstyp: Anwendung/json");

client.println("Benutzer-Agent: Arduino/1.0");

client.print("Inhaltslänge: ");

client.println(jsonString.length());

client.println();

client.print (jsonString);

Verzögerung (500);

}

// Lesen und analysieren Sie alle Zeilen von

die Antwort vom Server

while (client.verfügbar()) {

String-Zeile =client.readStringUntil('\r');

if (more_text) {

Serial.print (Zeile);

}

JsonObject& root =jsonBuffer.parseObject(line);

if (root.success()) {

Breite = root["location"]["lat"];

Längengrad = root["location"]["lng"];

Genauigkeit = root["Genauigkeit"];

}

}

Serial.println ("Verbindung schließen");

Serial.println();

client.stop();

Serial.print ("Breitengrad =");

Serial.println (Breitengrad, 6);

Serial.print ("Längengrad =");

Serial.println (Längengrad, 6);

Serial.print ("Genauigkeit = ");

Serial.println (Genauigkeit);

Verzögerung (10000);

Serial.println();

Serial.println("Neustart…");

Serial.println();

Verzögerung (2000);

}

Empfohlen: