Оглавление:

ГЕОЛОАКАЦИЯ: 5 шагов
ГЕОЛОАКАЦИЯ: 5 шагов

Видео: ГЕОЛОАКАЦИЯ: 5 шагов

Видео: ГЕОЛОАКАЦИЯ: 5 шагов
Видео: Как включить геолокацию на Андроид телефоне ? 2024, Сентябрь
Anonim
ГЕОЛОАКАЦИЯ
ГЕОЛОАКАЦИЯ

Это мой проект летней стажировки. Я действительно удивляюсь, когда слышу, что мы можем отслеживать местоположение любого устройства без использования модуля GPS, только с помощью NodeMCU. Благодаря этому мы можем отследить любое устройство. Вы также удивляетесь, как мы можем отследить устройство, используя только Wi-Fi. Вот описание сортировки, чтобы понять это.

  • · Это сканирование почти всего вашего Wi-Fi.
  • · Отправить местоположение этого устройства в Google с помощью Google API
  • · В соответствии с этим он определяет местоположение вашего устройства
  • · У вас есть надежное сетевое соединение для этого проекта.

Шаг 1: Детали и инструмент

Запчасти

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

Инструменты

Arduino IDE с платой NodeMcu 1.0 12E

Google API

Шаг 2. Найдите Google API

Найдите Google API
Найдите Google API
Найдите Google API
Найдите Google API
Найдите Google API
Найдите Google API
  • Откройте свой браузер и введите: 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. Главная / Программное обеспечение arduino.cc/ru/
  • Добавить плату Node MCu в Arduino IDE
  • Для загрузки кода на NodeMCU вам необходимо добавить плату NodeMCu в ARDUINO IDE.

    • Перейти к файлу и настройкам в Arduino IDE
    • А в разделе Additional Board manager скопируйте следующую ссылку
    • arduino.esp8266.com/stable/package_esp8266c…
    • и нажмите ОК
    • Доска загружена
    • Перейдите к инструментам и доске и выберите NodeMCU 1.0 12E.
    • См. Картинку для облегчения понимания

Шаг 4: Загрузите библиотеку ArduinoJson

Скачать библиотеку ArduinoJson
Скачать библиотеку ArduinoJson
  • Перейти к
  • Sketch Включить библиотеку Управление библиотекой

    Введите 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 =";

// --- получим ключ ap для карт google:

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 ( Настройка

сделано );

// Начнем с подключения к

Сеть Wi-Fi

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 («скандон»);

если (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,"); // и настоящая британская 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));

если (я <п - 1)

{

Serial.println ("},");

}

еще

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// теперь создаем jsonString…

jsonString = "{ п";

jsonString + = "\" homeMobileCountryCode / ": 234, / n"; // это настоящий UK MCC

jsonString + = "\" homeMobileNetworkCode / ": 27, / n"; // и настоящая британская MNC

jsonString + = "\" radioType / ": \" GSM / ", / n"; // для GSM

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

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

для (int j = 0; j <n; ++ j)

{

jsonString + = "{ п";

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

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

jsonString + = "\", / n ";

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

jsonString + = WiFi. RSSI (j);

jsonString + = "\ п";

если (j <n - 1)

{

jsonString + = "}, / n";

}

еще

{

jsonString + = "} п";

}

}

jsonString + = ("] п");

jsonString + = ("} п");

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

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 + key + "HTTP / 1.1");

client.println ("Хост:" + (Строка) Хост);

client.println ("Соединение: закрыть");

client.println ("Content-Type: application / json");

client.println («Пользовательский агент: Arduino / 1.0»);

client.print ("Длина содержимого:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

задержка (500);

}

// Читаем и разбираем все строки

ответ от сервера

while (client.available ()) {

Строка line = client.readStringUntil ('\ r');

if (more_text) {

Serial.print (строка);

}

JsonObject & root = jsonBuffer.parseObject (строка);

if (root.success ()) {

широта = корень ["местоположение"] ["широта"];

долгота = корень ["местоположение"] ["долгота"];

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

}

}

Serial.println («закрывающее соединение»);

Serial.println ();

client.stop ();

Serial.print ("Широта =");

Serial.println (широта, 6);

Serial.print ("Долгота =");

Serial.println (долгота, 6);

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

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

задержка (10000);

Serial.println ();

Serial.println («Перезапуск…»);

Serial.println ();

задержка (2000);

}

Рекомендуемые: