Inhoudsopgave:

GEOLOACATIE: 5 stappen
GEOLOACATIE: 5 stappen

Video: GEOLOACATIE: 5 stappen

Video: GEOLOACATIE: 5 stappen
Video: 👍1.5 TDCI - прекрасный французский дизель для Ford. Какие недостатки в нём есть? 2024, November
Anonim
GELOACATIE
GELOACATIE

Het is mijn zomerstageproject. Ik verbaas me echt als ik hoor dat we elk apparaat kunnen traceren zonder de GPS-module te gebruiken, alleen met NodeMCU. Hierdoor kunnen we elk apparaat traceren. Je verbaast je ook hoe we apparaten kunnen traceren met alleen wifi. Hier zijn de soortbeschrijving om het te begrijpen.

  • · Het scant je bijna alle wifi.
  • · Stuur deze apparaatlocatie naar Google via Google API
  • · Volgens dit is het de locatie van uw apparaat
  • · Je hebt een sterke netwerkverbinding voor dit project.

Stap 1: Onderdelen & gereedschap

Onderdelen

  • NodeMCU (ESP8266 1.0 12E)
  • USB-kabel

Gereedschap

Arduino IDE met NodeMcu 1.0 12E-kaart

Google-API

Stap 2: Zoek de Google API

Zoek Google API
Zoek Google API
Zoek Google API
Zoek Google API
Zoek Google API
Zoek Google API
  • Open uw browser en typ: console.developer.google.com
  • Een nieuw project maken
  • Klik na het maken van een nieuw project op referentie
  • Klik op API-sleutel
  • Uw API-sleutel is gegenereerd

    Voor gemakkelijk begrip zie de volgende afbeelding |>

Stap 3: NodeMCu instellen op Arduino IDE

NodeMCu instellen op Arduino IDE
NodeMCu instellen op Arduino IDE
NodeMCu instellen op Arduino IDE
NodeMCu instellen op Arduino IDE
NodeMCu instellen op Arduino IDE
NodeMCu instellen op Arduino IDE
  • Download Arduino IDE via de volgende link: - https://www. Hoofd/Software arduino.cc/en/
  • Node MCu-bord toevoegen aan Arduino IDE
  • Voor het uploaden van code op NodeMCU moet je het NodeMCu-bord toevoegen aan ARDUINO IDE.

    • GA naar bestand & voorkeur in Arduino IDE
    • En kopieer in de sectie Extra Bestuursmanager de volgende link:
    • arduino.esp8266.com/stable/package_esp8266c…
    • en klik op OK
    • Het bord is gedownload
    • Ga naar de tools en board en selecteer NodeMCU 1.0 12E
    • Zie de avobe-afbeelding voor gemakkelijk begrip!

Stap 4: Download de ArduinoJson-bibliotheek

ArduinoJson-bibliotheek downloaden
ArduinoJson-bibliotheek downloaden
  • Ga naar de
  • Sketch Bibliotheek opnemen Bibliotheek beheren

    Typ Arduino Json in zoekvak

    Download de nieuwste versie van de ArduinoJson-bibliotheek

    klik na het downloaden van de bibliotheek op sluiten

    Bibliotheek toevoegen van

    SketchincludeBibliotheekArduinoJson

Stap 5: Programma

Upload het volgende programma op het NodeMCU-bord. en zie de locatie van uw apparaat (NodeMCU 1.0 12E-kaart) op de seriële monitor.

#erbij betrekken

#erbij betrekken

#erbij betrekken

char myssid = "Uw SSID"; // uw netwerk-SSID (naam)

char mypass = "Uw wachtwoord"; // uw netwerkwachtwoord

//Inloggegevens voor Google GeoLocation API…

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

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

// --- Download hier een Google Maps ap-sleutel:

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

String key = "Uw Google API-sleutel ";//Find from step2

Instructie

int-status = WL_IDLE_STATUS;

String jsonString = "{n";

dubbele breedtegraad = 0,0;

dubbele lengtegraad = 0,0;

dubbele nauwkeurigheid = 0,0;

int more_text = 1; // ingesteld op 1 voor meer foutopsporingsuitvoer

ongeldige setup() {

Serieel.begin(9600);

Serial.println("Start");

// Stel WiFi in op stationsmodus en

verbreek de verbinding met een AP als deze eerder was verbonden

WiFi.modus (WIFI_STA);

WiFi.verbinding verbreken();

vertraging (100);

Serial.println( Setup

gedaan );

// We beginnen door verbinding te maken met a

WiFi-netwerk

Serial.print( Verbinding maken met

);

Serial.println(myssid);

WiFi.begin(myssid, mypass);

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

vertraging (500);

Serieel.print(".");

}

Serieel.println(".");

}

lege lus() {

char bssid[6];

DynamischeJsonBuffer jsonBuffer;

Serial.println("scan start");

// WiFi.scanNetworks komt terug

het aantal gevonden netwerken

int n = WiFi.scanNetworks();

Serial.println("scandone");

als (n == 0)

Serial.println("geen netwerken gevonden");

anders

{

Serieafdruk(n);

Serial.println ("netwerken gevonden…");

if (more_text) {

// Print de geformatteerde json uit…

Serieel.println("{");

Serial.println("\"homeMobileCountryCode\":234, "); // dit is een echte UK MCC

Serial.println("\"homeMobileNetworkCode\":27, "); // en een echte Britse MNC

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

Serial.println("\"carrier\":\"Vodafone\", "); // verbonden aan Vodafone

Serial.println("\"cellTowers\": ["); // Ik meld geen zendmasten

Serieel.println("], ");

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

voor (int i = 0; ik < n; ++i)

{

Serieel.println("{");

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

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

Serieel.println("\", ");

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

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

als (i < n - 1)

{

Serieel.println("}, ");

}

anders

{

Serieel.println("}");

}

}

Serieel.println("]");

Serieel.println("}");

}

Serieel.println(" ");

}

// bouw nu de jsonString…

jsonString = "{n";

jsonString +="\"homeMobileCountryCode\": 234, \n"; // dit is een echte UK MCC

jsonString +="\"homeMobileNetworkCode\": 27, \n"; // en een echte Britse MNC

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

jsonString +="\"carrier\": \"Vodafone\", \n"; // geassocieerd met Vodafone

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

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

{

jsonString += "{n";

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

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

jsonString +="\", \n";

jsonString +="\"signaalsterkte\": ";

jsonString += WiFi. RSSI(j);

jsonString += "\n";

als (j < n - 1)

{

jsonString +="}, \n";

}

anders

{

jsonString +="}\n";

}

}

jsonString += ("]\n");

jsonString += ("}\n");

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

Serieel.println("");

WiFiClientSecure-client;

// Maak verbinding met de client en voer de api-oproep

Serial.print("Verzoek URL: ");

// ---- Download hier de Google Maps Api Key, Link:

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

Serieel.println(" ");

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

Serial.println("Verbonden");

client.println("POST" + dezePagina + sleutel + "HTTP/1.1");

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

client.println("Verbinding: sluiten");

client.println ("Inhoudstype: applicatie/json");

client.println ("Gebruiker-agent: Arduino/1.0");

client.print ("Inhoudslengte: ");

client.println(jsonString.length());

klant.println();

client.print(jsonString);

vertraging (500);

}

//Lees en ontleden alle regels van

het antwoord van de server

while (client.available()) {

Stringregel =client.readStringUntil('\r');

if (more_text) {

Serial.print(regel);

}

JsonObject& root =jsonBuffer.parseObject(regel);

if (root.success()) {

latitude =root["locatie"]["lat"];

longitude =root["locatie"]["lng"];

nauwkeurigheid = wortel ["nauwkeurigheid"];

}

}

Serial.println("verbinding sluiten");

Serieel.println();

klant.stop();

Serial.print("Latitude =");

Serial.println (breedtegraad, 6);

Serial.print("Lengte =");

Serial.println (lengtegraad, 6);

Serial.print("Nauwkeurigheid =");

Serial.println(nauwkeurigheid);

vertraging (10000);

Serieel.println();

Serial.println("Herstarten…");

Serieel.println();

vertraging (2000);

}

Aanbevolen: