Innehållsförteckning:

GEOLOACATION: 5 steg
GEOLOACATION: 5 steg

Video: GEOLOACATION: 5 steg

Video: GEOLOACATION: 5 steg
Video: How to change your Android device GPS location 2024, Juli
Anonim
GEOLOACATION
GEOLOACATION

Det är mitt sommarpraktikprojekt. Jag förvånar verkligen när jag hör att vi kan spåra alla enheter utan att använda GPS -modul endast med NodeMCU. Genom detta kan vi spåra vilken enhet som helst. Du förvånar också över hur vi kan spåra enheten med endast WiFi. Här är sorteringsbeskrivningen för att förstå det.

  • · Det är Skanna din nästan alla WiFi.
  • · Skicka denna enhetsplats till Google med Google API
  • · Enligt detta lokaliserar du din enhets plats
  • · Du har en stark nätverksanslutning för detta projekt.

Steg 1: Delar och verktyg

Delar

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

Verktyg

Arduino IDE med NodeMcu 1.0 12E -kort

Googles API

Steg 2: Hitta Google API

Hitta Google API
Hitta Google API
Hitta Google API
Hitta Google API
Hitta Google API
Hitta Google API
  • Öppna din webbläsare och skriv: console.developer.google.com
  • Skapa ett nytt projekt
  • Efter Skapa ett nytt projekt klickar du på referens
  • Klicka på API -nyckel
  • Din API -nyckel har genererats

    För enkel förståelse se följande bild |>

Steg 3: Konfigurera NodeMCu på Arduino IDE

Konfigurera NodeMCu på Arduino IDE
Konfigurera NodeMCu på Arduino IDE
Konfigurera NodeMCu på Arduino IDE
Konfigurera NodeMCu på Arduino IDE
Konfigurera NodeMCu på Arduino IDE
Konfigurera NodeMCu på Arduino IDE
  • Ladda ner Arduino IDE från följande länk:- https:// www. Huvud/programvara arduino.cc/en/
  • Lägg till Node MCu -kort på Arduino IDE
  • För att ladda upp kod på NodeMCU måste du lägga till NodeMCu -kortet på ARDUINO IDE.

    • GÅ till fil och preferens i Arduino IDE
    • Och kopiera följande länk i Ytterligare styrelsechefer
    • arduino.esp8266.com/stable/package_esp8266c…
    • och klicka på Ok
    • Styrelsen laddas ner
    • Gå till verktyg och kort och välj NodeMCU 1.0 12E
    • Se avobe -bilden för enkel förståelse

Steg 4: Ladda ner ArduinoJson -biblioteket

Ladda ner ArduinoJson -biblioteket
Ladda ner ArduinoJson -biblioteket
  • Gå till
  • Sketch Include Library Hantera bibliotek

    Skriv Arduino Json i sökrutan

    Ladda ner den senaste versionen av ArduinoJson -biblioteket

    efter nedladdning av biblioteket, klicka på stäng

    Lägg till bibliotek från

    SketchincludeLibraryArduinoJson

Steg 5: Program

Ladda upp följande program på NodeMCU -kortet. och se din enhets plats (NodeMCU 1.0 12E -kort) på seriell bildskärm.

#omfatta

#omfatta

#omfatta

char myssid = "Ditt SSID"; // ditt nätverks -SSID (namn)

char mypass = "Ditt lösenord"; // ditt nätverkslösenord

// Referenser för Google GeoLocation API …

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

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

// --- Skaffa en Google maps ap-nyckel här:

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

String key = "Your Google API key"; // Hitta från steg 2

Instruktion

int status = WL_IDLE_STATUS;

String jsonString = "{ n";

dubbel latitud = 0,0;

dubbel longitud = 0,0;

dubbel noggrannhet = 0,0;

int more_text = 1; // inställd på 1 för mer felsökning

void setup () {

Serial.begin (9600);

Serial.println ("Start");

// Ställ in WiFi på stationsläge och

koppla från en AP om den tidigare var ansluten

WiFi.mode (WIFI_STA);

WiFi. Koppla bort ();

fördröjning (100);

Serial.println ( Setup

Gjort );

// Vi börjar med att ansluta till en

WiFi -nätverk

Serial.print ( Ansluter till

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

fördröjning (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {

röding bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("scan start");

// WiFi.scanNetworks återkommer

antalet hittade nätverk

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

om (n == 0)

Serial.println ("inga nätverk hittades");

annan

{

Serial.print (n);

Serial.println ("nätverk hittat …");

om (mer_text) {

// Skriv ut den formaterade json …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // detta är ett riktigt brittiskt MCC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // och en riktig brittisk MNC

Serial.println ("\" radioType / ": \" gsm / ","); // för gsm

Serial.println ("\" bärare / ": \" Vodafone / ","); // associerad med Vodafone

Serial.println ("\" cellTowers / ": ["); // Jag rapporterar inga mobiltorn

Serial.println ("],");

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

för (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));

om (i <n - 1)

{

Serial.println ("},");

}

annan

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// bygg nu jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // detta är ett riktigt brittiskt MCC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // och en riktig brittisk MNC

jsonString += "\" radioType / ": \" gsm / ", / n"; // för gsm

jsonString += "\" bärare / ": \" Vodafone / ", / n"; // associerad med Vodafone

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

för (int j = 0; j <n; ++ j)

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

om (j <n - 1)

{

jsonString += "}, / n";

}

annan

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure -klient;

// Anslut till klienten och ring api -samtalet

Serial.print ("Begär URL:");

// ---- Hämta Google Maps Api Key här, länk:

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

Serial.println ("");

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

Serial.println ("Ansluten");

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

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

client.println ("Anslutning: stäng");

client.println ("Innehållstyp: applikation/json");

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

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

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

fördröjning (500);

}

// Läs och analysera alla rader av

svaret från servern

medan (client.available ()) {

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

om (mer_text) {

Serial.print (rad);

}

JsonObject & root = jsonBuffer.parseObject (line);

if (root.success ()) {

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

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

precision = root ["precision"];

}

}

Serial.println ("stängande anslutning");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (latitud, 6);

Serial.print ("Longitud =");

Serial.println (longitud, 6);

Serial.print ("Noggrannhet =");

Serial.println (noggrannhet);

fördröjning (10000);

Serial.println ();

Serial.println ("Startar om …");

Serial.println ();

fördröjning (2000);

}

Rekommenderad: