Isi kandungan:

GEOLOACASI: 5 Langkah
GEOLOACASI: 5 Langkah

Video: GEOLOACASI: 5 Langkah

Video: GEOLOACASI: 5 Langkah
Video: Консультант от бога Tg: cadrolikk 2024, Julai
Anonim
GEOLOACASI
GEOLOACASI

Ini adalah Projek Internship Musim Panas saya. Saya sangat terkejut apabila mendengar kami dapat mengesan lokasi mana-mana peranti tanpa menggunakan modul GPS hanya menggunakan NodeMCU. Melalui ini kita dapat mengesan mana-mana peranti. Anda juga terkejut bagaimana kita dapat mengesan peranti hanya menggunakan WiFi. Berikut adalah penerangan semacam untuk memahaminya.

  • · Imbas hampir semua WiFi anda.
  • · Kirim lokasi perangkat ini ke Google menggunakan API Google
  • · Menurut ini, cari lokasi peranti anda
  • · Anda mempunyai sambungan rangkaian yang kuat untuk Projek ini.

Langkah 1: Bahagian & Alat

Bahagian

  • NodeMCU (ESP8266 1.0 12E)
  • Wayar USB

Alat

Arduino IDE dengan NodeMcu 1.0 12E Board

API Google

Langkah 2: Cari API Google

Cari API Google
Cari API Google
Cari API Google
Cari API Google
Cari API Google
Cari API Google
  • Buka Penyemak Imbas Anda dan ketik: console.developer.google.com
  • Buat projek baru
  • Selepas Buat Projek baru, klik pada kelayakan
  • Klik pada Kekunci API
  • Kunci API Anda Telah dihasilkan

    Untuk pemahaman dengan mudah lihat gambar berikut |>

Langkah 3: Sediakan NodeMCu pada Arduino IDE

Sediakan NodeMCu di Arduino IDE
Sediakan NodeMCu di Arduino IDE
Sediakan NodeMCu di Arduino IDE
Sediakan NodeMCu di Arduino IDE
Sediakan NodeMCu di Arduino IDE
Sediakan NodeMCu di Arduino IDE
  • Muat turun Arduino IDE dari Pautan berikut: - https:// www. Utama / Perisian arduino.cc/en/
  • Tambahkan papan Node MCu di Arduino IDE
  • Untuk memuat naik kod di NodeMCU anda harus menambahkan papan NodeMCu pada ARDUINO IDE.

    • PERGI ke fail & Keutamaan di Arduino IDE
    • Dan dalam pengurusan Lembaga Tambahan salin pautan berikut
    • arduino.esp8266.com/stable/package_esp8266c…
    • dan klik Ok
    • Papan dimuat turun
    • Pergi ke alat dan papan dan pilih NodeMCU 1.0 12E
    • Lihat gambar avobe untuk difahami dengan mudah

Langkah 4: Muat turun Perpustakaan ArduinoJson

Muat turun Perpustakaan ArduinoJson
Muat turun Perpustakaan ArduinoJson
  • Pergi ke
  • Sketsa Sertakan Perpustakaan Menguruskan Perpustakaan

    Taip Arduino Json di kotak carian

    Muat turun versi terbaru perpustakaan ArduinoJson

    selepas memuat turun perpustakaan klik tutup

    Tambahkan perpustakaan dari

    LakarkanSertakanLibraryArduinoJson

Langkah 5: Program

Muat naik program berikut di papan NodeMCU. dan lihat lokasi peranti anda (papan NodeMCU 1.0 12E) pada Serial monitor.

#sertakan

#sertakan

#sertakan

char myssid = "SSID Anda"; // SSID rangkaian anda (nama)

char mypass = "Kata Laluan Anda"; // kata laluan rangkaian anda

// Kelayakan untuk API GeoLocation Google…

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

Rentetan iniPage = "/ geolocation / v1 / geolocate? Key =";

// --- Dapatkan kunci ap peta google di sini:

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

Kekunci rentetan = "Kunci API Google Anda"; // Cari dari langkah2

Arahan

status int = WL_IDLE_STATUS;

Rentetan jsonString = "{ n";

garis lintang berganda = 0.0;

bujur berganda = 0.0;

ketepatan berganda = 0.0;

int lebih_teks = 1; // tetapkan ke 1 untuk output debug yang lebih banyak

batal persediaan () {

Serial.begin (9600);

Serial.println ("Mula");

// Tetapkan WiFi ke mod stesen dan

putuskan sambungan dari AP jika sebelum ini disambungkan

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

kelewatan (100);

Serial.println ( Persediaan

selesai );

// Kita mulakan dengan menyambung ke a

Rangkaian WiFi

Serial.print ( Menyambung ke

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

kelewatan (500);

Cetakan bersiri (".");

}

Serial.println (".");

}

gelung kosong () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("permulaan imbasan");

// WiFi.scanNetworks akan kembali

bilangan rangkaian yang dijumpai

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

jika (n == 0)

Serial.println ("tidak ada rangkaian dijumpai");

yang lain

{

Cetakan bersiri (n);

Serial.println ("networkfound …");

jika (lebih_teks) {

// Cetak json yang diformat …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // ini adalah MCC UK sebenar

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // dan MNC UK sebenar

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

Serial.println ("\" pembawa / ": \" Vodafone / ","); // dikaitkan dengan Vodafone

Serial.println ("\" cellTowers / ": ["); // Saya tidak melaporkan sebarang menara sel

Serial.println ("],");

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

untuk (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));

jika (i <n - 1)

{

Serial.println ("},");

}

yang lain

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// sekarang bina jsonString…

jsonString = "{ n";

jsonString + = "\" homeMobileCountryCode / ": 234, / n"; // ini adalah MCC UK sebenar

jsonString + = "\" homeMobileNetworkCode / ": 27, / n"; // dan MNC UK sebenar

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

jsonString + = "\" pembawa / ": \" Vodafone / ", / n"; // dikaitkan dengan Vodafone

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

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

{

jsonString + = "{ n";

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

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

jsonString + = "\", / n ";

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

jsonString + = WiFi. RSSI (j);

jsonString + = "\ n";

jika (j <n - 1)

{

jsonString + = "}, / n";

}

yang lain

{

jsonString + = "} n";

}

}

jsonString + = ("] n");

jsonString + = ("} n");

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

Serial.println ("");

Pelanggan WiFiClientSecure;

// Sambungkan ke klien dan buat panggilan api

Serial.print ("Memohon URL:");

// ---- Dapatkan Kunci Api Peta Google di sini, Pautan:

Serial.println ("https://" + (String) Host + thisPage + "TUTUP-GOOGLE-MAPS-API-KEY-SINI");

Serial.println ("");

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

Serial.println ("Bersambung");

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

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

client.println ("Sambungan: tutup");

client.println ("Jenis Kandungan: aplikasi / json");

client.println ("Ejen Pengguna: Arduino / 1.0");

client.print ("Panjang Kandungan:");

client.println (jsonString.length ());

pelanggan.println ();

client.print (jsonString);

kelewatan (500);

}

// Baca dan huraikan semua baris

balasan dari pelayan

sementara (client.available ()) {

Garisan rentetan = client.readStringUntil ('\ r');

jika (lebih_teks) {

Serial.print (baris);

}

JsonObject & root = jsonBuffer.parseObject (baris);

jika (root.success ()) {

latitud = root ["location"] ["lat"];

longitud = root ["location"] ["lng"];

ketepatan = akar ["ketepatan"];

}

}

Serial.println ("menutup sambungan");

Bersiri.println ();

pelanggan.stop ();

Serial.print ("Latitud =");

Serial.println (garis lintang, 6);

Serial.print ("Longitud =");

Serial.println (garis bujur, 6);

Serial.print ("Ketepatan =");

Serial.println (ketepatan);

kelewatan (10000);

Bersiri.println ();

Serial.println ("Memulakan Semula …");

Bersiri.println ();

kelewatan (2000);

}

Disyorkan: