INHOUDSOPGAWE:

GEOLOACATION: 5 stappe
GEOLOACATION: 5 stappe

Video: GEOLOACATION: 5 stappe

Video: GEOLOACATION: 5 stappe
Video: Bring jou idees grond toe....5 Stappe 2024, Julie
Anonim
GEOLOACATION
GEOLOACATION

Dit is my Summer Internship Project. Ek is regtig verbaas as ek hoor dat ons enige toestel kan opspoor sonder om 'n GPS -module te gebruik slegs met NodeMCU. Hierdeur kan ons enige toestel opspoor. U verbaas ook hoe kan ons toestelle met slegs WiFi opspoor. Hier is die soort beskrywing om dit te verstaan.

  • · Dit skandeer u byna alle WiFi.
  • · Stuur hierdie toestel se ligging na Google met behulp van Google API
  • · Volgens hierdie vind u die ligging van u toestel
  • · U het 'n sterk netwerkverbinding vir hierdie projek.

Stap 1: Onderdele en gereedskap

Dele

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

Gereedskap

Arduino IDE met NodeMcu 1.0 12E Board

Google API

Stap 2: Soek Google API

Soek Google API
Soek Google API
Soek Google API
Soek Google API
Soek Google API
Soek Google API
  • Maak u blaaier oop en tik: console.developer.google.com
  • Skep 'n nuwe projek
  • Nadat u 'n nuwe projek geskep het, klik op geloofsbrief
  • Klik op API -sleutel
  • U API -sleutel is gegenereer

    Vir maklike begrip, sien die volgende prentjie |>

Stap 3: Stel NodeMCu op op Arduino IDE

Stel NodeMCu op op Arduino IDE
Stel NodeMCu op op Arduino IDE
Stel NodeMCu op op Arduino IDE
Stel NodeMCu op op Arduino IDE
Stel NodeMCu op op Arduino IDE
Stel NodeMCu op op Arduino IDE
  • Laai Arduino IDE af vanaf die volgende skakel:- https:// www. Hoof/sagteware arduino.cc/en/
  • Voeg Node MCu -bord by op Arduino IDE
  • Vir die oplaai van kode op NodeMCU moet u die NodeMCu -bord op ARDUINO IDE byvoeg.

    • Gaan na lêer en voorkeur in Arduino IDE
    • En kopieer die volgende skakel in Addisionele bestuursafdeling
    • arduino.esp8266.com/stable/package_esp8266c…
    • en klik op Ok
    • Die bord word afgelaai
    • Gaan na die gereedskap en bord en kies NodeMCU 1.0 12E
    • Sien die avobe -prentjie om dit maklik te verstaan

Stap 4: Laai die ArduinoJson -biblioteek af

Laai die ArduinoJson -biblioteek af
Laai die ArduinoJson -biblioteek af
  • Gaan na die
  • Skets Sluit biblioteek in Bestuur biblioteek

    Tik Arduino Json in die soekkassie

    Laai die nuutste weergawe van die ArduinoJson -biblioteek af

    na aflaai van die biblioteek, klik sluit

    Voeg biblioteek by

    SketchincludeLibraryArduinoJson

Stap 5: Programmeer

Laai die volgende program op die NodeMCU -bord op. en sien die ligging van u toestel (NodeMCU 1.0 12E -bord) op die seriële monitor.

#insluit

#insluit

#insluit

char myssid = "Jou SSID"; // jou netwerk SSID (naam)

char mypass = "U wagwoord"; // u netwerkwagwoord

// Bewyse vir Google GeoLocation API …

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

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

// --- Kry 'n Google maps ap-sleutel hier:

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

String key = "Jou Google API -sleutel"; // Soek vanaf stap2

Instruksie

int status = WL_IDLE_STATUS;

String jsonString = "{ n";

dubbele breedtegraad = 0,0;

dubbele lengte = 0,0;

dubbele akkuraatheid = 0,0;

int more_text = 1; // gestel op 1 vir meer ontfoutingsuitsette

ongeldige opstelling () {

Serial.begin (9600);

Serial.println ("Begin");

// Stel WiFi in die stasie -modus en

ontkoppel van 'n AP as dit voorheen gekoppel was

WiFi.mode (WIFI_STA);

WiFi. Ontkoppel ();

vertraging (100);

Serial.println ( Opstelling

gedoen );

// Ons begin deur aan te sluit by a

WiFi netwerk

Serial.print ( Koppel aan

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

vertraging (500);

Serial.print (".");

}

Serial.println (".");

}

leemte -lus () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("scan begin");

// WiFi.scanNetworks sal terugkeer

die aantal netwerke gevind

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

as (n == 0)

Serial.println ("geen netwerke gevind nie");

anders

{

Reeks.afdruk (n);

Serial.println ("netwerke gevind …");

as (more_text) {

// Druk die geformateerde json uit …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // dit is 'n regte Britse MCC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // en 'n regte Britse MNC

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

Serial.println ("\" carrier / ": \" Vodafone / ","); // geassosieer met Vodafone

Serial.println ("\" cellTowers / ": ["); // Ek meld geen sel torings aan nie

Serial.println ("],");

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

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

as (i <n - 1)

{

Serial.println ("},");

}

anders

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// bou nou die jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // dit is 'n regte Britse MCC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // en 'n regte Britse MNC

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

jsonString += "\" carrier / ": \" Vodafone / ", / n"; // geassosieer met Vodafone

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

as (j <n - 1)

{

jsonString += "}, / n";

}

anders

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure -kliënt;

// Koppel aan die kliënt en maak die api -oproep

Serial.print ("URL versoek:");

// ---- Kry Google Maps Api-sleutel hier, skakel:

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

Serial.println ("");

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

Serial.println ("verbind");

client.println ("POST" + hierdie bladsy + sleutel + "HTTP/1.1");

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

client.println ("Verbinding: sluit");

client.println ("Inhoudstipe: toepassing/json");

client.println ("Gebruikersagent: Arduino/1.0");

client.print ("Inhoudlengte:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

vertraging (500);

}

// Lees en ontleed al die reëls van

die antwoord van die bediener

terwyl (client.available ()) {

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

as (meer_teks) {

Serial.print (reël);

}

JsonObject & root = jsonBuffer.parseObject (reël);

as (root.success ()) {

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

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

akkuraatheid = root ["akkuraatheid"];

}

}

Serial.println ("verbinding sluit");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (breedtegraad, 6);

Serial.print ("Lengtegraad =");

Serial.println (lengtegraad, 6);

Serial.print ("Akkuraatheid");

Serial.println (akkuraatheid);

vertraging (10000);

Serial.println ();

Serial.println ("Herbegin …");

Serial.println ();

vertraging (2000);

}

Aanbeveel: