Sadržaj:

GEOLOAKACIJA: 5 koraka
GEOLOAKACIJA: 5 koraka

Video: GEOLOAKACIJA: 5 koraka

Video: GEOLOAKACIJA: 5 koraka
Video: По Законам Военного Времени 2. 5 Серия. Военно-историческая драма. StarMedia 2024, Juli
Anonim
GEOLOAKACIJA
GEOLOAKACIJA

To je moj projekt ljetne prakse. Zaista me iznenađuje 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.

  • · Skenirajte gotovo sve WiFi.
  • · Pošaljite Googleu ovu lokaciju uređaja pomoću Google API -ja
  • · Prema ovome, locirajte lokaciju vašeg uređaja
  • · Imate jaku mrežnu vezu za ovaj projekat.

Korak 1: Dijelovi i alat

Delovi

  • NodeMCU (ESP8266 1.0 12E)
  • USB kabel

Alati

Arduino IDE sa NodeMcu 1.0 12E pločom

Google API

Korak 2: 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
  • Kreirajte novi projekat
  • Nakon kreiranja novog projekta kliknite na 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 NodeMCu ploču 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
    • Pogledajte sliku avokada za lakše razumijevanje

Korak 4: Preuzmite ArduinoJson biblioteku

Preuzmite ArduinoJson biblioteku
Preuzmite ArduinoJson biblioteku
  • Idite na
  • Skica Uključi biblioteku Upravljaj bibliotekom

    U okvir za pretraživanje upišite Arduino Json

    Preuzmite najnoviju verziju ArduinoJson biblioteke

    nakon preuzimanja biblioteke kliknite zatvori

    Dodajte biblioteku iz

    SketchincludeLibraryArduinoJson

Korak 5: Program

Postavite sljedeći program na NodeMCU ploču. i pogledajte lokaciju svog uređaja (ploča NodeMCU 1.0 12E) na serijskom monitoru.

#include

#include

#include

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

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

Uputstvo

int status = WL_IDLE_STATUS;

Niz jsonString = "{ n";

dvostruka širina = 0,0;

dvostruka geografska dužina = 0,0;

dvostruka tač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 tačku ako je prethodno bila povezana

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

kašnjenje (100);

Serial.println ( Postavljanje

gotovo );

// Počinjemo povezivanjem na a

WiFi mreža

Serial.print ( Povezivanje sa

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

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

else

{

Serial.print (n);

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

if (više_teksta) {

// Odštampajte formatirani json …

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 ("\" nosilac / ": \" 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 ("},");

}

else

{

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 += "\" nosilac / ": \" 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";

}

else

{

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

Serial.print (linija);

}

JsonObject & root = jsonBuffer.parseObject (linija);

if (root.success ()) {

latitude = root ["location"] ["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 (longitude, 6);

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

Serial.println (tačnost);

kašnjenje (10000);

Serial.println ();

Serial.println ("Ponovno pokretanje …");

Serial.println ();

kašnjenje (2000);

}

Preporučuje se: