Indholdsfortegnelse:

GEOLOACATION: 5 trin
GEOLOACATION: 5 trin

Video: GEOLOACATION: 5 trin

Video: GEOLOACATION: 5 trin
Video: OSINT At Home #5 – Creating a panorama from a video for geolocation 2024, Juli
Anonim
GEOLOACATION
GEOLOACATION

Det er mit sommerpraktikprojekt. Jeg overrasker virkelig, når jeg hører, at vi kan spore placeringen af enhver enhed uden at bruge GPS -modul kun ved hjælp af NodeMCU. Gennem dette kan vi spore enhver enhed. Du overrasker også, hvordan vi kan spore enheden ved hjælp af kun WiFi. Her er sorteringsbeskrivelsen for at forstå det.

  • · Det er Scan din næsten alle WiFi.
  • · Send denne enhedsplacering til Google ved hjælp af Google API
  • · I henhold til dette finder du din enheds placering
  • · Du har en stærk netværksforbindelse til dette projekt.

Trin 1: Dele og værktøj

Dele

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

Værktøjer

Arduino IDE med NodeMcu 1.0 12E Board

Google API

Trin 2: Find Google API

Find Google API
Find Google API
Find Google API
Find Google API
Find Google API
Find Google API
  • Åbn din browser, og skriv: console.developer.google.com
  • Opret et nyt projekt
  • Efter Opret et nyt projekt klik på legitimationsoplysninger
  • Klik på API -nøgle
  • Din API -nøgle er blevet genereret

    For let forståelse se følgende billede |>

Trin 3: Konfigurer NodeMCu på Arduino IDE

Opsætning NodeMCu på Arduino IDE
Opsætning NodeMCu på Arduino IDE
Opsætning NodeMCu på Arduino IDE
Opsætning NodeMCu på Arduino IDE
Opsætning NodeMCu på Arduino IDE
Opsætning NodeMCu på Arduino IDE
  • Download Arduino IDE fra følgende link:- https:// www. Main/Software arduino.cc/en/
  • Tilføj Node MCu -bord på Arduino IDE
  • For at uploade kode på NodeMCU skal du tilføje NodeMCu -kortet på ARDUINO IDE.

    • GÅ til fil og præference i Arduino IDE
    • Og kopier følgende link i Yderligere bestyrelsesmanagersektion
    • arduino.esp8266.com/stable/package_esp8266c…
    • og klik på Ok
    • Tavlen downloades
    • Gå til værktøjerne og tavlen, og vælg NodeMCU 1.0 12E
    • Se avobe -billedet for let forståelse

Trin 4: Download ArduinoJson -bibliotek

Hent ArduinoJson -bibliotek
Hent ArduinoJson -bibliotek
  • Gå til
  • Skitse Inkluder bibliotek Administrer bibliotek

    Skriv Arduino Json i søgefeltet

    Download den nyeste version af ArduinoJson bibliotek

    efter download af biblioteket klik på luk

    Tilføj bibliotek fra

    SketchincludeLibraryArduinoJson

Trin 5: Programmer

Upload følgende program på NodeMCU board. og se din enheds placering (NodeMCU 1.0 12E -kort) på seriel skærm.

#omfatte

#omfatte

#omfatte

char myssid = "Dit SSID"; // dit netværks -SSID (navn)

char mypass = "Din adgangskode"; // din netværksadgangskode

// Legitimationsoplysninger til Google GeoLocation API …

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

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

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

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

String key = "Din Google API -nøgle"; // Find fra trin2

Instruktion

int status = WL_IDLE_STATUS;

String jsonString = "{ n";

dobbelt breddegrad = 0,0;

dobbelt længdegrad = 0,0;

dobbelt nøjagtighed = 0,0;

int more_text = 1; // indstillet til 1 for mere fejlfindingsoutput

ugyldig opsætning () {

Serial.begin (9600);

Serial.println ("Start");

// Indstil WiFi til stationstilstand og

afbryde forbindelsen til et AP, hvis det tidligere var tilsluttet

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

forsinkelse (100);

Serial.println ( Opsætning

Færdig );

// Vi starter med at oprette forbindelse til et

WiFi -netværk

Serial.print ( Opretter forbindelse til

);

Serial.println (myssid);

WiFi. Begyndt (myssid, mypass);

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

forsinkelse (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("scannestart");

// WiFi.scanNetworks vender tilbage

antallet af fundne netværk

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

hvis (n == 0)

Serial.println ("der blev ikke fundet netværk");

andet

{

Serial.print (n);

Serial.println ("netværk fundet …");

hvis (more_text) {

// Udskriv den formaterede json …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // dette er en ægte britisk MCC

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

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

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

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

Serial.println ("],");

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

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

{

Serial.println ("{");

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

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

Serial.println ("\", ");

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

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

hvis (i <n - 1)

{

Serial.println ("},");

}

andet

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// byg nu jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // dette er en ægte britisk MCC

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

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

jsonString += "\" transportør / ": \" Vodafone / ", / n"; // forbundet med 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";

}

andet

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure klient;

// Opret forbindelse til klienten, og foretag api -opkaldet

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

// ---- Hent Google Maps Api-nøgle her, link:

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

Serial.println ("");

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

Serial.println ("Tilsluttet");

client.println ("POST" + denne side + nøgle + "HTTP/1.1");

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

client.println ("Forbindelse: luk");

client.println ("Indholdstype: applikation/json");

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

client.print ("Indholdslængde:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

forsinkelse (500);

}

// Læs og analyser alle linjer af

svaret fra serveren

mens (client.available ()) {

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

hvis (more_text) {

Serial.print (linje);

}

JsonObject & root = jsonBuffer.parseObject (linje);

hvis (root.success ()) {

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

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

precision = root ["precision"];

}

}

Serial.println ("lukning af forbindelse");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (breddegrad, 6);

Serial.print ("Longitude =");

Serial.println (længdegrad, 6);

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

Serial.println (nøjagtighed);

forsinkelse (10000);

Serial.println ();

Serial.println ("Genstart …");

Serial.println ();

forsinkelse (2000);

}

Anbefalede: