Obsah:

GEOLOACÁCIA: 5 krokov
GEOLOACÁCIA: 5 krokov

Video: GEOLOACÁCIA: 5 krokov

Video: GEOLOACÁCIA: 5 krokov
Video: 5 Советов, Меняющих Жизнь - Мел Роббинс 2024, Júl
Anonim
GEOLOACÁCIA
GEOLOACÁCIA

Je to môj projekt letnej stáže. Skutočne ma prekvapuje, keď počujem, že môžeme sledovať polohu akéhokoľvek zariadenia bez použitia modulu GPS iba pomocou NodeMCU. Prostredníctvom toho môžeme sledovať akékoľvek zariadenie. Tiež vás prekvapuje, ako môžeme sledovať zariadenie iba pomocou WiFi. Tu je popis zoradenia, aby ste tomu porozumeli.

  • · Skenuje takmer všetky vaše WiFi.
  • · Odošlite toto umiestnenie zariadenia spoločnosti Google pomocou rozhrania Google API
  • · Podľa toho vyhľadá polohu vášho zariadenia
  • · Pre tento projekt máte silné sieťové pripojenie.

Krok 1: Diely a nástroj

Časti

  • NodeMCU (ESP8266 1.0 12E)
  • USB kábel

Nástroje

Arduino IDE s doskou NodeMcu 1.0 12E

Google API

Krok 2: Nájdite Google API

Nájdite Google API
Nájdite Google API
Nájdite Google API
Nájdite Google API
Nájdite Google API
Nájdite Google API
  • Otvorte prehliadač a zadajte: console.developer.google.com
  • Vytvorte nový projekt
  • Po vytvorení nového projektu kliknite na prihlasovacie údaje
  • Kliknite na kľúč API
  • Váš kľúč API bol vygenerovaný

    Ľahké porozumenie nájdete na nasledujúcom obrázku |>

Krok 3: Nastavte NodeMCu na Arduino IDE

Nastavte NodeMCu na Arduino IDE
Nastavte NodeMCu na Arduino IDE
Nastavte NodeMCu na Arduino IDE
Nastavte NodeMCu na Arduino IDE
Nastavte NodeMCu na Arduino IDE
Nastavte NodeMCu na Arduino IDE
  • Stiahnite si Arduino IDE z nasledujúceho odkazu:- https:// www. Hlavné/Software arduino.cc/en/
  • Pridajte dosku Node MCu na Arduino IDE
  • Na odosielanie kódu na NodeMCU musíte pridať dosku NodeMCu na ARDUINO IDE.

    • Choďte na súbor a preferencie v Arduino IDE
    • A v doplnkovej správe manažmentu skopírujte nasledujúci odkaz
    • arduino.esp8266.com/stable/package_esp8266c…
    • a kliknite na Ok
    • Doska sa stiahne
    • Prejdite na nástroje a dosku a vyberte položku NodeMCU 1.0 12E
    • Ľahko pochopiteľné nájdete na obrázku avobe

Krok 4: Stiahnite si knižnicu ArduinoJson

Stiahnite si knižnicu ArduinoJson
Stiahnite si knižnicu ArduinoJson
  • Choďte do
  • Sketch Include Library Spravovať knižnicu

    Do vyhľadávacieho poľa napíšte Arduino Json

    Stiahnite si najnovšiu verziu knižnice ArduinoJson

    po stiahnutí knižnice kliknite na Zavrieť

    Pridať knižnicu z

    SketchincludeLibraryArduinoJson

Krok 5: Program

Nahrajte nasledujúci program na dosku NodeMCU. a na sériovom monitore si pozrite umiestnenie svojho zariadenia (doska NodeMCU 1.0 12E).

#zahrnúť

#zahrnúť

#zahrnúť

char myssid = "Váš SSID"; // SSID vašej siete (názov)

char mypass = "Vaše heslo"; // heslo do siete

// Poverenia pre API Google GeoLocation…

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

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

// --- Získajte kľúč Google Maps ap tu:

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

String key = "Váš kľúč Google API"; // Nájdite od kroku 2

Pokyn

int status = WL_IDLE_STATUS;

Reťazec jsonString = "{ n";

dvojitá zemepisná šírka = 0,0;

dvojnásobná dĺžka = 0,0;

dvojnásobná presnosť = 0,0;

int viac_text = 1; // nastavenie na 1 pre viac ladiaceho výstupu

neplatné nastavenie () {

Serial.begin (9600);

Serial.println ("Štart");

// Nastavte WiFi na režim stanice a

odpojte sa od AP, ak bol predtým pripojený

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

oneskorenie (100);

Serial.println ( Nastavenie

hotový );

// Začíname pripojením k a

WiFi sieť

Serial.print ( Pripojenie k

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

oneskorenie (500);

Serial.print (".");

}

Serial.println (".");

}

prázdna slučka () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("štart skenovania");

// WiFi.scanNetworks sa vráti

počet nájdených sietí

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

ak (n == 0)

Serial.println („neboli nájdené žiadne siete“);

inak

{

Serial.print (n);

Serial.println („nájdené siete …“);

if (more_text) {

// Vytlačte formátovaný json …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // toto je skutočný britský MCC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // a skutočný britský MNC

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

Serial.println ("\" operátor / ": \" Vodafone / ","); // spojené s Vodafone

Serial.println ("\" cellTowers / ": ["); // Nehlásim žiadne veže s bunkami

Serial.println ("],");

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

pre (int i = 0; i <n; ++ i)

{

Serial.println ("{");

Serial.print ("\" macAddress / ": \" ");

Serial.print (WiFi. BSSIDstr (i));

Serial.println ("\", ");

Serial.print ("\" sila signálu / ":");

Serial.println (WiFi. RSSI (i));

ak (i <n - 1)

{

Serial.println ("},");

}

inak

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// teraz vytvorte jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // toto je skutočný britský MCC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // a skutočný britský MNC

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

jsonString += "\" operátor / ": \" Vodafone / ", / n"; // spojené s Vodafone

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

jsonString += "\" sila signálu / ":";

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

ak (j <n - 1)

{

jsonString += "}, / n";

}

inak

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure klient;

// Pripojte sa ku klientovi a uskutočnite api hovor

Serial.print ("Požadovaná adresa URL:");

// ---- Získajte kľúč Google Maps Api tu, odkaz:

Serial.println ("https://" + (Reťazec) Hostiteľ + tátoStránka + "VLOŽTE SVOJU GOOGLE-MAPY-API-KEY-TU");

Serial.println ("");

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

Serial.println („Pripojené“);

client.println ("POST" + thisPage + kľúč + "HTTP/1.1");

client.println ("Hostiteľ:" + (reťazec) hostiteľ);

client.println („Pripojenie: zavrieť“);

client.println ("Typ obsahu: aplikácia/json");

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

client.print („Dĺžka obsahu:“);

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

oneskorenie (500);

}

// Prečítajte a analyzujte všetky riadky

odpoveď zo servera

while (client.available ()) {

Reťazec riadka = client.readStringUntil ('\ r');

if (more_text) {

Serial.print (riadok);

}

JsonObject & root = jsonBuffer.parseObject (riadok);

if (root.success ()) {

zemepisná šírka = root ["umiestnenie"] ["lat"];

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

správnosť = koreň ["presnosť"];

}

}

Serial.println ("zatváranie pripojenia");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (zemepisná šírka, 6);

Serial.print ("Longitude =");

Serial.println (zemepisná dĺžka, 6);

Serial.print ("Presnosť =");

Serial.println (presnosť);

oneskorenie (10 000);

Serial.println ();

Serial.println ("Reštartuje sa …");

Serial.println ();

oneskorenie (2000);

}

Odporúča: