Съдържание:

ГЕОЛОКАЦИЯ: 5 стъпки
ГЕОЛОКАЦИЯ: 5 стъпки

Видео: ГЕОЛОКАЦИЯ: 5 стъпки

Видео: ГЕОЛОКАЦИЯ: 5 стъпки
Видео: БЕСПЛАТНЫЙ, САМЫЙ ТОЧНЫЙ НАВИГАТОР ДЛЯ ЛЕСА, ОХОТЫ, РЫБАЛКИ. РАБОТАЕТ БЕЗ ИНТЕРНЕТА.#GPS#НАВИГАТОР 2024, Ноември
Anonim
ГЕОЛОАКЦИЯ
ГЕОЛОАКЦИЯ

Това е моят проект за летен стаж. Наистина се изненадвам, когато чуя, че можем да проследим местоположението на всяко устройство, без да използваме GPS модул само с помощта на NodeMCU. Чрез това можем да проследим всяко устройство. Вие също така изненадвате как можем да проследим устройството, използвайки само WiFi. Ето описанието на сортирането, за да го разберете.

  • · Това е Сканиране на почти всичките ви WiFi.
  • · Изпратете това местоположение на устройството до Google, използвайки Google API
  • · Според това Намерете местоположението на вашето устройство
  • · Имате силна мрежова връзка за този проект.

Стъпка 1: Части и инструмент

Части

  • NodeMCU (ESP8266 1.0 12E)
  • USB кабел

Инструменти

Arduino IDE с NodeMcu 1.0 12E Board

Google API

Стъпка 2: Намерете API на Google

Намерете API на Google
Намерете API на Google
Намерете API на Google
Намерете API на Google
Намерете API на Google
Намерете API на Google
  • Отворете браузъра си и въведете: console.developer.google.com
  • Създайте нов проект
  • След като създадете нов проект щракнете върху идентификационните данни
  • Щракнете върху API ключ
  • Вашият API ключ е генериран

    За лесно разбиране вижте следната снимка |>

Стъпка 3: Инсталирайте NodeMCu на Arduino IDE

Инсталирайте NodeMCu на Arduino IDE
Инсталирайте NodeMCu на Arduino IDE
Инсталирайте NodeMCu на Arduino IDE
Инсталирайте NodeMCu на Arduino IDE
Инсталирайте NodeMCu на Arduino IDE
Инсталирайте NodeMCu на Arduino IDE
  • Изтеглете Arduino IDE от следната връзка:- https:// www. Main/Софтуер arduino.cc/en/
  • Добавете Node MCu платка към Arduino IDE
  • За да качите код на NodeMCU, трябва да добавите платката NodeMCu към ARDUINO IDE.

    • Отидете на файл и предпочитания в Arduino IDE
    • И в секцията Допълнителен мениджър на борда копирайте следната връзка
    • arduino.esp8266.com/stable/package_esp8266c…
    • и щракнете върху OK
    • Таблото се изтегля
    • Отидете до инструментите и дъската и изберете NodeMCU 1.0 12E
    • Вижте снимката на avobe за лесно разбиране

Стъпка 4: Изтеглете библиотеката ArduinoJson

Изтеглете библиотеката ArduinoJson
Изтеглете библиотеката ArduinoJson
  • Отидете на
  • Скица Включване на библиотека Управление на библиотека

    Въведете Arduino Json в полето за търсене

    Изтеглете най -новата версия на библиотеката ArduinoJson

    след изтегляне на библиотеката щракнете върху затвори

    Добавяне на библиотека от

    SketchincludeLibraryArduinoJson

Стъпка 5: Програма

Качете следната програма на платката NodeMCU. и вижте местоположението на вашето устройство (платка NodeMCU 1.0 12E) на сериен монитор.

#включва

#включва

#включва

char myssid = "Вашият SSID"; // вашият мрежов SSID (име)

char mypass = "Вашата парола"; // вашата парола за мрежата

// Идентификационни данни за Google GeoLocation API …

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

Низ thisPage = "/geolocation/v1/geolocate? Key =";

// --- Вземете ключ за приложение на Google Maps тук:

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

String key = "Вашият Google API ключ"; // Намерете от стъпка2

Инструкция

int status = WL_IDLE_STATUS;

Низ jsonString = "{ n";

двойна ширина = 0,0;

двойна дължина = 0,0;

двойна точност = 0,0;

int more_text = 1; // зададен на 1 за повече изход за отстраняване на грешки

void setup () {

Serial.begin (9600);

Serial.println ("Старт");

// Задайте WiFi в режим на станция и

изключете от точка за достъп, ако тя е била свързана преди това

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

забавяне (100);

Serial.println ( Настройка

Свършен );

// Започваме, като се свързваме с a

WiFi мрежа

Serial.print („Свързване към

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

забавяне (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("начало на сканиране");

// WiFi.scanNetworks ще се върне

броя на намерените мрежи

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

ако (n == 0)

Serial.println ("няма намерени мрежи");

иначе

{

Serial.print (n);

Serial.println ("мрежи, открити …");

if (more_text) {

// Отпечатайте форматирания json …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // това е истински UK MCC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // и истинско UK MNC

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

Serial.println ("\" превозвач / ": \" Vodafone / ","); // свързан с Vodafone

Serial.println ("\" cellTowers / ": ["); // Не докладвам никакви клетъчни кули

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

ако (i <n - 1)

{

Serial.println ("},");

}

иначе

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// сега изграждаме jsonString …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // това е истински UK MCC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // и истинско UK MNC

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

jsonString += "\" превозвач / ": \" Vodafone / ", / n"; // свързан с Vodafone

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

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

{

jsonString += "{ n";

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

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

jsonString += "\", / n ";

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

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

ако (j <n - 1)

{

jsonString += "}, / n";

}

иначе

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

Клиент WiFiClientSecure;

// Свържете се с клиента и направете api обаждане

Serial.print ("Искащ URL адрес:");

// ---- Вземете API ключ на Google Карти тук, Връзка:

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

Serial.println ("");

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

Serial.println ("Свързан");

client.println ("POST" + thisPage + ключ + "HTTP/1.1");

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

client.println ("Връзка: затваряне");

client.println ("Тип съдържание: приложение/json");

client.println ("Потребителски агент: Arduino/1.0");

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

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

забавяне (500);

}

// Прочетете и анализирайте всички редове на

отговора от сървъра

while (client.available ()) {

Низов ред = client.readStringUntil ('\ r');

if (more_text) {

Serial.print (ред);

}

JsonObject & root = jsonBuffer.parseObject (ред);

if (root.success ()) {

latitude = root ["location"] ["lat"];

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

точност = корен ["точност"];

}

}

Serial.println ("затваряне на връзка");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (географска ширина, 6);

Serial.print ("Longitude =");

Serial.println (дължина, 6);

Serial.print ("Точност =");

Serial.println (точност);

забавяне (10000);

Serial.println ();

Serial.println ("Рестартиране …");

Serial.println ();

забавяне (2000);

}

Препоръчано: