Satura rādītājs:

ĢEOLOAKCIJA: 5 soļi
ĢEOLOAKCIJA: 5 soļi

Video: ĢEOLOAKCIJA: 5 soļi

Video: ĢEOLOAKCIJA: 5 soļi
Video: Измена мужа. Стоит ли ставить геолокацию? 2024, Jūlijs
Anonim
ĢEOLOKĀCIJA
ĢEOLOKĀCIJA

Tas ir mans vasaras prakses projekts. Es patiešām brīnos, kad dzirdu, ka mēs varam izsekot jebkuras ierīces atrašanās vietai, neizmantojot GPS moduli, tikai izmantojot NodeMCU. Izmantojot šo, mēs varam izsekot jebkurai ierīcei. Jūs arī pārsteidzat, kā mēs varam izsekot ierīci, izmantojot tikai WiFi. Šeit ir veida apraksts, lai to saprastu.

  • · Tas skenē gandrīz visu WiFi.
  • · Nosūtiet šīs ierīces atrašanās vietu Google, izmantojot Google API
  • · Saskaņā ar to ir atrodama jūsu ierīces atrašanās vieta
  • · Jums ir spēcīgs tīkla savienojums šim projektam.

1. darbība: detaļas un rīks

Daļas

  • NodeMCU (ESP8266 1.0 12E)
  • USB kabelis

Rīki

Arduino IDE ar NodeMcu 1.0 12E plati

Google API

2. darbība. Atrodiet Google API

Atrodiet Google API
Atrodiet Google API
Atrodiet Google API
Atrodiet Google API
Atrodiet Google API
Atrodiet Google API
  • Atveriet pārlūkprogrammu un ierakstiet: console.developer.google.com
  • Izveidojiet jaunu projektu
  • Pēc jauna projekta izveidošanas noklikšķiniet uz akreditācijas datiem
  • Noklikšķiniet uz API atslēgas
  • Jūsu API atslēga ir ģenerēta

    Lai viegli saprastu, skatiet šo attēlu |>

3. darbība: iestatiet NodeMCu Arduino IDE

Iestatiet NodeMCu Arduino IDE
Iestatiet NodeMCu Arduino IDE
Iestatiet NodeMCu Arduino IDE
Iestatiet NodeMCu Arduino IDE
Iestatiet NodeMCu Arduino IDE
Iestatiet NodeMCu Arduino IDE
  • Lejupielādējiet Arduino IDE no šīs saites:- https:// www. Galvenā/Programmatūra arduino.cc/en/
  • Pievienojiet Node MCu plati Arduino IDE
  • Lai augšupielādētu kodu NodeMCU, jums jāpievieno NodeMCu tāfele ARDUINO IDE.

    • Dodieties uz failu un preferenci Arduino IDE
    • Un papildu padomes pārvaldības sadaļā nokopējiet šo saiti
    • arduino.esp8266.com/stable/package_esp8266c…
    • un noklikšķiniet uz Labi
    • Dēlis ir lejupielādēts
    • Dodieties uz rīkiem un tāfeli un atlasiet NodeMCU 1.0 12E
    • Skatiet avobe attēlu, lai to būtu vieglāk saprast

4. darbība: lejupielādējiet ArduinoJson bibliotēku

Lejupielādējiet ArduinoJson bibliotēku
Lejupielādējiet ArduinoJson bibliotēku
  • Dodieties uz
  • Skice Iekļaut bibliotēku Pārvaldīt bibliotēku

    Meklēšanas lodziņā ierakstiet Arduino Json

    Lejupielādējiet ArduinoJson bibliotēkas jaunāko versiju

    pēc bibliotēkas lejupielādes noklikšķiniet uz aizvērt

    Pievienot bibliotēku no

    SketchincludeLibraryArduinoJson

5. solis: programma

Augšupielādējiet šādu programmu NodeMCU panelī. un skatiet savas ierīces (NodeMCU 1.0 12E plate) atrašanās vietu sērijas monitorā.

#iekļaut

#iekļaut

#iekļaut

char myssid = "Tavs SSID"; // jūsu tīkla SSID (nosaukums)

char mypass = "Jūsu parole"; // jūsu tīkla parole

// Google GeoLocation API akreditācijas dati…

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

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

// --- Iegūstiet google maps ap atslēgu šeit:

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

String key = "Jūsu Google API atslēga"; // Atrast no 2. darbības

Instrukcija

int statuss = WL_IDLE_STATUS;

String jsonString = "{ n";

dubults platums = 0,0;

dubultā garums = 0,0;

dubultā precizitāte = 0,0;

int more_text = 1; // iestatiet uz 1, lai iegūtu vairāk atkļūdošanas rezultātu

void setup () {

Sērijas sākums (9600);

Serial.println ("Sākt");

// Iestatiet WiFi stacijas režīmā un

atvienojiet no piekļuves punkta, ja tas iepriekš bija pievienots

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

kavēšanās (100);

Serial.println ( Iestatīšana

darīts );

// Mēs sākam, izveidojot savienojumu ar a

WiFi tīkls

Serial.print ( Savienojuma izveide ar

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

kamēr (WiFi.status ()! = WL_CONNECTED) {

kavēšanās (500);

Sērijas nospiedums (".");

}

Sērijas.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("skenēšanas sākums");

// WiFi.scanNetworks atgriezīsies

atrasto tīklu skaits

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

ja (n == 0)

Serial.println ("netika atrasti tīkli");

citādi

{

Sērijas nospiedums (n);

Serial.println ("atrastie tīkli …");

ja (vairāk_teksts) {

// Izdrukājiet formatēto json…

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // tas ir īsts AK KC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // un īsts UK MNC

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

Serial.println ("\" pārvadātājs / ": \" Vodafone / ","); // saistīts ar Vodafone

Serial.println ("\" cellTowers / ": ["); // Es nepaziņoju par nevienu šūnu torni

Sērijas.println ("],");

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

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

{

Serial.println ("{");

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

Sērijas nospiedums (WiFi. BSSIDstr (i));

Serial.println ("\", ");

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

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

ja (i <n - 1)

{

Serial.println ("},");

}

citādi

{

Serial.println ("}");

}

}

Sērijas.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// tagad izveidojiet jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // tas ir īsts AK KC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // un īsts UK MNC

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

jsonString += "\" pārvadātājs / ": \" Vodafone / ", / n"; // saistīts ar Vodafone

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

ja (j <n - 1)

{

jsonString += "}, / n";

}

citādi

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure klients;

// Izveidojiet savienojumu ar klientu un veiciet api zvanu

Serial.print ("Pieprasot URL:");

// ---- Iegūstiet Google Maps Api atslēgu šeit, saite:

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

Serial.println ("");

ja (client.connect (resursdators, 443)) {

Serial.println ("Savienots");

client.println ("POST" + šī lapa + atslēga + "HTTP/1.1");

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

client.println ("Savienojums: aizvērt");

client.println ("Satura tips: lietojumprogramma/json");

client.println ("Lietotāja aģents: Arduino/1.0");

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

klients.println (jsonString.length ());

klients.println ();

client.print (jsonString);

kavēšanās (500);

}

// Izlasiet un parsējiet visas rindiņas

atbilde no servera

while (client.available ()) {

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

ja (vairāk_teksts) {

Serial.print (line);

}

JsonObject & root = jsonBuffer.parseObject (līnija);

ja (root.success ()) {

platums = sakne ["atrašanās vieta"] ["lat"];

garums = sakne ["atrašanās vieta"] ["lng"];

precizitāte = sakne ["precizitāte"];

}

}

Serial.println ("slēgšanas savienojums");

Sērijas.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (platums, 6);

Serial.print ("Garums =");

Sērijas.println (garums, 6);

Serial.print ("Precizitāte =");

Serial.println (precizitāte);

kavēšanās (10000);

Sērijas.println ();

Serial.println ("Restarting …");

Sērijas.println ();

kavēšanās (2000);

}

Ieteicams: