Índice:

GEOLOACAÇÃO: 5 etapas
GEOLOACAÇÃO: 5 etapas

Vídeo: GEOLOACAÇÃO: 5 etapas

Vídeo: GEOLOACAÇÃO: 5 etapas
Vídeo: Голубая стрела (1958) фильм 2024, Julho
Anonim
GEOLOACAÇÃO
GEOLOACAÇÃO

É o meu projeto de estágio de verão. Eu realmente fico surpreso quando ouço que podemos rastrear a localização de qualquer dispositivo sem usar o módulo GPS usando apenas NodeMCU. Com isso, podemos rastrear qualquer dispositivo. Você também surpreende como podemos rastrear um dispositivo usando apenas WiFi. Aqui está a descrição do tipo para entendê-lo.

  • · É a varredura de quase todo o seu WiFi.
  • · Envie a localização deste dispositivo para o Google usando a API do Google
  • · De acordo com isto, localize a localização do seu dispositivo
  • · Você tem uma conexão de rede forte para este projeto.

Etapa 1: Peças e ferramentas

Peças

  • NodeMCU (ESP8266 1.0 12E)
  • Cabo USB

Ferramentas

Arduino IDE com placa NodeMcu 1.0 12E

API do Google

Etapa 2: Encontre a API do Google

Encontre a API do Google
Encontre a API do Google
Encontre a API do Google
Encontre a API do Google
Encontre a API do Google
Encontre a API do Google
  • Abra seu navegador e digite: console.developer.google.com
  • Crie um novo projeto
  • Depois de criar um novo projeto, clique na credencial
  • Clique na chave API
  • Sua chave de API foi gerada

    Para fácil compreensão, veja a imagem a seguir |>

Etapa 3: configurar o NodeMCu no Arduino IDE

Configure o NodeMCu no Arduino IDE
Configure o NodeMCu no Arduino IDE
Configure o NodeMCu no Arduino IDE
Configure o NodeMCu no Arduino IDE
Configure o NodeMCu no Arduino IDE
Configure o NodeMCu no Arduino IDE
  • Baixe o IDE do Arduino no link a seguir: - https:// www. Principal / Software arduino.cc/en/
  • Adicionar placa Node MCu no Arduino IDE
  • Para fazer o upload do código no NodeMCU, você deve adicionar a placa NodeMCu no ARDUINO IDE.

    • Vá para arquivo e preferência no IDE do Arduino
    • E na seção Gerentes adicionais da placa, copie o seguinte link
    • arduino.esp8266.com/stable/package_esp8266c…
    • e clique em Ok
    • O tabuleiro foi baixado
    • Vá para as ferramentas e placa e selecione NodeMCU 1.0 12E
    • Veja a imagem da avobe para facilitar a compreensão

Etapa 4: Baixe a biblioteca ArduinoJson

Baixe a biblioteca ArduinoJson
Baixe a biblioteca ArduinoJson
  • Vou ao
  • Sketch Incluir Biblioteca Gerenciar Biblioteca

    Digite Arduino Json na caixa de pesquisa

    Baixe a versão mais recente da biblioteca ArduinoJson

    depois de baixar a biblioteca clique em fechar

    Adicionar biblioteca de

    SketchincludeLibraryArduinoJson

Etapa 5: Programa

Carregue o seguinte programa na placa NodeMCU. e veja a localização do seu dispositivo (placa NodeMCU 1.0 12E) no monitor serial.

#incluir

#incluir

#incluir

char myssid = "Seu SSID"; // seu SSID de rede (nome)

char mypass = "Sua senha"; // sua senha de rede

// Credentials for Google GeoLocation API…

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

String thisPage = "/ geolocalização / v1 / geolocalização? Key =";

// --- Obtenha uma chave ap do google maps aqui:

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

String key = "Sua chave de API do Google"; // Encontre na etapa 2

Instrução

status interno = WL_IDLE_STATUS;

String jsonString = "{ n";

latitude dupla = 0,0;

longitude dupla = 0,0;

precisão dupla = 0,0;

int more_text = 1; // definido como 1 para mais saída de depuração

void setup () {

Serial.begin (9600);

Serial.println ("Iniciar");

// Defina o WiFi para o modo de estação e

desconecte de um AP se ele foi conectado anteriormente

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

atraso (100);

Serial.println ( Configuração

feito );

// Começamos nos conectando a um

Rede wi-fi

Serial.print ( Conectando-se a

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

atraso (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("início da digitalização");

// WiFi.scanNetworks retornará

o número de redes encontradas

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

if (n == 0)

Serial.println ("nenhuma rede encontrada");

outro

{

Serial.print (n);

Serial.println ("networksfound…");

if (more_text) {

// Imprima o json formatado…

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // este é um verdadeiro MCC do Reino Unido

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // e um verdadeiro MNC do Reino Unido

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

Serial.println ("\" operadora / ": \" Vodafone / ","); // associado à Vodafone

Serial.println ("\" cellTowers / ": ["); // Não estou relatando nenhuma torre de 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));

if (i <n - 1)

{

Serial.println ("},");

}

outro

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// agora construa o jsonString…

jsonString = "{ n";

jsonString + = "\" homeMobileCountryCode / ": 234, / n"; // este é um verdadeiro MCC do Reino Unido

jsonString + = "\" homeMobileNetworkCode / ": 27, / n"; // e um verdadeiro MNC do Reino Unido

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

jsonString + = "\" operadora / ": \" Vodafone / ", / n"; // associado à 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";

if (j <n - 1)

{

jsonString + = "}, / n";

}

outro

{

jsonString + = "} n";

}

}

jsonString + = ("] n");

jsonString + = ("} n");

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

Serial.println ("");

Cliente WiFiClientSecure;

// Conecte-se ao cliente e faça a chamada API

Serial.print ("Solicitando URL:");

// ---- Obtenha a chave de API do Google Maps aqui, Link:

Serial.println ("https://" + (String) Host + thisPage + "COLOQUE SEU GOOGLE-MAPS-API-CHAVE-AQUI");

Serial.println ("");

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

Serial.println ("Conectado");

client.println ("POST" + thisPage + chave + "HTTP / 1.1");

client.println ("Host:" + (String) Host);

client.println ("Conexão: fechar");

client.println ("Content-Type: application / json");

client.println ("User-Agent: Arduino / 1.0");

client.print ("Content-Length:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

atraso (500);

}

// Leia e analise todas as linhas de

a resposta do servidor

while (client.available ()) {

String line = client.readStringUntil ('\ r');

if (more_text) {

Serial.print (linha);

}

JsonObject & root = jsonBuffer.parseObject (linha);

if (root.success ()) {

latitude = raiz ["localização"] ["lat"];

longitude = root ["local"] ["lng"];

precisão = raiz ["precisão"];

}

}

Serial.println ("fechando conexão");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (latitude, 6);

Serial.print ("Longitude =");

Serial.println (longitude, 6);

Serial.print ("Precisão =");

Serial.println (precisão);

atraso (10000);

Serial.println ();

Serial.println ("Reiniciando…");

Serial.println ();

atraso (2000);

}

Recomendado: