Sadržaj:

GEOLOAKACIJA: 5 koraka
GEOLOAKACIJA: 5 koraka

Video: GEOLOAKACIJA: 5 koraka

Video: GEOLOAKACIJA: 5 koraka
Video: Джейми Оливер I продолжаем готовить I Серия 5 2024, Studeni
Anonim
GEOLOAKACIJA
GEOLOAKACIJA

To je moj projekt ljetne prakse. Zaista sam iznenađen kad čujem da možemo pratiti lokaciju bilo kojeg uređaja bez korištenja GPS modula samo pomoću NodeMCU -a. Ovim putem možemo pratiti bilo koji uređaj. Iznenađujete i kako možemo pratiti uređaj koristeći samo WiFi. Evo opisa sortiranja da biste to razumjeli.

  • · To je Skeniranje gotovo svih vaših WiFi.
  • · Pošaljite ovu lokaciju uređaja Googleu pomoću Google API -ja
  • · Prema ovome, locirajte lokaciju vašeg uređaja
  • · Imate jaku mrežnu vezu za ovaj projekt.

Korak 1: Dijelovi i alat

Dijelovi

  • NodeMCU (ESP8266 1.0 12E)
  • USB kabl

Alati

Arduino IDE s NodeMcu 1.0 12E pločom

Google API

2. korak: Pronađite Google API

Pronađite Google API
Pronađite Google API
Pronađite Google API
Pronađite Google API
Pronađite Google API
Pronađite Google API
  • Otvorite svoj preglednik i upišite: console.developer.google.com
  • Izradite novi projekt
  • Nakon stvaranja novog projekta kliknite vjerodajnice
  • Kliknite na API ključ
  • Vaš API ključ je generiran

    Za lakše razumijevanje pogledajte sljedeću sliku |>

Korak 3: Postavite NodeMCu na Arduino IDE

Postavite NodeMCu na Arduino IDE
Postavite NodeMCu na Arduino IDE
Postavite NodeMCu na Arduino IDE
Postavite NodeMCu na Arduino IDE
Postavite NodeMCu na Arduino IDE
Postavite NodeMCu na Arduino IDE
  • Preuzmite Arduino IDE sa sljedeće veze:- https:// www. Glavna/Softver arduino.cc/en/
  • Dodajte Node MCu ploču na Arduino IDE
  • Za učitavanje koda na NodeMCU morate dodati ploču NodeMCu na ARDUINO IDE.

    • Idite na datoteku i postavke u Arduino IDE
    • U odjeljku Dodatni upravitelj odbora kopirajte sljedeću vezu
    • arduino.esp8266.com/stable/package_esp8266c…
    • i kliknite U redu
    • Ploča je preuzeta
    • Idite na alate i ploču i odaberite NodeMCU 1.0 12E
    • Za lakše razumijevanje pogledajte sliku avoka

Korak 4: Preuzmite ArduinoJson knjižnicu

Preuzmite ArduinoJson knjižnicu
Preuzmite ArduinoJson knjižnicu
  • Idite na
  • Skica Uključi knjižnicu Upravljaj knjižnicom

    U okvir za pretraživanje upišite Arduino Json

    Preuzmite najnoviju verziju ArduinoJson knjižnice

    nakon preuzimanja knjižnice kliknite zatvori

    Dodajte biblioteku iz

    SketchincludeLibraryArduinoJson

Korak 5: Program

Postavite sljedeći program na ploču NodeMCU. i vidjeti mjesto vašeg uređaja (ploča NodeMCU 1.0 12E) na serijskom monitoru.

#uključi

#uključi

#uključi

char myssid = "Vaš SSID"; // vaš mrežni SSID (naziv)

char mypass = "Vaša lozinka"; // vašu mrežnu lozinku

// Vjerodajnice za Google GeoLocation API …

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

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

// --- Ovdje nabavite ap ključ Google google maps:

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

String key = "Vaš Google API ključ"; // Pronađi od 2. koraka

Uputa

int status = WL_IDLE_STATUS;

Niz jsonString = "{ n";

dvostruka zemljopisna širina = 0,0;

dvostruka zemljopisna dužina = 0,0;

dvostruka točnost = 0,0;

int more_text = 1; // postavljeno na 1 za više ispisa pogrešaka

void setup () {

Serial.begin (9600);

Serial.println ("Start");

// Postavite WiFi na način rada stanice i

isključite pristupnu točku ako je prethodno bila spojena

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

kašnjenje (100);

Serial.println ( Postavljanje

učinjeno );

// Počinjemo povezivanjem na a

WiFi mreža

Serial.print ( Povezivanje s

);

Serial.println (myssid);

WiFi.počnite (myssid, mypass);

while (WiFi.status ()! = WL_CONNECTED) {{100} {101}

kašnjenje (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {{100} {101}

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("početak skeniranja");

// WiFi.scanNetworks će se vratiti

broj pronađenih mreža

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

ako (n == 0)

Serial.println ("nisu pronađene mreže");

drugo

{

Serial.print (n);

Serial.println ("mreže pronađene …");

if (više_teksta) {

// Ispis formatiranog jsona …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // ovo je pravi UKC MC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // i pravi UK MNC

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

Serial.println ("\" operater / ": \" Vodafone / ","); // povezan s Vodafonom

Serial.println ("\" cellTowers / ": ["); // Ne prijavljujem nikakve ćelijske tornjeve

Serial.println ("],");

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

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

ako (i <n - 1)

{

Serial.println ("},");

}

drugo

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// sada sastavite jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // ovo je pravi UKC MC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // i pravi UK MNC

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

jsonString += "\" operater / ": \" Vodafone / ", / n"; // povezan s Vodafonom

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

ako (j <n - 1)

{

jsonString += "}, / n";

}

drugo

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure klijent;

// Povežite se s klijentom i uputite api poziv

Serial.print ("Traženje URL -a:");

// ---- Ovdje nabavite Api ključ Google karata, veza:

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

Serial.println ("");

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

Serial.println ("Povezano");

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

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

client.println ("Veza: zatvori");

client.println ("Vrsta sadržaja: aplikacija/json");

client.println ("Korisnički agent: Arduino/1.0");

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

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

kašnjenje (500);

}

// Pročitajte i raščlanite sve retke

odgovor sa servera

while (client.available ()) {

Linija niza = client.readStringUntil ('\ r');

if (više_teksta) {

Serijski.ispis (redak);

}

JsonObject & root = jsonBuffer.parseObject (linija);

if (root.success ()) {{100} {101}

zemljopisna širina = korijen ["lokacija"] ["lat"];

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

točnost = korijen ["točnost"];

}

}

Serial.println ("zatvaranje veze");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (zemljopisna širina, 6);

Serial.print ("Longitude =");

Serial.println (zemljopisna dužina, 6);

Serial.print ("Točnost =");

Serial.println (točnost);

kašnjenje (10000);

Serial.println ();

Serial.println ("Ponovno pokretanje …");

Serial.println ();

odgoda (2000);

}

Preporučeni: