Tartalomjegyzék:

GEOLOACATION: 5 lépés
GEOLOACATION: 5 lépés

Videó: GEOLOACATION: 5 lépés

Videó: GEOLOACATION: 5 lépés
Videó: Kegye Roland - 5 lépés (HD) 2024, Július
Anonim
GEOLOACATION
GEOLOACATION

Ez a nyári gyakornoki projektem. Nagyon meglepődöm, amikor azt hallom, hogy bármely eszköz helyét nyomon követhetjük anélkül, hogy GPS modult használnánk, csak a NodeMCU segítségével. Ezzel bármilyen eszközt nyomon követhetünk. Meglepődsz azon is, hogyan tudjuk nyomon követni az eszközt csak WiFi használatával. Íme a leírás a megértéshez.

  • · Ez a Scan szinte az összes WiFi.
  • · Az eszköz helyének elküldése a Google -nak a Google API használatával
  • · Eszerint keresse meg az eszköz helyét
  • · Erős hálózati kapcsolattal rendelkezik ehhez a projekthez.

1. lépés: Alkatrészek és eszköz

Alkatrészek

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

Eszközök

Arduino IDE NodeMcu 1.0 12E táblával

Google API

2. lépés: Keresse meg a Google API -t

Keresse meg a Google API -t
Keresse meg a Google API -t
Keresse meg a Google API -t
Keresse meg a Google API -t
Keresse meg a Google API -t
Keresse meg a Google API -t
  • Nyissa meg a böngészőt, és írja be: console.developer.google.com
  • Hozzon létre egy új projektet
  • Új projekt létrehozása után kattintson a hitelesítő adatokra
  • Kattintson az API kulcsra
  • Az API -kulcs létrehozva

    A könnyebb megértés érdekében lásd az alábbi képet |>

3. lépés: A NodeMCu beállítása az Arduino IDE -n

Állítsa be a NodeMCu -t az Arduino IDE -n
Állítsa be a NodeMCu -t az Arduino IDE -n
Állítsa be a NodeMCu -t az Arduino IDE -n
Állítsa be a NodeMCu -t az Arduino IDE -n
Állítsa be a NodeMCu -t az Arduino IDE -n
Állítsa be a NodeMCu -t az Arduino IDE -n
  • Töltse le az Arduino IDE-t az alábbi linkről:- https:// www. Fő/Szoftver arduino.cc/en/
  • Add hozzá a Node MCu táblát az Arduino IDE -hez
  • Ha kódot szeretne feltölteni a NodeMCU -ra, hozzá kell adnia a NodeMCu kártyát az ARDUINO IDE -hez.

    • UGRÁS a fájlokhoz és beállításokhoz az Arduino IDE -ben
    • A Kiegészítő tábla kezelési szakaszban pedig másolja az alábbi linket
    • arduino.esp8266.com/stable/package_esp8266c…
    • és kattintson az OK gombra
    • A tábla letölthető
    • Lépjen az eszközökhöz és a táblához, és válassza a NodeMCU 1.0 12E lehetőséget
    • Lásd az avobe képet a könnyebb megértés érdekében

Lépés: Töltse le az ArduinoJson könyvtárat

Töltse le az ArduinoJson könyvtárat
Töltse le az ArduinoJson könyvtárat
  • Menj a
  • Vázlat Könyvtár befogadása Könyvtár kezelése

    Írja be az Arduino Json szót a keresőmezőbe

    Töltse le az ArduinoJson könyvtár legújabb verzióját

    a könyvtár letöltése után kattintson a Bezárás gombra

    Könyvtár hozzáadása innen

    VázlatvázlatKönyvtárArduinoJson

5. lépés: Programozás

Töltse fel a következő programot a NodeMCU táblára. és nézze meg a készülék (NodeMCU 1.0 12E kártya) helyét a soros monitoron.

#befoglalni

#befoglalni

#befoglalni

char myssid = "Az Ön SSID -je"; // a hálózati SSID (név)

char mypass = "Az Ön jelszava"; // a hálózati jelszó

// A Google GeoLocation API hitelesítő adatai…

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

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

// --- Szerezzen be egy Google Maps ap kulcsot itt:

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

String key = "Az Ön Google API kulcsa"; // Keresés a 2. lépésből

Utasítás

int állapot = WL_IDLE_STATUS;

Karakterlánc jsonString = "{ n";

kettős szélesség = 0,0;

kettős hosszúság = 0,0;

kettős pontosság = 0,0;

int more_text = 1; // állítsa 1 -re a további hibakeresési kimenethez

void setup () {

Sorozat.kezdet (9600);

Serial.println ("Start");

// Állítsa a WiFi állomás üzemmódba és

válassza le az AP -t, ha korábban csatlakoztatva volt

WiFi.mód (WIFI_STA);

WiFi.disconnect ();

késleltetés (100);

Serial.println ( Beállítás

Kész );

// Kezdjük azzal, hogy csatlakozunk a

WiFi hálózat

Serial.print ( Csatlakozás

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

késleltetés (500);

Soros.nyomtatás (".");

}

Soros.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("szkennelés indítása");

// A WiFi.scanNetworks visszatér

a talált hálózatok száma

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

ha (n == 0)

Serial.println ("nem található hálózat");

más

{

Sorozatnyomat (n);

Serial.println ("hálózatok …");

if (more_text) {

// Nyomtassa ki a formázott json -t …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // ez egy igazi brit Ügyfélközpont

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // és egy igazi brit MNC

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

Serial.println ("\" carrier / ": \" Vodafone / ","); // társítva a Vodafone -hoz

Serial.println ("\" cellTowers / ": ["); // Nem számolok be sejt tornyokról

Serial.println ("],");

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

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

{

Serial.println ("{");

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

Soros.nyomtatás (WiFi. BSSIDstr (i));

Serial.println ("\", ");

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

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

ha (i <n - 1)

{

Serial.println ("},");

}

más

{

Serial.println ("}");

}

}

Sorozat.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// most építsd fel a jsonString…

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // ez egy igazi brit Ügyfélközpont

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // és egy igazi brit MNC

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

jsonString += "\" carrier / ": \" Vodafone / ", / n"; // társítva a Vodafone -hoz

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

ha (j <n - 1)

{

jsonString += "}, / n";

}

más

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure kliens;

// Csatlakozzon az ügyfélhez, és kezdeményezze az api hívást

Serial.print ("Kérő URL:");

// ---- Szerezze be a Google Térkép Api kulcsot, link:

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

Serial.println ("");

if (client.connect (gazdagép, 443)) {

Serial.println ("Csatlakoztatva");

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

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

client.println ("Kapcsolat: bezárás");

client.println ("Tartalom-típus: application/json");

client.println ("Felhasználó-ügynök: Arduino/1.0");

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

kliens.println (jsonString.length ());

client.println ();

client.print (jsonString);

késleltetés (500);

}

// Olvassa el és elemezze az összes sort

a válasz a szervertől

while (client.available ()) {

Karakterlánc = ügyfél.readStringUntil ('\ r');

if (more_text) {

Serial.print (sor);

}

JsonObject & root = jsonBuffer.parseObject (sor);

if (root.success ()) {

szélesség = gyökér ["hely"] ["lat"];

hosszúság = gyökér ["hely"] ["lng"];

pontosság = gyökér ["pontosság"];

}

}

Serial.println ("záró kapcsolat");

Sorozat.println ();

client.stop ();

Serial.print ("Szélesség =");

Soros.println (szélesség, 6);

Serial.print ("Hosszúság =");

Soros.println (hosszúság, 6);

Serial.print ("Pontosság =");

Serial.println (pontosság);

késleltetés (10000);

Sorozat.println ();

Serial.println ("Újraindítás …");

Sorozat.println ();

késleltetés (2000);

}

Ajánlott: