Taula de continguts:

Localitzador de localitzacions amb NodeMCU ESP8266: 10 passos
Localitzador de localitzacions amb NodeMCU ESP8266: 10 passos

Vídeo: Localitzador de localitzacions amb NodeMCU ESP8266: 10 passos

Vídeo: Localitzador de localitzacions amb NodeMCU ESP8266: 10 passos
Vídeo: Proyecto GPS final 2024, Juliol
Anonim
Localitzador de localitzacions amb NodeMCU ESP8266
Localitzador de localitzacions amb NodeMCU ESP8266

Teniu curiositat per saber com el vostre NodeMCU pot fer un seguiment de la vostra ubicació? És possible, fins i tot sense un mòdul GPS i sense pantalla. La sortida serà les coordenades on es troba i les veureu al vostre monitor sèrie.

La configuració següent es va utilitzar per a NodeMCU 1.0 (mòdul ESP-12E) amb IDE Arduino.

  • Windows 10
  • Arduino IDE v. 1.8.4

Pas 1: què necessiteu?

El que necessiteu per seguir aquest tutorial són els components següents:

  • Cable micro USB
  • NodeMCU ESP8266

A més, necessitareu:

  • LocationAPI (de Unwired Labs)
  • Accés a wifi o a un punt d'accés Wi-Fi

Pas 2: aneu a Unwired Labs

Aneu a Unwired Labs
Aneu a Unwired Labs

La geolocalització és molt útil perquè, quan el GPS no funciona, encara podeu fer servir la geolocalització per fer un seguiment de la vostra ubicació. El nostre amfitrió que proporciona geolocalització serà https://www.unwiredlabs.com/. Aneu a aquest lloc web i inscriviu-vos (el botó taronja a l'extrem superior dret).

Pas 3: registreu-vos per obtenir el testimoni de l'API

Inscriviu-vos per obtenir el testimoni de l'API
Inscriviu-vos per obtenir el testimoni de l'API

A la pàgina d’inscripció, heu d’emplenar el vostre nom, correu electrònic (el vostre testimoni API s’enviarà al vostre correu electrònic) i casos d’ús (per exemple, ús personal). Seleccioneu el tipus de compte. La versió gratuïta funcionarà bé, però tingueu en compte que sou limitats i no podeu fer un seguiment de la vostra ubicació les 24 hores del dia, els 7 dies de la setmana. Comencem!

Pas 4: comproveu el vostre correu electrònic

Aneu al vostre correu electrònic i veureu el vostre testimoni API. Copieu el testimoni API, perquè el necessiteu per al codi que farem servir. Així és com es veu el correu electrònic:

Hola!

Gràcies per registrar-vos a Unapired Labs LocationAPI. El vostre testimoni API és "el vostre codi API és aquí" (sense cometes). Això donarà 100 sol·licituds al dia de forma gratuïta, per sempre.

Si voleu fer un seguiment gratuït de 5 dispositius, responeu amb els detalls següents i actualitzarem el vostre compte en un termini de 12 hores:

1. Tipus de desplegament (maquinari / aplicació / altres):

2. Quant al vostre projecte:

3. Lloc web:

Podeu iniciar la sessió al vostre tauler aquí: https://unwiredlabs.com/dashboard. Si teniu problemes o teniu preguntes, responeu a aquest correu electrònic i us ajudaré.

Feliç Localització!

Sagar

Laboratoris sense fil

Pas 5: biblioteques que necessiteu

Biblioteques que necessiteu
Biblioteques que necessiteu

El següent pas és obrir Arduino i anar a gestionar les biblioteques. Cal instal·lar la biblioteca ArduinoJson. La resta de biblioteques ja estan incorporades. Quan estigueu a punt, podeu començar a escriure el codi.

Pas 6: afegiu codi a Arduino per connectar-vos amb LocationAPI

Feu un esbós nou i afegiu el següent codi a Arduino. Escriviu el vostre propi nom wifi / hotspot i la vostra contrasenya. Enganxeu el testimoni API que heu rebut al correu electrònic. Pengeu el vostre codi al vostre NodeMCU.

#incloure

#incloure

#include "ESP8266WiFi.h"

// el vostre SSID de xarxa (nom) i contrasenya de xarxa

char myssid = "El vostre nom de wifi / punt d'accés Wi-Fi"; char mypass = "La vostra contrasenya";

// unwiredlabs URL d'amfitrió i punt final de geolocalització

const char * Host = "www.unwiredlabs.com"; Punt final de cadena = "/v2/process.php";

// UnwiredLabs API_Token. Inscriviu-vos aquí per obtenir un testimoni gratuït

String token = "d99cccda52ec0b";

String jsonString = "{ n";

// Variables per emmagatzemar la resposta sense llavis

doble latitud = 0,0; doble longitud = 0,0; doble precisió = 0,0;

configuració nul·la () {

Serial.begin (115200);

// Configureu WiFi al mode d’estació i desconnecteu d’un AP si anteriorment estava connectat

WiFi.mode (WIFI_STA); WiFi.disconnect (); Serial.println ("Configuració feta");

// Comencem connectant-nos a una xarxa WiFi

Serial.print ("Connexió a"); Serial.println (myssid); WiFi.begin (myssid, mypass);

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

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

bucle buit () {

char bssid [6]; DynamicJsonBuffer jsonBuffer;

// WiFi.scanNetworks retornarà el nombre de xarxes trobades

int n = WiFi.scanNetworks (); Serial.println ("escaneig fet");

if (n == 0) {

Serial.println ("No hi ha xarxes disponibles"); } else {Serial.print (n); Serial.println ("xarxes trobades"); }

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

Client WiFiClientSecure;

// Connecteu-vos al client i feu la trucada API

Serial.println ("URL sol·licitant: https://" + (cadena) amfitrió + punt final); if (client.connect (Amfitrió, 443)) {Serial.println ("Connectat"); client.println ("POST" + punt final + "HTTP / 1.1"); client.println ("Amfitrió:" + (Cadena) Amfitrió); client.println ("Connexió: tancar"); client.println ("Tipus de contingut: aplicació / json"); client.println ("Agent d'usuari: Arduino / 1.0"); client.print ("Longitud del contingut:"); client.println (jsonString.length ()); client.println (); client.print (jsonString); retard (500); }

// Llegiu i analitzeu totes les línies de la resposta des del servidor

while (client.available ()) {String line = client.readStringUntil ('\ r'); JsonObject & root = jsonBuffer.parseObject (línia); if (root.success ()) {latitude = root ["lat"]; longitud = arrel ["lon"]; exactitud = arrel ["precisió"];

Serial.println ();

Serial.print ("Latitud ="); Serial.println (latitud, 6); Serial.print ("Longitud ="); Serial.println (longitud, 6); Serial.print ("Precisió ="); Serial.println (precisió); }}

Serial.println ("tancament de la connexió");

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

retard (5000);

}

Pas 7: obriu el monitor de sèrie per veure si esteu connectat

Aneu a les eines d’Arduino i obriu el monitor sèrie. Per veure si esteu connectat a Internet, heu de veure el següent al monitor sèrie:

Configuració realitzada

S'està connectant a (el vostre nom de wifi) … s'ha fet l'escaneig

Pas 8: Obteniu les coordenades

Si ha funcionat correctament, a l'escaneig s'hauria de veure una llista completa de dades. L'únic que necessitem és el codi de l'URL sol·licitant, de manera que necessitarem la latitud i la longitud. Aquestes són les coordenades.

URL sol·licitant:

Connectat

Latitud = 52,385259

Longitud = 5,196099

Precisió = 41,00

connexió de tancament

Al cap de 5 segons, el codi s'actualitzarà constantment i probablement veureu canviar la latitud, la longitud i la precisió. Això es deu al fet que l'API prova que sigui millor fer un seguiment de la ubicació amb la màxima precisió possible.

Pas 9: aneu a Google Maps

Aneu a Google Maps
Aneu a Google Maps

Aneu a https://www.google.com/maps/ i escriviu les coordenades a la barra de cerca. Les coordenades s’han d’escriure de la manera següent: 52.385259, 5.196099. Google Maps hauria de mostrar on es troba al mapa.

Pas 10: envieu la ubicació al vostre mòbil

Envia la ubicació al mòbil
Envia la ubicació al mòbil

I … Ja està! Per tant, si voleu enviar la ubicació al vostre mòbil, és possible. Google Maps enviarà un correu electrònic amb les vostres coordenades si voleu.

Feliç localització!

Recomanat: