Tabla de contenido:

GEOLOACACIÓN: 5 Pasos
GEOLOACACIÓN: 5 Pasos

Video: GEOLOACACIÓN: 5 Pasos

Video: GEOLOACACIÓN: 5 Pasos
Video: Голубая стрела (1958) фильм 2024, Mes de julio
Anonim
GEOLOACACIÓN
GEOLOACACIÓN

Es mi proyecto de prácticas de verano. Realmente me sorprende cuando escucho que podemos rastrear la ubicación de cualquier dispositivo sin usar el módulo GPS solo usando NodeMCU. A través de esto podemos rastrear cualquier dispositivo. También sorprende cómo podemos rastrear un dispositivo usando solo WiFi. Aquí está la descripción del tipo para entenderlo.

  • · Es escanea tu casi todo WiFi.
  • · Enviar la ubicación de este dispositivo a Google mediante la API de Google
  • · De acuerdo con esto, es localizar la ubicación de su dispositivo
  • · Tiene una conexión de red sólida para este proyecto.

Paso 1: Piezas y herramienta

Partes

  • NodeMCU (ESP8266 1.0 12E)
  • Cable USB

Instrumentos

Arduino IDE con placa NodeMcu 1.0 12E

API de Google

Paso 2: Encuentra la API de Google

Encuentra la API de Google
Encuentra la API de Google
Encuentra la API de Google
Encuentra la API de Google
Encuentra la API de Google
Encuentra la API de Google
  • Abra su navegador y escriba: console.developer.google.com
  • Crea un nuevo proyecto
  • Después de Crear un nuevo proyecto, haga clic en la credencial.
  • Haga clic en API Key
  • Se ha generado su clave de API

    Para una mejor comprensión, consulte la siguiente imagen |>

Paso 3: Configurar NodeMCu en Arduino IDE

Configurar NodeMCu en Arduino IDE
Configurar NodeMCu en Arduino IDE
Configurar NodeMCu en Arduino IDE
Configurar NodeMCu en Arduino IDE
Configurar NodeMCu en Arduino IDE
Configurar NodeMCu en Arduino IDE
  • Descargue Arduino IDE desde el siguiente enlace: - https:// www. Principal / Software arduino.cc/en/
  • Agregar placa Node MCu en Arduino IDE
  • Para cargar código en NodeMCU, debe agregar la placa NodeMCu en ARDUINO IDE.

    • Vaya a archivo y preferencia en Arduino IDE
    • Y en la sección de administración de la Junta Adicional copie el siguiente enlace
    • arduino.esp8266.com/stable/package_esp8266c…
    • y haga clic en Aceptar
    • El tablero está descargado
    • Vaya a las herramientas y el tablero y seleccione NodeMCU 1.0 12E
    • Vea la imagen de avobe para entender fácilmente

Paso 4: descargue la biblioteca ArduinoJson

Descargar la biblioteca ArduinoJson
Descargar la biblioteca ArduinoJson
  • Ve a la
  • Sketch Incluir biblioteca Administrar biblioteca

    Escriba Arduino Json en el cuadro de búsqueda

    Descargue la última versión de la biblioteca ArduinoJson

    después de descargar la biblioteca, haga clic en cerrar

    Agregar biblioteca desde

    SketchincludeLibraryArduinoJson

Paso 5: Programa

Cargue el siguiente programa en la placa NodeMCU. y vea la ubicación de su dispositivo (placa NodeMCU 1.0 12E) en el monitor serial.

#incluir

#incluir

#incluir

char myssid = "Su SSID"; // el SSID de su red (nombre)

char mypass = "Su contraseña"; // su contraseña de red

// Credenciales para la API de ubicación geográfica de Google…

const char * Host = "www.googleapis.com";

String thisPage = "/ geolocalización / v1 / geolocate? Key =";

// --- Obtener una clave ap de Google Maps aquí:

developers.google.com/maps/documentation/geolocation/intro

String key = "Su clave de API de Google"; // Buscar en el paso 2

Instrucción

int status = WL_IDLE_STATUS;

String jsonString = "{ n";

latitud doble = 0,0;

longitud doble = 0,0;

doble precisión = 0,0;

int more_text = 1; // establecer en 1 para obtener más resultados de depuración

configuración vacía () {

Serial.begin (9600);

Serial.println ("Inicio");

// Establecer WiFi en modo de estación y

desconectarse de un AP si estaba previamente conectado

Modo WiFi (WIFI_STA);

WiFi.disconnect ();

retraso (100);

Serial.println ( Configuración

hecho );

// Empezamos por conectarnos a un

Red Wi Fi

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;

Serial.println ("inicio de escaneo");

// WiFi.scanNetworks volverá

la cantidad de redes encontradas

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

si (n == 0)

Serial.println ("no se encontraron redes");

demás

{

Serial.print (n);

Serial.println ("redes encontradas …");

if (more_text) {

// Imprime el json formateado …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // este es un verdadero MCC del Reino Unido

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // y una verdadera multinacional del Reino Unido

Serial.println ("\" radioType / ": \" gsm / ","); // para gsm

Serial.println ("\" operador / ": \" Vodafone / ","); // asociado a Vodafone

Serial.println ("\" cellTowers / ": ["); // No estoy reportando ninguna torre celular

Serial.println ("],");

Serial.println ("\" wifiAccessPoints / ": [");

para (int i = 0; i <n; ++ i)

{

Serial.println ("{");

Serial.print ("\" macAddress / ": \" ");

Serial.print (WiFi. BSSIDstr (i));

Serial.println ("\", ");

Serial.print ("\" signalStrength / ":");

Serial.println (WiFi. RSSI (i));

si (i <n - 1)

{

Serial.println ("},");

}

demás

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// ahora construye el jsonString…

jsonString = "{ n";

jsonString + = "\" homeMobileCountryCode / ": 234, / n"; // este es un verdadero MCC del Reino Unido

jsonString + = "\" homeMobileNetworkCode / ": 27, / n"; // y una verdadera multinacional del Reino Unido

jsonString + = "\" radioType / ": \" gsm / ", / n"; // para gsm

jsonString + = "\" operador / ": \" Vodafone / ", / n"; // asociado a Vodafone

jsonString + = "\" wifiAccessPoints / ": [n";

para (int j = 0; j <n; ++ j)

{

jsonString + = "{ n";

jsonString + = "\" macAddress / ": \" ";

jsonString + = (WiFi. BSSIDstr (j));

jsonString + = "\", / n ";

jsonString + = "\" signalStrength / ":";

jsonString + = WiFi. RSSI (j);

jsonString + = "\ n";

si (j <n - 1)

{

jsonString + = "}, / n";

}

demás

{

jsonString + = "} n";

}

}

jsonString + = ("] n");

jsonString + = ("} n");

//--------------------------------------------------------------------

Serial.println ("");

Cliente WiFiClientSecure;

// Conéctese al cliente y realice la llamada a la API

Serial.print ("URL de solicitud:");

// ---- Obtenga la clave de API de Google Maps aquí, enlace:

Serial.println ("https://" + (String) Host + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-AQUÍ");

Serial.println ("");

if (client.connect (Host, 443)) {

Serial.println ("Conectado");

client.println ("POST" + thisPage + clave + "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 ()) {

Línea de cadena = cliente.readStringUntil ('\ r');

if (more_text) {

Serial.print (línea);

}

JsonObject & root = jsonBuffer.parseObject (línea);

if (root.success ()) {

latitud = raíz ["ubicación"] ["lat"];

longitud = raíz ["ubicación"] ["lng"];

exactitud = raíz ["exactitud"];

}

}

Serial.println ("cerrando conexión");

Serial.println ();

client.stop ();

Serial.print ("Latitud =");

Serial.println (latitud, 6);

Serial.print ("Longitud =");

Serial.println (longitud, 6);

Serial.print ("Precisión =");

Serial.println (precisión);

retraso (10000);

Serial.println ();

Serial.println ("Reiniciando …");

Serial.println ();

retraso (2000);

}

Recomendado: