Spisu treści:

GEOLOKALIZACJA: 5 kroków
GEOLOKALIZACJA: 5 kroków

Wideo: GEOLOKALIZACJA: 5 kroków

Wideo: GEOLOKALIZACJA: 5 kroków
Wideo: CB163 Academy - 5 kroków do zdrowia 2024, Lipiec
Anonim
GEOLOKALIZACJA
GEOLOKALIZACJA

To mój Projekt Letnich Praktyk. Naprawdę zaskakuje, gdy słyszę, że możemy śledzić lokalizację dowolnego urządzenia bez użycia modułu GPS tylko za pomocą NodeMCU. Dzięki temu możemy namierzyć dowolne urządzenie. Zaskakuje Cię również, jak możemy namierzyć urządzenie za pomocą tylko WiFi. Oto opis rodzaju, aby to zrozumieć.

  • · Skanuje prawie całą sieć Wi-Fi.
  • · Wyślij lokalizację urządzenia do Google za pomocą interfejsu Google API
  • · Zgodnie z tym lokalizuje lokalizację twojego urządzenia
  • · Masz silne połączenie sieciowe dla tego projektu.

Krok 1: Części i narzędzia

Części

  • Węzeł MCU (ESP8266 1.0 12E)
  • Kabel USB

Narzędzia

Arduino IDE z płytą NodeMcu 1.0 12E

Interfejs API Google

Krok 2: Znajdź Google API

Znajdź Google API
Znajdź Google API
Znajdź Google API
Znajdź Google API
Znajdź interfejs API Google
Znajdź interfejs API Google
  • Otwórz przeglądarkę i wpisz: console.developer.google.com
  • Utwórz nowy projekt
  • Po utworzeniu nowego projektu kliknij poświadczenia
  • Kliknij klucz API
  • Twój klucz API został wygenerowany

    Dla łatwego zrozumienia zobacz poniższy obrazek |>

Krok 3: Skonfiguruj NodeMCu na Arduino IDE

Skonfiguruj NodeMCu na Arduino IDE
Skonfiguruj NodeMCu na Arduino IDE
Skonfiguruj NodeMCu na Arduino IDE
Skonfiguruj NodeMCu na Arduino IDE
Skonfiguruj NodeMCu na Arduino IDE
Skonfiguruj NodeMCu na Arduino IDE
  • Pobierz Arduino IDE z następującego linku: - https://www. Główna/Oprogramowanie arduino.cc/pl/
  • Dodaj płytkę Node MCu do Arduino IDE
  • Aby przesłać kod na NodeMCU, musisz dodać kartę NodeMCu do ARDUINO IDE.

    • PRZEJDŹ do pliku i preferencji w Arduino IDE
    • A w sekcji Zarządca dodatkowego zarządu skopiuj poniższy link
    • arduino.esp8266.com/stable/package_esp8266c…
    • i kliknij OK
    • Tablica jest pobierana
    • Przejdź do narzędzi i tablicy i wybierz NodeMCU 1.0 12E
    • Zobacz zdjęcie avobe dla łatwego zrozumienia

Krok 4: Pobierz bibliotekę ArduinoJson

Pobierz bibliotekę ArduinoJson
Pobierz bibliotekę ArduinoJson
  • Przejdź do
  • Szkic Dołącz bibliotekę Zarządzaj biblioteką

    Wpisz Arduino Json w polu wyszukiwania

    Pobierz najnowszą wersję biblioteki ArduinoJson

    po pobraniu biblioteki kliknij zamknij

    Dodaj bibliotekę z

    SketchincludeLibraryArduinoJson

Krok 5: Program

Wgraj następujący program na płytę NodeMCU. i zobacz lokalizację swojego urządzenia (płyta NodeMCU 1.0 12E) na monitorze szeregowym.

#włączać

#włączać

#włączać

char myssid = "Twój identyfikator SSID"; // SSID sieci (nazwa)

char mypass = "Twoje hasło"; // twoje hasło sieciowe

//Poświadczenia Google Geolokalizacji API…

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

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

// --- Pobierz klucz aplikacji Google Maps tutaj:

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

String key = "Twój klucz API Google ";//Znajdź z kroku 2

Instrukcja

stan int = WL_IDLE_STATUS;

String jsonString = "{n";

podwójna szerokość geograficzna = 0,0;

podwójna długość geograficzna = 0,0;

podwójna dokładność = 0,0;

int więcej_tekst = 1; // ustaw na 1, aby uzyskać więcej danych wyjściowych debugowania

pusta konfiguracja () {

Serial.początek(9600);

Serial.println("Start");

// Ustaw WiFi w trybie stacji i

rozłączyć się z AP, jeśli był wcześniej podłączony

tryb WiFi (WIFI_STA);

Wi-Fi.rozłącz();

opóźnienie (100);

Serial.println( Ustawienia

Gotowe );

// Zaczynamy od połączenia z a

Sieć Wi-Fi

Serial.print( Podłączanie do

);

Serial.println(myssid);

WiFi.begin(myssid, mypass);

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

opóźnienie (500);

Serial.print(".");

}

Serial.println(".");

}

pusta pętla () {

char bssid[6];

DynamicJsonBuffer jsonBuffer;

Serial.println("rozpoczęcie skanowania");

// Zwróci WiFi.scanNetworks

liczba znalezionych sieci

int n = WiFi.scanNetworks();

Serial.println("skandon");

jeśli (n == 0)

Serial.println("nie znaleziono sieci");

w przeciwnym razie

{

druk.seryjny(n);

Serial.println(" znaleziono sieci…");

jeśli (więcej_tekstu) {

// Wydrukuj sformatowany plik json…

Serial.println("{");

Serial.println("\"homeMobileCountryCode\":234, "); // to jest prawdziwe brytyjskie MCK

Serial.println("\"homeMobileNetworkCode\":27, "); // i prawdziwy brytyjski MNC

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

Serial.println("\"przewoźnik\":\"Vodafone\", "); //związany z Vodafone

Serial.println("\"cellTowers\": ["); // Nie zgłaszam żadnych wież komórkowych

Serial.println("], ");

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

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

{

Serial.println("{");

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

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

Serial.println("\", ");

Serial.print("\"Siła sygnału\": ");

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

jeśli (i < n - 1)

{

Serial.println("}, ");

}

w przeciwnym razie

{

Serial.println("}");

}

}

Serial.println("]");

Serial.println("}");

}

Serial.println(" ");

}

// teraz zbuduj jsonString…

jsonString = "{n";

jsonString +="\"homeMobileCountryCode\": 234, \n"; // to jest prawdziwe brytyjskie MCK

jsonString +="\"homeMobileNetworkCode\": 27, \n"; // i prawdziwy brytyjski MNC

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

jsonString +="\"carrier\": \"Vodafone\", \n"; // związane z Vodafone

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

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

{

jsonString += "{n";

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

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

jsonString +="\", \n";

jsonString +="\"Siła sygnału\": ";

jsonString += WiFi. RSSI(j);

jsonString += "\n";

jeśli (j < n - 1)

{

jsonString +="}, \n";

}

w przeciwnym razie

{

jsonString +="}\n";

}

}

jsonString += ("]\n");

jsonString += ("}\n");

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

Serial.println("");

Klient WiFiClientSecure;

//Połącz się z klientem i wykonaj wywołanie API

Serial.print("URL żądania: ");

// ---- Pobierz klucz Google Maps Api tutaj, link:

Serial.println("https://" + (Ciąg)Host + ta strona +"PUT-TWÓJ-GOOGLE-MAPS-API-KEY-TUTAJ");

Serial.println(" ");

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

Serial.println("Połączony");

klient.println("POST" + ta strona + klucz +"

client.println("Host:" + (Ciąg)Host);

client.println("Połączenie: zamknij");

client.println("Typ treści: aplikacja/json");

client.println("Agent użytkownika: Arduino/1.0");

client.print("Treść-Długość: ");

klient.println(jsonString.length());

klient.println();

klient.print(jsonString);

opóźnienie (500);

}

//Przeczytaj i przeanalizuj wszystkie wiersze

odpowiedź z serwera

while (klient.dostępny()) {

Linia ciągu =client.readStringUntil('\r');

jeśli (więcej_tekstu) {

Serial.print(wiersz);

}

JsonObject& root =jsonBuffer.parseObject(linia);

if (root.success()) {

szerokość geograficzna =root["lokalizacja"]["lat"];

długość geograficzna =root["lokalizacja"]["lng"];

dokładność = root["dokładność"];

}

}

Serial.println("zamykanie połączenia");

Serial.println();

klient.stop();

Serial.print("Szerokość =");

Serial.println(szerokość geograficzna, 6);

Serial.print("Długość =");

Serial.println(długość geograficzna, 6);

Serial.print("Dokładność =");

Serial.println(dokładność);

opóźnienie (10000);

Serial.println();

Serial.println("Ponowne uruchamianie…");

Serial.println();

opóźnienie (2000);

}

Zalecana: