Tabla de contenido:
- Paso 1: ¿Qué necesitas?
- Paso 2: vaya a Unwired Labs
- Paso 3: Regístrese para obtener el token de API
- Paso 4: revisa tu correo electrónico
- Paso 5: Bibliotecas que necesitará
- Paso 6: agregue código en Arduino para conectarse con LocationAPI
- Paso 7: abra el monitor en serie para ver si está conectado
- Paso 8: Obtenga las coordenadas
- Paso 9: ve a Google Maps
- Paso 10: envía la ubicación a tu móvil
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
¿Tiene curiosidad sobre cómo su NodeMCU puede rastrear su ubicación? Es posible, incluso sin módulo GPS y sin pantalla. La salida serán las coordenadas donde se encuentra y las verá en su monitor de serie.
La siguiente configuración se utilizó para NodeMCU 1.0 (módulo ESP-12E) con Arduino IDE.
- Windows 10
- Arduino IDE v. 1.8.4
Paso 1: ¿Qué necesitas?
Lo que necesita para seguir este tutorial son los siguientes componentes:
- Cable micro USB
- NodeMCU ESP8266
Además, necesitará:
- LocationAPI (de Unwired Labs)
- Acceso a wifi o hotspot
Paso 2: vaya a Unwired Labs
La geolocalización es muy útil porque cuando su GPS está inactivo, aún puede usar la geolocalización para rastrear su ubicación. Nuestro anfitrión que proporciona geolocalización, será https://www.unwiredlabs.com/. Vaya a ese sitio web y regístrese (el botón naranja en la esquina superior derecha).
Paso 3: Regístrese para obtener el token de API
En la página de registro, debe ingresar su nombre, correo electrónico (su token de API se enviará a su correo electrónico) y caso de uso (por ejemplo, uso personal). Seleccione su tipo de cuenta. La versión gratuita funcionará bien, pero tenga en cuenta que tiene limitaciones y no puede rastrear su ubicación las 24 horas del día, los 7 días de la semana. ¡Empecemos!
Paso 4: revisa tu correo electrónico
Vaya a su correo electrónico y verá su token de API. Copie el token de API, porque lo necesita para el código que usaremos. Así es como se ve el correo electrónico:
¡Hola!
¡Gracias por registrarte en Unwired Labs LocationAPI! Su token de API es 'su código de API está aquí' (sin comillas). Esto le dará 100 solicitudes / día de forma gratuita, para siempre.
Si desea realizar un seguimiento de 5 dispositivos de forma gratuita, responda con los siguientes detalles y actualizaremos su cuenta en un plazo de 12 horas:
1. Tipo de implementación (hardware / aplicación / otro):
2. Acerca de su proyecto:
3. Sitio web:
Puede iniciar sesión en su panel de control aquí: https://unwiredlabs.com/dashboard. Si tienes problemas o preguntas, responde a este correo electrónico y te ayudaré.
¡Feliz localización!
Sagar
Laboratorios sin cables
Paso 5: Bibliotecas que necesitará
El siguiente paso es abrir Arduino e ir a administrar bibliotecas. Necesita instalar la biblioteca ArduinoJson. Las otras bibliotecas ya están integradas. Cuando esté listo, puede comenzar a escribir el código.
Paso 6: agregue código en Arduino para conectarse con LocationAPI
Haga un nuevo boceto y agregue el siguiente código en Arduino. Escriba su propio nombre de wifi / hotspot y su contraseña. Pegue el token de API que recibió en el correo electrónico. Sube tu código a tu NodeMCU.
#incluir
#incluir
#include "ESP8266WiFi.h"
// su SSID de red (nombre) y contraseña de red
char myssid = "Nombre de tu punto de acceso / wifi"; char mypass = "Su contraseña";
// URL de punto final de geolocalización y nombre de host de unsiredlabs
const char * Host = "www.unwiredlabs.com"; String endpoint = "/v2/process.php";
// UnwiredLabs API_Token. Regístrese aquí para obtener un token gratuito
Token de cadena = "d99cccda52ec0b";
String jsonString = "{ n";
// Variables para almacenar la respuesta de unsiredlabs
latitud doble = 0,0; longitud doble = 0,0; doble precisión = 0,0;
configuración vacía () {
Serial.begin (115200);
// Establecer WiFi en modo de estación y desconectarse de un AP si estaba previamente conectado
Modo WiFi (WIFI_STA); WiFi.disconnect (); Serial.println ("Configuración realizada");
// Empezamos por conectarnos a una red WiFi
Serial.print ("Conectando a"); Serial.println (myssid); WiFi.begin (myssid, mypass);
while (WiFi.status ()! = WL_CONNECTED) {
retraso (500); Serial.print ("."); } Serial.println ("."); }
bucle vacío () {
char bssid [6]; DynamicJsonBuffer jsonBuffer;
// WiFi.scanNetworks devolverá el número de redes encontradas
int n = WiFi.scanNetworks (); Serial.println ("escaneo hecho");
si (n == 0) {
Serial.println ("No hay redes disponibles"); } else {Serial.print (n); Serial.println ("redes encontradas"); }
// ahora construye el jsonString…
jsonString = "{ n"; jsonString + = "\" token / ": \" "; jsonString + = token; jsonString + =" / ", / n"; jsonString + = "\" id / ": \" saikirandevice01 / ", / n"; jsonString + = "\" wifi / ": [n"; para (int j = 0; j <n; ++ j) {jsonString + = "{ n"; jsonString + = "\" bssid / ": \" "; jsonString + = (WiFi. BSSIDstr (j)); jsonString + =" / ", / n"; jsonString + = "\" señal / ":"; jsonString + = WiFi. RSSI (j); jsonString + = "\ n"; if (j <n - 1) {jsonString + = "}, / n"; } else {jsonString + = "} n"; }} jsonString + = ("] n"); jsonString + = ("} n"); Serial.println (jsonString);
Cliente WiFiClientSecure;
// Conéctese al cliente y realice la llamada a la API
Serial.println ("URL de solicitud: https://" + (String) Host + punto final); if (client.connect (Host, 443)) {Serial.println ("Conectado"); client.println ("POST" + punto final + "HTTP / 1.1"); client.println ("Host:" + (String) Host); client.println ("Conexión: cerrar"); client.println ("Tipo de contenido: aplicación / json"); client.println ("Usuario-Agente: Arduino / 1.0"); client.print ("Content-Length:"); client.println (jsonString.length ()); cliente.println (); client.print (jsonString); retraso (500); }
// Leer y analizar todas las líneas de la respuesta del servidor
while (client.available ()) {String line = client.readStringUntil ('\ r'); JsonObject & root = jsonBuffer.parseObject (línea); if (root.success ()) {latitud = root ["lat"]; longitud = raíz ["lon"]; exactitud = raíz ["exactitud"];
Serial.println ();
Serial.print ("Latitud ="); Serial.println (latitud, 6); Serial.print ("Longitud ="); Serial.println (longitud, 6); Serial.print ("Precisión ="); Serial.println (precisión); }}
Serial.println ("cerrando conexión");
Serial.println (); client.stop ();
retraso (5000);
}
Paso 7: abra el monitor en serie para ver si está conectado
Vaya a herramientas en Arduino y abra el monitor en serie. Para ver si está conectado a Internet, debería ver lo siguiente en el monitor en serie:
Configuración hecha
Conectando a (su nombre de wifi)… escaneo hecho
Paso 8: Obtenga las coordenadas
Si funcionó con éxito, debería ver debajo del escaneo hecho una lista completa de datos. Lo único que necesitamos es el código debajo de la URL solicitante, por lo que necesitaremos la latitud y la longitud. Estas son las coordenadas.
URL de solicitud:
Conectado
Latitud = 52.385259
Longitud = 5.196099
Precisión = 41,00
cierre de conexión
Después de 5 segundos, el código se actualizará constantemente y probablemente verá cambiar la latitud, la longitud y la precisión. Eso es porque la API está tratando de rastrear la ubicación con la mayor precisión posible.
Paso 9: ve a Google Maps
Ve a https://www.google.com/maps/ y escribe tus coordenadas en la barra de búsqueda. Las coordenadas deben escribirse de la siguiente manera: 52.385259, 5.196099. Google Maps debería mostrar dónde se encuentra en el mapa.
Paso 10: envía la ubicación a tu móvil
¡Y tu estas listo! Por lo tanto, si desea enviar la ubicación a su móvil, es posible. Google Maps le enviará un correo electrónico con sus coordenadas si así lo desea.
¡Feliz localización!