Innholdsfortegnelse:

GEOLOACATION: 5 trinn
GEOLOACATION: 5 trinn

Video: GEOLOACATION: 5 trinn

Video: GEOLOACATION: 5 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
GEOLOACATION
GEOLOACATION

Det er mitt sommerpraksisprosjekt. Jeg overrasker virkelig når jeg hører at vi kan spore plassering av alle enheter uten å bruke GPS -modul bare ved hjelp av NodeMCU. Gjennom dette kan vi spore hvilken som helst enhet. Du overrasker også hvordan vi kan spore enheten ved hjelp av bare WiFi. Her er sorteringsbeskrivelsen for å forstå det.

  • · Det skanner nesten all WiFi.
  • · Send denne enhetsplasseringen til Google ved hjelp av Google API
  • · I henhold til dette finner du enhetens plassering
  • · Du har en sterk nettverkstilkobling for dette prosjektet.

Trinn 1: Deler og verktøy

Deler

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

Verktøy

Arduino IDE med NodeMcu 1.0 12E -kort

Google API

Trinn 2: Finn Google API

Finn Google API
Finn Google API
Finn Google API
Finn Google API
Finn Google API
Finn Google API
  • Åpne nettleseren din og skriv inn: console.developer.google.com
  • Lag et nytt prosjekt
  • Etter Opprett et nytt prosjekt klikker du på legitimasjon
  • Klikk på API -nøkkel
  • API -nøkkelen din er generert

    For lett forståelse, se følgende bilde |>

Trinn 3: Konfigurer NodeMCu på Arduino IDE

Oppsett NodeMCu på Arduino IDE
Oppsett NodeMCu på Arduino IDE
Oppsett NodeMCu på Arduino IDE
Oppsett NodeMCu på Arduino IDE
Oppsett NodeMCu på Arduino IDE
Oppsett NodeMCu på Arduino IDE
  • Last ned Arduino IDE fra følgende lenke:- https:// www. Main/Programvare arduino.cc/en/
  • Legg til Node MCu -bord på Arduino IDE
  • For å laste opp kode på NodeMCU må du legge til NodeMCu -kortet på ARDUINO IDE.

    • GÅ til fil og preferanse i Arduino IDE
    • Og i tilleggsstyret, kopier du følgende lenke
    • arduino.esp8266.com/stable/package_esp8266c…
    • og klikk OK
    • Brettet er lastet ned
    • Gå til verktøyene og tavlen og velg NodeMCU 1.0 12E
    • Se avobe -bildet for enkel forståelse

Trinn 4: Last ned ArduinoJson -biblioteket

Last ned ArduinoJson -biblioteket
Last ned ArduinoJson -biblioteket
  • Gå til
  • Sketch Include Library Administrer bibliotek

    Skriv Arduino Json i søkeboksen

    Last ned den siste versjonen av ArduinoJson bibliotek

    etter nedlasting av biblioteket, klikk på Lukk

    Legg til bibliotek fra

    SketchincludeLibraryArduinoJson

Trinn 5: Program

Last opp følgende program på NodeMCU -kortet. og se plasseringen av enheten (NodeMCU 1.0 12E -kort) på seriell skjerm.

#inkludere

#inkludere

#inkludere

char myssid = "SSID" din; // nettverks -SSID (navn)

char mypass = "Ditt passord"; // nettverkspassordet ditt

// Legitimasjon for Google GeoLocation API …

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

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

// --- Få en Google maps ap-nøkkel her:

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

String key = "Google API -nøkkelen din"; // Finn fra trinn 2

Instruksjon

int status = WL_IDLE_STATUS;

String jsonString = "{ n";

dobbel breddegrad = 0,0;

dobbel lengdegrad = 0,0;

dobbel nøyaktighet = 0,0;

int more_text = 1; // satt til 1 for mer feilsøkingsutdata

ugyldig oppsett () {

Serial.begin (9600);

Serial.println ("Start");

// Sett WiFi til stasjonsmodus og

koble fra en AP hvis den tidligere var tilkoblet

WiFi.mode (WIFI_STA);

WiFi. Koble fra ();

forsinkelse (100);

Serial.println ( Oppsett

ferdig );

// Vi starter med å koble til en

WiFi -nettverk

Serial.print ( Koble til

);

Serial.println (myssid);

WiFi. Begynner (myssid, mypass);

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

forsinkelse (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {

røye bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("skannestart");

// WiFi.scanNetworks kommer tilbake

antall nettverk funnet

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

hvis (n == 0)

Serial.println ("ingen nettverk funnet");

ellers

{

Serial.print (n);

Serial.println ("nettverk funnet …");

hvis (more_text) {

// Skriv ut den formaterte json …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // Dette er en ekte MCC i Storbritannia

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // og en ekte britisk MNC

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

Serial.println ("\" transportør / ": \" Vodafone / ","); // tilknyttet Vodafone

Serial.println ("\" cellTowers / ": ["); // Jeg rapporterer ikke noen celletårn

Serial.println ("],");

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

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

hvis (i <n - 1)

{

Serial.println ("}");

}

ellers

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// bygg nå jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // Dette er en ekte MCC i Storbritannia

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // og en ekte britisk MNC

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

jsonString += "\" transportør / ": \" Vodafone / ", / n"; // tilknyttet Vodafone

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

hvis (j <n - 1)

{

jsonString += "}, / n";

}

ellers

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure -klient;

// Koble til klienten og ring api

Serial.print ("Be om URL:");

// ---- Få Google Maps Api Key her, lenke:

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

Serial.println ("");

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

Serial.println ("Tilkoblet");

client.println ("POST" + denne siden + nøkkel + "HTTP/1.1");

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

client.println ("Tilkobling: lukk");

client.println ("Innholdstype: applikasjon/json");

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

client.print ("Content-Length:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

forsinkelse (500);

}

// Les og analyser alle linjene i

svaret fra serveren

while (client.available ()) {

String line = client.readStringUntil ('\ r');

hvis (more_text) {

Serial.print (linje);

}

JsonObject & root = jsonBuffer.parseObject (line);

hvis (root.success ()) {

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

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

precision = root ["precision"];

}

}

Serial.println ("lukke tilkobling");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (breddegrad, 6);

Serial.print ("Lengdegrad =");

Serial.println (lengdegrad, 6);

Serial.print ("Nøyaktighet =");

Serial.println (nøyaktighet);

forsinkelse (10000);

Serial.println ();

Serial.println ("Omstart …");

Serial.println ();

forsinkelse (2000);

}

Anbefalt: