Съдържание:

Проследяване на местоположението с NodeMCU ESP8266: 10 стъпки
Проследяване на местоположението с NodeMCU ESP8266: 10 стъпки

Видео: Проследяване на местоположението с NodeMCU ESP8266: 10 стъпки

Видео: Проследяване на местоположението с NodeMCU ESP8266: 10 стъпки
Видео: ОБУЧЕНИЕ МОНИТОРИНГУ ПОЗИЦИИ ОБЪЕКТОВ НА ОСНОВЕ IoT (ИНТЕРНЕТ ВЕЩЕЙ) - P2M FT UNJ 2003 #3 2024, Ноември
Anonim
Проследяване на местоположението с NodeMCU ESP8266
Проследяване на местоположението с NodeMCU ESP8266

Любопитни ли сте как вашият NodeMCU може да проследи вашето местоположение? Възможно е дори без GPS модул и без дисплей. Изходът ще бъде координати, където се намирате и ще ги видите на вашия сериен монитор.

Следната настройка е използвана за NodeMCU 1.0 (ESP-12E модул) с Arduino IDE.

  • Windows 10
  • Arduino IDE v. 1.8.4

Стъпка 1: Какво ви трябва

Това, от което се нуждаете, за да следвате този урок, са следните компоненти:

  • Микро USB кабел
  • NodeMCU ESP8266

Освен това ще ви трябва:

  • LocationAPI (от Unwired Labs)
  • Достъп до wifi или гореща точка

Стъпка 2: Отидете в Нежични лаборатории

Отидете в Нежични лаборатории
Отидете в Нежични лаборатории

Геолокацията е много полезна, защото когато GPS -то ви е изключено, все още можете да използвате Geolocation за проследяване на вашето местоположение. Нашият хост, който осигурява геолокация, ще бъде https://www.unwiredlabs.com/. Отидете на този уебсайт и се регистрирайте (оранжевият бутон в горния десен ъгъл).

Стъпка 3: Регистрирайте се, за да получите API Token

Регистрирайте се, за да получите API маркер
Регистрирайте се, за да получите API маркер

На страницата за регистрация трябва да попълните вашето име, имейл (вашият API маркер ще бъде изпратен на вашия имейл) и случай на използване (например за лична употреба). Изберете типа на акаунта си. Безплатната версия ще се справи отлично, но имайте предвид, че сте ограничени и не можете да проследявате местоположението си денонощно. Да започваме!

Стъпка 4: Проверете имейла си

Отидете на имейла си и ще видите вашия API маркер. Копирайте API маркера, защото имате нужда от това за кода, който ще използваме. Ето как изглежда имейлът:

Здравейте!

Благодарим ви, че се регистрирахте в Unwired Labs LocationAPI! Вашият API маркер е „вашият API код е тук“(без кавички). Това ще даде 100 заявки на ден безплатно - завинаги.

Ако искате да проследявате 5 устройства безплатно, моля, отговорете със следните подробности и ние ще надстроим акаунта ви в рамките на 12 часа:

1. Тип на внедряване (Хардуер/ Приложение/ Друго):

2. За вашия проект:

3. Уебсайт:

Можете да влезете в таблото си за управление тук: https://unwiredlabs.com/dashboard. Ако срещнете проблеми или имате въпроси, отговорете на този имейл и аз ще ви помогна!

Честито намиране!

Сагар

Нежични лаборатории

Стъпка 5: Библиотеки, които ще ви трябват

Библиотеки, които ще ви трябват
Библиотеки, които ще ви трябват

Следващата стъпка е да отворите Arduino и да отидете да управлявате библиотеки. Трябва да инсталирате библиотеката ArduinoJson. Другите библиотеки вече са вградени. Когато сте готови, можете да започнете да пишете кода.

Стъпка 6: Добавете код в Arduino, за да се свържете с LocationAPI

Направете нова скица и добавете следния код в Arduino. Напишете собствено име на wifi/hotspot и паролата си. Поставете маркера на API, който сте получили в имейла. Качете вашия код във вашия NodeMCU.

#включва

#включва

#include "ESP8266WiFi.h"

// вашият мрежов SSID (име) и мрежова парола

char myssid = "Името на вашия wifi/hotspot"; char mypass = "Вашата парола";

// unwiredlabs URL адрес на име на хост и геолокация

const char* Host = "www.unwiredlabs.com"; Низова крайна точка = "/v2/process.php";

// UnwiredLabs API_Token. Регистрирайте се тук, за да получите безплатен жетон

Низов жетон = "d99cccda52ec0b";

Низ jsonString = "{ n";

// Променливи за съхраняване на отговор на unwiredlabs

двойна ширина = 0,0; двойна дължина = 0,0; двойна точност = 0,0;

void setup () {

Serial.begin (115200);

// Задайте WiFi в режим на станция и изключете от точка за достъп, ако преди това е била свързана

WiFi.mode (WIFI_STA); WiFi.disconnect (); Serial.println ("Настройката е извършена");

// Започваме със свързване към 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;

// WiFi.scanNetworks ще върне броя на намерените мрежи

int n = WiFi.scanNetworks (); Serial.println ("сканирането е извършено");

ако (n == 0) {

Serial.println ("Няма налични мрежи"); } else {Serial.print (n); Serial.println ("намерени мрежи"); }

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

jsonString = "{ n"; jsonString += "\" token / ": \" "; jsonString += token; jsonString +=" / ", / n"; jsonString += "\" id / ": \" saikirandevice01 / ", / n"; jsonString += "\" wifi / ": [n"; for (int j = 0; j <n; ++ j) {jsonString += "{ n"; jsonString += "\" bssid / ": \" "; jsonString += (WiFi. BSSIDstr (j)); jsonString +=" / ", / n"; jsonString += "\" сигнал / ":"; jsonString += WiFi. RSSI (j); jsonString += "\ n"; if (j <n - 1) {jsonString += "}, / n"; } else {jsonString += "} n"; }} jsonString += ("] n"); jsonString += ("} n"); Serial.println (jsonString);

Клиент WiFiClientSecure;

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

Serial.println ("Искащ URL: https://" + (Низ) Хост + крайна точка); if (client.connect (Host, 443)) {Serial.println ("Свързан"); client.println ("POST" + крайна точка + "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 ()) {String line = client.readStringUntil ('\ r'); JsonObject & root = jsonBuffer.parseObject (ред); if (root.success ()) {latitude = root ["lat"]; longitude = root ["lon"]; точност = корен ["точност"];

Serial.println ();

Serial.print ("Latitude ="); Serial.println (географска ширина, 6); Serial.print ("Longitude ="); Serial.println (дължина, 6); Serial.print ("Точност ="); Serial.println (точност); }}

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

Serial.println (); client.stop ();

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

}

Стъпка 7: Отворете серийния монитор, за да видите дали сте свързани

Отидете на инструментите в Arduino и отворете серийния монитор. За да видите дали сте свързани с интернет, трябва да видите следното в серийния монитор:

Настройката е извършена

Свързване с (вашето име на wifi) … сканирането е завършено

Стъпка 8: Вземете координатите

Ако работи успешно, трябва да видите под сканиране направен цял списък от данни. Единственото нещо, от което се нуждаем, е кодът под URL искането, така че ще ни трябват географската ширина и дължина. Това са координатите.

Искащ URL адрес:

Свързан

Географска ширина = 52,385259

Географска дължина = 5,196099

Точност = 41,00

затваряне на връзката

След 5 секунди кодът непрекъснато ще се актуализира и вероятно ще видите промяна на географската ширина, дължина и точност. Това е така, защото API се опитва най -добре да проследи местоположението възможно най -точно.

Стъпка 9: Отидете на Google Maps

Отидете на Google Maps
Отидете на Google Maps

Отидете на https://www.google.com/maps/ и въведете координатите си в лентата за търсене. Координатите трябва да бъдат записани по следния начин: 52.385259, 5.196099. Google Maps трябва да показва къде се намирате на картата.

Стъпка 10: Изпратете местоположението на мобилния си телефон

Изпратете местоположението на мобилния си телефон
Изпратете местоположението на мобилния си телефон

И … Готово! Следователно, ако искате да изпратите местоположението на мобилния си телефон, това е възможно. След това Google Maps ще изпрати имейл с вашите координати, ако желаете.

Приятно намиране!

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