Съдържание:
- Стъпка 1: Части и инструмент
- Стъпка 2: Намерете API на Google
- Стъпка 3: Инсталирайте NodeMCu на Arduino IDE
- Стъпка 4: Изтеглете библиотеката ArduinoJson
- Стъпка 5: Програма
Видео: ГЕОЛОКАЦИЯ: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Това е моят проект за летен стаж. Наистина се изненадвам, когато чуя, че можем да проследим местоположението на всяко устройство, без да използваме 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
- Отворете браузъра си и въведете: console.developer.google.com
- Създайте нов проект
- След като създадете нов проект щракнете върху идентификационните данни
- Щракнете върху API ключ
-
Вашият API ключ е генериран
За лесно разбиране вижте следната снимка |>
Стъпка 3: Инсталирайте 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
- Отидете на
Скица Включване на библиотека Управление на библиотека
Въведете 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);
}
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: 3 стъпки
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: КУПЕТЕ (щракнете върху теста, за да закупите/посетете уеб страницата) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH използва се за програмиране на STM микроконтролери
Как да направите 4G LTE двойна BiQuade антена Лесни стъпки: 3 стъпки
Как да направя 4G LTE двойна BiQuade антена лесни стъпки: През повечето време, с което се сблъсквах, нямам добра сила на сигнала за ежедневните ми работи. Така. Търся и опитвам различни видове антени, но не работи. След загубено време намерих антена, която се надявам да направя и изпробвам, защото тя не градивен принцип
Дизайн на играта с бързо движение в 5 стъпки: 5 стъпки
Дизайн на игра с Flick в 5 стъпки: Flick е наистина прост начин да направите игра, особено нещо като пъзел, визуален роман или приключенска игра
Система за предупреждение за паркиране на автомобил Arduino - Стъпки по стъпка: 4 стъпки
Система за предупреждение за паркиране на автомобил Arduino | Стъпки по стъпка: В този проект ще проектирам обикновена верига за сензори за паркиране на автомобил Arduino, използвайки Arduino UNO и HC-SR04 ултразвуков сензор. Тази базирана на Arduino система за предупреждение за автомобил за заден ход може да се използва за автономна навигация, измерване на роботи и други обхвати