Inhoudsopgave:

Locatietracker met NodeMCU ESP8266 - Ajarnpa
Locatietracker met NodeMCU ESP8266 - Ajarnpa

Video: Locatietracker met NodeMCU ESP8266 - Ajarnpa

Video: Locatietracker met NodeMCU ESP8266 - Ajarnpa
Video: Создайте приложение для отслеживания местоположения gps в android Изобретатель приложений MIT 2024, November
Anonim
Locatietracker met NodeMCU ESP8266
Locatietracker met NodeMCU ESP8266

Ben je benieuwd hoe je NodeMCU je locatie kan volgen? Het kan, ook zonder GPS-module en zonder display. De uitvoer zal de coördinaten zijn waar u zich bevindt en u zult ze zien in uw seriële monitor.

De volgende setup werd gebruikt voor NodeMCU 1.0 (ESP-12E Module) met Arduino IDE.

  • Windows 10
  • Arduino IDE v. 1.8.4

Stap 1: Wat heb je nodig?

Wat je nodig hebt om deze tutorial te volgen, zijn de volgende onderdelen:

  • Micro-USB-kabel
  • NodeMCU ESP8266

Verder heb je nodig:

  • Locatie-API (van Unwired Labs)
  • Toegang tot wifi of een hotspot

Stap 2: Ga naar Unwired Labs

Ga naar Unwired Labs
Ga naar Unwired Labs

Geolocatie is erg handig, want als je GPS niet werkt, kun je Geolocatie nog steeds gebruiken om je locatie te volgen. Onze host die geolocatie biedt, is https://www.unwiredlabs.com/. Ga naar die website en meld je aan (de oranje knop in de rechterbovenhoek).

Stap 3: Meld u aan om een API-token te krijgen

Meld u aan om een API-token te krijgen
Meld u aan om een API-token te krijgen

Op de aanmeldingspagina moet u uw naam, e-mail (uw API-token wordt naar uw e-mail verzonden) en use case (bijvoorbeeld persoonlijk gebruik) invullen. Selecteer uw accounttype. De gratis versie doet het prima, maar houd er rekening mee dat je beperkt bent en je locatie niet 24/7 kunt volgen. Laten we beginnen!

Stap 4: Controleer uw e-mail

Ga naar je e-mail en je ziet je API-token. Kopieer de API-token, want die heb je nodig voor de code die we gaan gebruiken. Zo ziet de e-mail eruit:

Hallo!

Bedankt voor het aanmelden bij Unwired Labs LocationAPI! Uw API-token is 'uw API-code is hier' (zonder aanhalingstekens). Dit geeft 100 gratis verzoeken per dag - voor altijd.

Als je 5 apparaten gratis wilt volgen, reageer dan met de volgende details en we zullen je account binnen 12 uur upgraden:

1. Implementatietype (Hardware/App/Overig):

2. Over uw project:

3. Website:

U kunt hier inloggen op uw dashboard: https://unwiredlabs.com/dashboard. Als u problemen ondervindt of vragen heeft, beantwoordt u deze e-mail en ik help u verder!

Gelukkig lokaliseren!

Sagar

Bekabelde Labs

Stap 5: Bibliotheken die u nodig heeft

Bibliotheken die u nodig heeft
Bibliotheken die u nodig heeft

De volgende stap is om Arduino te openen en bibliotheken te beheren. U moet de ArduinoJson-bibliotheek installeren. De andere bibliotheken zijn al ingebouwd. Als je klaar bent, kun je beginnen met het schrijven van de code.

Stap 6: Code toevoegen in Arduino om verbinding te maken met LocationAPI

Maak een nieuwe schets en voeg de volgende code toe in Arduino. Schrijf uw eigen wifi/hotspot-naam en uw wachtwoord. Plak de API-token die je in de e-mail hebt ontvangen. Upload uw code naar uw NodeMCU.

#erbij betrekken

#erbij betrekken

#include "ESP8266WiFi.h"

// uw netwerk-SSID (naam) en netwerkwachtwoord

char myssid = "Uw wifi/hotspot-naam"; char mypass = "Uw wachtwoord";

// unwiredlabs Hostnaam & Geolocatie Eindpunt url

const char* Host = "www.unwiredlabs.com"; String eindpunt = "/v2/process.php";

// UnwiredLabs API_Token. Meld u hier aan om een gratis token te krijgen

Tekenreekstoken = "d99cccda52ec0b";

String jsonString = "{n";

// Variabelen om de reactie van unwiredlabs op te slaan

dubbele breedtegraad = 0,0; dubbele lengtegraad = 0,0; dubbele nauwkeurigheid = 0,0;

ongeldige setup(){

Serieel.begin(115200);

// Stel wifi in op stationsmodus en verbreek de verbinding met een AP als deze eerder was verbonden

WiFi.modus (WIFI_STA); WiFi.verbinding verbreken(); Serial.println("Setup klaar");

// We beginnen door verbinding te maken met een wifi-netwerk

Serial.print("Verbinding maken met "); Serial.println(myssid); WiFi.begin(myssid, mypass);

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

vertraging (500); Serieel.print("."); } Serieel.println("."); }

lege lus() {

char bssid[6]; DynamischeJsonBuffer jsonBuffer;

// WiFi.scanNetworks retourneert het aantal gevonden netwerken

int n = WiFi.scanNetworks(); Serial.println("scan klaar");

als (n == 0) {

Serial.println("Geen netwerken beschikbaar"); } else { Serial.print(n); Serial.println ("netwerken gevonden"); }

// bouw nu de 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 += "\"signaal\": "; jsonString += WiFi. RSSI(j); jsonString += "\n"; if (j < n - 1) { jsonString += "}, \n"; } else { jsonString += "}\n"; } } jsonString += ("]\n"); jsonString += ("}\n"); Serial.println(jsonString);

WiFiClientSecure-client;

// Maak verbinding met de client en voer de api-oproep

Serial.println("Aanvraag-URL: https://" + (String)Host + eindpunt); if (client.connect(Host, 443)) { Serial.println("Verbonden"); client.println("POST" + eindpunt + "HTTP/1.1"); client.println("Host: " + (String)Host); client.println("Verbinding: sluiten"); client.println ("Inhoudstype: applicatie/json"); client.println ("Gebruiker-agent: Arduino/1.0"); client.print ("Inhoudslengte: "); client.println(jsonString.length()); klant.println(); client.print(jsonString); vertraging (500); }

//Lees en ontleden alle regels van het antwoord van de server

while (client.available()) { String line = client.readStringUntil('\r'); JsonObject& root = jsonBuffer.parseObject(regel); if (root.success()) { latitude = root["lat"]; lengtegraad = wortel ["lon"]; nauwkeurigheid = wortel ["nauwkeurigheid"];

Serieel.println();

Serial.print("Breedte = "); Serial.println (breedtegraad, 6); Serial.print("Lengte = "); Serial.println (lengtegraad, 6); Serial.print("Nauwkeurigheid = "); Serial.println(nauwkeurigheid); } }

Serial.println("verbinding sluiten");

Serieel.println(); klant.stop();

vertraging (5000);

}

Stap 7: Open de seriële monitor om te zien of u verbonden bent

Ga naar tools in Arduino en open de seriële monitor. Om te zien of je verbonden bent met internet, zou je het volgende moeten zien op de seriële monitor:

Installatie klaar

Verbinding maken met (uw wifi-naam) … scan voltooid

Stap 8: Verkrijg de coördinaten

Als het met succes werkte, zou u onder scan gedaan een hele lijst met gegevens moeten zien. Het enige dat we nodig hebben, is de code onder de aanvragende URL, dus we hebben de lengte- en breedtegraad nodig. Dit zijn de coördinaten.

Aanvraag-URL:

Verbonden

Breedtegraad = 52.385259

Lengtegraad = 5.196099

Nauwkeurigheid = 41,00

verbinding sluiten

Na 5 seconden wordt de code constant bijgewerkt en ziet u waarschijnlijk de breedtegraad, lengtegraad en nauwkeurigheid veranderen. Dat komt omdat de API zijn best doet om de locatie zo precies mogelijk te volgen.

Stap 9: Ga naar Google Maps

Ga naar Google Maps
Ga naar Google Maps

Ga naar https://www.google.com/maps/ en typ je coördinaten in de zoekbalk. De coördinaten moeten op de volgende manier worden geschreven: 52.385259, 5.196099. Google Maps zou moeten laten zien waar u zich op de kaart bevindt.

Stap 10: Locatie naar uw mobiel verzenden

Locatie naar uw mobiel verzenden
Locatie naar uw mobiel verzenden

En je bent klaar! Dus als je de locatie naar je mobiel wilt sturen, is dat mogelijk. Google Maps stuurt vervolgens een e-mail met uw coördinaten als u dat wilt.

Gelukkig lokaliseren!

Aanbevolen: