
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

Это мой проект летней стажировки. Я действительно удивляюсь, когда слышу, что мы можем отслеживать местоположение любого устройства без использования модуля 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



- Откройте свой браузер и введите: console.developer.google.com.
- Создать новый проект
- После создания нового проекта нажмите учетные данные
- Нажмите на API-ключ
-
Ваш ключ API был создан
Для облегчения понимания см. Следующую картинку |>
Шаг 3. Настройте 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

- Перейти к
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);
}
Рекомендуемые:
Дизайн игры в Flick за 5 шагов: 5 шагов

Дизайн игры в Flick за 5 шагов: Flick - это действительно простой способ создания игры, особенно чего-то вроде головоломки, визуального романа или приключенческой игры
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)

Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Играйте в Doom на своем IPod за 5 простых шагов !: 5 шагов

Играйте в Doom на своем IPod за 5 простых шагов!: Пошаговое руководство по двойной загрузке Rockbox на iPod, чтобы играть в Doom и десятки других игр. Это действительно легко сделать, но многие люди до сих пор удивляются, когда видят, как я играю дум на своем iPod, и путаются с инструкциями
Кормушка для рыбы Arduino Uno за 6 простых и простых шагов !: 6 шагов

Arduino Uno Fish Feeder за 6 простых и дешевых шагов !: Итак, для этого проекта может потребоваться немного предыстории. Людям с домашними рыбками, вероятно, приходилось сталкиваться с той же проблемой, что и мне: отпуск и забывчивость. Я постоянно забывала покормить рыбу и всегда старалась это сделать, пока она не упала
Акустическая левитация с Arduino Uno, шаг за шагом (8 шагов): 8 шагов

Акустическая левитация с Arduino Uno Пошаговая инструкция (8 шагов): ультразвуковые преобразователи звука L298N Женский адаптер питания постоянного тока с штыревым контактом постоянного тока Arduino UNOBreadboard Как это работает: сначала вы загружаете код в Arduino Uno (это микроконтроллер, оснащенный цифровым и аналоговые порты для преобразования кода (C ++)