Obsah:

GEOLOACATION: 5 kroků
GEOLOACATION: 5 kroků

Video: GEOLOACATION: 5 kroků

Video: GEOLOACATION: 5 kroků
Video: RECENZE: Garmin Vívosmart 5 – Krok kupředu nebo vedle? 2024, Listopad
Anonim
GEOLOACACE
GEOLOACACE

Je to můj projekt letní stáže. Opravdu překvapuje, když slyším, že můžeme sledovat polohu jakéhokoli zařízení bez použití modulu GPS pouze pomocí NodeMCU. Díky tomu můžeme sledovat jakékoli zařízení. Také vás překvapuje, jak můžeme sledovat zařízení pouze pomocí WiFi. Zde je popis řazení, abyste tomu porozuměli.

  • · Skenuje téměř všechny vaše WiFi.
  • · Odešlete toto umístění zařízení společnosti Google pomocí rozhraní Google API
  • · Podle toho vyhledá umístění vašeho zařízení
  • · Pro tento projekt máte silné síťové připojení.

Krok 1: Díly a nástroj

Díly

  • NodeMCU (ESP8266 1.0 12E)
  • USB kabel

Nástroje

Arduino IDE s deskou NodeMcu 1.0 12E

Google API

Krok 2: Najděte Google API

Najděte Google API
Najděte Google API
Najděte Google API
Najděte Google API
Najděte Google API
Najděte Google API
  • Otevřete prohlížeč a zadejte: console.developer.google.com
  • Vytvořte nový projekt
  • Po vytvoření nového projektu klikněte na přihlašovací údaje
  • Klikněte na klíč API
  • Váš klíč API byl vygenerován

    Snadné porozumění najdete na následujícím obrázku |>

Krok 3: Nastavení 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
  • Stáhněte si Arduino IDE z následujícího odkazu:- https:// www. Hlavní/Software arduino.cc/en/
  • Přidejte desku Node MCu na Arduino IDE
  • Pro nahrání kódu na NodeMCU musíte přidat desku NodeMCu na ARDUINO IDE.

    • PŘEJÍT na soubor a preference v Arduino IDE
    • A v Additional Board managersection zkopírujte následující odkaz
    • arduino.esp8266.com/stable/package_esp8266c…
    • a klikněte na Ok
    • Deska se stáhne
    • Přejděte na nástroje a desku a vyberte NodeMCU 1.0 12E
    • Snadné porozumění najdete na obrázku avobe

Krok 4: Stáhněte si knihovnu ArduinoJson

Stáhněte si ArduinoJson Library
Stáhněte si ArduinoJson Library
  • Přejděte na
  • Sketch Include Library Spravovat knihovnu

    Do vyhledávacího pole zadejte Arduino Json

    Stáhněte si nejnovější verzi knihovny ArduinoJson

    po stažení knihovny klikněte na zavřít

    Přidat knihovnu z

    SketchincludeLibraryArduinoJson

Krok 5: Program

Nahrajte následující program na desku NodeMCU. a podívejte se na umístění svého zařízení (deska NodeMCU 1.0 12E) na sériovém monitoru.

#zahrnout

#zahrnout

#zahrnout

char myssid = "Vaše SSID"; // SSID vaší sítě (název)

char mypass = "Vaše heslo"; // vaše síťové heslo

// Pověření pro Google GeoLocation API…

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

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

// --- Získejte AP klíč Google Maps zde:

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

String key = "Váš klíč Google API"; // Vyhledejte od kroku 2

Návod

int status = WL_IDLE_STATUS;

Řetězec jsonString = "{ n";

dvojitá šířka = 0,0;

dvojnásobná délka = 0,0;

dvojnásobná přesnost = 0,0;

int více_text = 1; // nastaveno na 1 pro další výstup ladění

neplatné nastavení () {

Serial.begin (9600);

Serial.println ("Start");

// Nastavte WiFi na režim stanice a

odpojte se od přístupového bodu, pokud byl dříve připojen

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

zpoždění (100);

Serial.println ( Nastavení

Hotovo );

// Začneme připojením k

WiFi síť

Serial.print ( Připojování k

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

zpoždění (500);

Serial.print (".");

}

Serial.println (".");

}

prázdná smyčka () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("spuštění skenování");

// WiFi.scanNetworks se vrátí

počet nalezených sítí

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

pokud (n == 0)

Serial.println ("nebyly nalezeny žádné sítě");

jiný

{

Serial.print (n);

Serial.println („nalezené sítě…“);

if (more_text) {

// Vytiskněte formátovaný json …

Serial.println ("{");

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

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

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

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

Serial.println ("\" cellTowers / ": ["); // Nehlásím žádné věže buněk

Serial.println ("],");

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

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

{

Serial.println ("{");

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

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

Serial.println ("\", ");

Serial.print ("\" síla signálu / ":");

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

pokud (i <n - 1)

{

Serial.println ("},");

}

jiný

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// nyní vytvořte jsonString…

jsonString = "{ n";

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

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

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

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

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

jsonString += "\" síla signálu / ":";

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

pokud (j <n - 1)

{

jsonString += "}, / n";

}

jiný

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure klient;

// Připojte se ke klientovi a proveďte volání API

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

// ---- Získejte Google Maps Api Key zde, Odkaz:

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

Serial.println ("");

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

Serial.println („Připojeno“);

client.println ("POST" + thisPage + klíč + "HTTP/1.1");

client.println ("Host:" + (řetězec) Host);

client.println ("Připojení: zavřít");

client.println ("Typ obsahu: aplikace/json");

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

client.print ("Délka obsahu:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

zpoždění (500);

}

// Přečíst a analyzovat všechny řádky

odpověď ze serveru

while (client.available ()) {

Řetězec řetězce = client.readStringUntil ('\ r');

if (more_text) {

Serial.print (řádek);

}

JsonObject & root = jsonBuffer.parseObject (řádek);

if (root.success ()) {

zeměpisná šířka = root ["umístění"] ["lat"];

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

přesnost = root ["přesnost"];

}

}

Serial.println ("ukončení připojení");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (zeměpisná šířka, 6);

Serial.print ("Zeměpisná délka =");

Serial.println (zeměpisná délka, 6);

Serial.print ("Přesnost =");

Serial.println (přesnost);

zpoždění (10 000);

Serial.println ();

Serial.println ("Restartování …");

Serial.println ();

zpoždění (2000);

}

Doporučuje: