Indholdsfortegnelse:

Location Tracker With NodeMCU ESP8266: 10 trin
Location Tracker With NodeMCU ESP8266: 10 trin

Video: Location Tracker With NodeMCU ESP8266: 10 trin

Video: Location Tracker With NodeMCU ESP8266: 10 trin
Video: Real Time GPS Location Tracker | Nodemcu ESP8266 2024, November
Anonim
Placeringssporing med NodeMCU ESP8266
Placeringssporing med NodeMCU ESP8266

Er du nysgerrig efter, hvordan din NodeMCU kan spore din placering? Det er muligt, selv uden et GPS -modul og uden display. Outputtet vil være koordinater, hvor du er placeret, og du vil se dem på din serielle skærm.

Følgende opsætning blev brugt til NodeMCU 1.0 (ESP-12E Module) med Arduino IDE.

  • Windows 10
  • Arduino IDE v. 1.8.4

Trin 1: Hvad har du brug for

Hvad du har brug for for at følge denne vejledning er følgende komponenter:

  • Micro USB kabel
  • NodeMCU ESP8266

Desuden skal du bruge:

  • LocationAPI (fra Unwired Labs)
  • Adgang til wifi eller et hotspot

Trin 2: Gå til Unwired Labs

Gå til Unwired Labs
Gå til Unwired Labs

Geolocation er meget praktisk, for når din GPS er nede, kan du stadig bruge Geolocation til at spore din placering. Vores vært, der leverer geografisk placering, vil være https://www.unwiredlabs.com/. Gå til dette websted og tilmeld dig (den orange knap i øverste højre hjørne).

Trin 3: Tilmeld dig for at få API -token

Tilmeld dig for at få API -token
Tilmeld dig for at få API -token

På tilmeldingssiden skal du udfylde dit navn, din e -mail (dit API -token sendes til din e -mail) og use case (f.eks. Personlig brug). Vælg din kontotype. Den gratis version klarer sig fint, men husk på, at du er begrænset og ikke kan spore din placering døgnet rundt. Lad os komme igang!

Trin 4: Tjek din e -mail

Gå til din e -mail, og du vil se dit API -token. Kopiér API -tokenet, fordi du har brug for det til den kode, vi skal bruge. Sådan ser mailen ud:

Hej!

Tak fordi du tilmeldte dig Unwired Labs LocationAPI! Dit API -token er 'din API -kode er her' (uden anførselstegn). Dette vil give 100 anmodninger/ dag gratis - for evigt.

Hvis du gerne vil spore 5 enheder gratis, skal du svare med følgende oplysninger, og vi opgraderer din konto inden for 12 timer:

1. Implementeringstype (hardware/ app/ andet):

2. Om dit projekt:

3. Hjemmeside:

Du kan logge ind på dit dashboard her: https://unwiredlabs.com/dashboard. Hvis du støder på problemer eller har spørgsmål, skal du besvare denne e -mail, så hjælper jeg dig!

Glad lokalisering!

Sagar

Ukablede laboratorier

Trin 5: Biblioteker, du får brug for

Biblioteker, du får brug for
Biblioteker, du får brug for

Det næste trin er at åbne Arduino og gå til at administrere biblioteker. Du skal installere ArduinoJson -biblioteket. De andre biblioteker er allerede indbygget. Når du er klar, kan du begynde at skrive koden.

Trin 6: Tilføj kode i Arduino for at oprette forbindelse til LocationAPI

Lav en ny skitse og tilføj følgende kode i Arduino. Skriv dit eget wifi/hotspot -navn og din adgangskode. Indsæt API -tokenet, du modtog i e -mailen. Upload din kode til din NodeMCU.

#omfatte

#omfatte

#include "ESP8266WiFi.h"

// dit netværks -SSID (navn) og netværksadgangskode

char myssid = "Dit wifi/hotspots navn"; char mypass = "Dit kodeord";

// unwiredlabs Værtsnavn & geografisk slutpunkt url

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

// UnwiredLabs API_Token. Tilmeld dig her for at få et gratis token

String token = "d99cccda52ec0b";

String jsonString = "{ n";

// Variabler til lagring af unwiredlabs respons

dobbelt breddegrad = 0,0; dobbelt længdegrad = 0,0; dobbelt nøjagtighed = 0,0;

ugyldig opsætning () {

Serial.begin (115200);

// Indstil WiFi til stationstilstand, og afbryd forbindelsen til et AP, hvis det tidligere var tilsluttet

WiFi.mode (WIFI_STA); WiFi.disconnect (); Serial.println ("Opsætning udført");

// Vi starter med at oprette forbindelse til et WiFi -netværk

Serial.print ("Opretter forbindelse til"); Serial.println (myssid); WiFi. Begyndt (myssid, mypass);

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

forsinkelse (500); Serial.print ("."); } Serial.println ("."); }

void loop () {

char bssid [6]; DynamicJsonBuffer jsonBuffer;

// WiFi.scanNetworks returnerer antallet af fundne netværk

int n = WiFi.scanNetworks (); Serial.println ("scanning udført");

hvis (n == 0) {

Serial.println ("Ingen tilgængelige netværk"); } andet {Serial.print (n); Serial.println ("netværk fundet"); }

// byg nu 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 += "\" signal / ":"; jsonString += WiFi. RSSI (j); jsonString += "\ n"; hvis (j <n - 1) {jsonString += "}, / n"; } ellers {jsonString += "} n"; }} jsonString += ("] n"); jsonString += ("} n"); Serial.println (jsonString);

WiFiClientSecure klient;

// Opret forbindelse til klienten, og foretag api -opkaldet

Serial.println ("Anmodning om URL: https://" + (String) Host + slutpunkt); if (client.connect (Host, 443)) {Serial.println ("Connected"); client.println ("POST" + slutpunkt + "HTTP/1.1"); client.println ("Host:" + (String) Host); client.println ("Forbindelse: luk"); client.println ("Indholdstype: applikation/json"); client.println ("Bruger-agent: Arduino/1.0"); client.print ("Indholdslængde:"); client.println (jsonString.length ()); client.println (); client.print (jsonString); forsinkelse (500); }

// Læs og analyser alle linjer i svaret fra serveren

mens (client.available ()) {String line = client.readStringUntil ('\ r'); JsonObject & root = jsonBuffer.parseObject (linje); hvis (root.success ()) {latitude = root ["lat"]; længdegrad = root ["lon"]; precision = root ["precision"];

Serial.println ();

Serial.print ("Latitude ="); Serial.println (breddegrad, 6); Serial.print ("Longitude ="); Serial.println (længdegrad, 6); Serial.print ("Nøjagtighed ="); Serial.println (nøjagtighed); }}

Serial.println ("lukning af forbindelse");

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

forsinkelse (5000);

}

Trin 7: Åbn den serielle skærm for at se, om du har forbindelse

Gå til værktøjer i Arduino, og åbn den serielle skærm. For at se, om du har forbindelse til internettet, skal du se følgende på den serielle skærm:

Opsætning udført

Opretter forbindelse til (dit wifi -navn) … scanning udført

Trin 8: Få koordinaterne

Hvis det fungerede med succes, bør du se under scanning en hel liste med data. Det eneste, vi har brug for, er koden under den anmodende URL, så vi får brug for breddegrad og længdegrad. Disse er koordinaterne.

Anmodende URL:

Tilsluttet

Breddegrad = 52.385259

Længdegrad = 5.196099

Nøjagtighed = 41,00

lukning af forbindelse

Efter 5 sekunder opdateres koden konstant, og du vil sandsynligvis se breddegrad, længdegrad og nøjagtighed ændre sig. Det er fordi API'en prøver at det er bedst at spore placeringen så præcist som muligt.

Trin 9: Gå til Google Maps

Gå til Google Maps
Gå til Google Maps

Gå til https://www.google.com/maps/, og indtast dine koordinater i søgelinjen. Koordinaterne skal skrives på følgende måde: 52.385259, 5.196099. Google Maps skal vise, hvor du befinder dig på kortet.

Trin 10: Send placering til din mobil

Send placering til din mobil
Send placering til din mobil

Og … du er færdig! Derfor, hvis du vil sende placeringen til din mobil, er det muligt. Google Maps sender derefter en e -mail med dine koordinater, hvis du vil.

God lokalisering!

Anbefalede: