Sisällysluettelo:

GEOLOACATION: 5 vaihetta
GEOLOACATION: 5 vaihetta

Video: GEOLOACATION: 5 vaihetta

Video: GEOLOACATION: 5 vaihetta
Video: Beautiful Relaxing Sleep Music for Stress Relief • Calm The Mind, Meditate, Study, Yoga (Flying) 2024, Heinäkuu
Anonim
GEOLOACATION
GEOLOACATION

Se on kesäharjoitteluprojektini. Olen todella yllättynyt, kun kuulen, että voimme jäljittää minkä tahansa laitteen sijainnin ilman GPS -moduulia vain NodeMCU: n avulla. Tämän avulla voimme jäljittää minkä tahansa laitteen. Yllätyt myös siitä, kuinka voimme jäljittää laitteen käyttämällä vain WiFi -yhteyttä. Tässä on selostus sen ymmärtämiseksi.

  • · Se skannaa lähes kaikki WiFi -yhteytesi.
  • · Lähetä tämän laitteen sijainti Googlelle Google -sovellusliittymän avulla
  • · Tämän mukaan se etsii laitteesi sijainnin
  • · Sinulla on vahva verkkoyhteys tähän projektiin.

Vaihe 1: Osat ja työkalu

Osat

  • NodeMCU (ESP8266 1.0 12E)
  • USB kaapeli

Työkalut

Arduino IDE ja NodeMcu 1.0 12E Board

Google -sovellusliittymä

Vaihe 2: Etsi Google -sovellusliittymä

Etsi Google -sovellusliittymä
Etsi Google -sovellusliittymä
Etsi Google -sovellusliittymä
Etsi Google -sovellusliittymä
Etsi Google -sovellusliittymä
Etsi Google -sovellusliittymä
  • Avaa selain ja kirjoita: console.developer.google.com
  • Luo uusi projekti
  • Kun olet luonut uuden projektin, napsauta tunnistetietoja
  • Napsauta API -avainta
  • API -avaimesi on luotu

    Katso seuraava kuva |>, jotta ymmärrät helposti

Vaihe 3: Asenna NodeMCu Arduino IDE: hen

Asenna NodeMCu Arduino IDE: hen
Asenna NodeMCu Arduino IDE: hen
Asenna NodeMCu Arduino IDE: hen
Asenna NodeMCu Arduino IDE: hen
Asenna NodeMCu Arduino IDE: hen
Asenna NodeMCu Arduino IDE: hen
  • Lataa Arduino IDE seuraavasta linkistä:- https:// www. Pääsivu/Ohjelmisto arduino.cc/en/
  • Lisää Node MCu -levy Arduino IDE: hen
  • Jos haluat ladata koodin NodeMCU: lle, sinun on lisättävä NodeMCu -kortti ARDUINO IDE -laitteeseen.

    • Siirry tiedostoon ja asetuksiin Arduino IDE: ssä
    • Kopioi seuraava hallituksen linkki Lisähallituksen hallintaan
    • arduino.esp8266.com/stable/package_esp8266c…
    • ja napsauta OK
    • Taulu ladataan
    • Siirry työkaluihin ja taululle ja valitse NodeMCU 1.0 12E
    • Katso avoben kuva helpommin ymmärrettäväksi

Vaihe 4: Lataa ArduinoJson -kirjasto

Lataa ArduinoJson -kirjasto
Lataa ArduinoJson -kirjasto
  • Siirry kohtaan
  • Luonnos Sisällytä kirjasto Hallitse kirjastoa

    Kirjoita hakukenttään Arduino Json

    Lataa ArduinoJson -kirjaston uusin versio

    kirjaston lataamisen jälkeen napsauta Sulje

    Lisää kirjasto kohteesta

    LuonnosluetteloKirjastoArduinoJson

Vaihe 5: Ohjelmoi

Lataa seuraava ohjelma NodeMCU -kortille. ja katso laitteen (NodeMCU 1.0 12E -kortti) sijainti sarjamonitorista.

#sisältää

#sisältää

#sisältää

char myssid = "SSID -tunnuksesi"; // verkkosi SSID (nimi)

char mypass = "Salasanasi"; // verkkosi salasana

// Google GeoLocation -sovellusliittymän tunnistetiedot…

const char* Isäntä = "www.googleapis.com";

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

// --- Hanki Google Maps -ap-avain täältä:

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

String key = "Google -sovellusliittymäavaimesi"; // Etsi vaiheesta 2

Ohje

int -tila = WL_IDLE_STATUS;

Jono jsonString = "{ n";

kaksinkertainen leveysaste = 0,0;

kaksinkertainen pituusaste = 0,0;

kaksinkertainen tarkkuus = 0,0;

int more_text = 1; // aseta 1, jos haluat enemmän virheenkorjausta

void setup () {

Sarja.alku (9600);

Serial.println ("Käynnistä");

// Aseta WiFi asematilaan ja

katkaise yhteys tukiasemaan, jos se on aiemmin liitetty

WiFi.mode (WIFI_STA);

WiFi. Irrota ();

viive (100);

Serial.println ( Asennus

tehty );

// Aloitamme yhdistämällä a

WiFi -verkko

Serial.print ( Yhdistetään

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

viive (500);

Serial.print (".");

}

Sarja.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("skannauksen aloitus");

// WiFi.scanNetworks palaa

löydettyjen verkkojen määrä

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

jos (n == 0)

Serial.println ("verkkoja ei löydy");

muu

{

Sarjanjälki (n);

Serial.println ("verkosta löydetty …");

jos (lisää_teksti) {

// Tulosta alustettu json…

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // tämä on todellinen UK MCC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // ja todellinen UK MNC

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

Serial.println ("\" carrier / ": \" Vodafone / ","); // liittyy Vodafoneen

Serial.println ("\" cellTowers / ": ["); // En ilmoita yhtään solutornia

Serial.println ("],");

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

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

jos (i <n - 1)

{

Serial.println ("},");

}

muu

{

Serial.println ("}");

}

}

Sarja.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// rakenna nyt jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // tämä on todellinen UK MCC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // ja todellinen UK MNC

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

jsonString += "\" carrier / ": \" Vodafone / ", / n"; // liittyy Vodafoneen

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

jos (j <n - 1)

{

jsonString += "}, / n";

}

muu

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure -asiakas;

// Yhdistä asiakas ja soita api -puhelu

Serial.print ("Pyynnön URL -osoite:");

// ---- Hanki Google Maps Api -avain täältä, linkki:

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

Serial.println ("");

if (client.connect (isäntä, 443)) {

Serial.println ("Yhdistetty");

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

client.println ("Isäntä:" + (merkkijono) isäntä);

client.println ("Yhteys: sulje");

client.println ("Sisältötyyppi: application/json");

client.println ("Käyttäjäagentti: Arduino/1.0");

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

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

viive (500);

}

// Lue ja jäsennä kaikki rivit

vastaus palvelimelta

while (client.available ()) {

Merkkijono = client.readStringUntil ('\ r');

jos (lisää_teksti) {

Serial.print (rivi);

}

JsonObject & root = jsonBuffer.parseObject (rivi);

if (root.success ()) {

leveysaste = juuri ["sijainti"] ["lat"];

pituusaste = juuri ["location"] ["lng"];

tarkkuus = juuri ["tarkkuus"];

}

}

Serial.println ("sulkeva yhteys");

Sarja.println ();

client.stop ();

Serial.print ("Leveysaste =");

Sarja.println (leveysaste, 6);

Serial.print ("Pituusaste =");

Sarja.println (pituusaste, 6);

Serial.print ("Tarkkuus =");

Serial.println (tarkkuus);

viive (10000);

Sarja.println ();

Serial.println ("Käynnistetään uudelleen …");

Sarja.println ();

viive (2000);

}

Suositeltava: