Daftar Isi:

GEOLOACATION: 5 Langkah
GEOLOACATION: 5 Langkah

Video: GEOLOACATION: 5 Langkah

Video: GEOLOACATION: 5 Langkah
Video: How to Create an App with Google Maps and Geolocation in 5 Minutes Without Code 2024, November
Anonim
GEOLOAKASI
GEOLOAKASI

Ini Proyek Magang Musim Panas saya. Saya sangat terkejut ketika saya mendengar kami dapat melacak lokasi perangkat apa pun tanpa menggunakan modul GPS hanya menggunakan NodeMCU. Melalui ini kami dapat melacak perangkat apa pun. Anda juga terkejut bagaimana kami dapat melacak perangkat hanya dengan menggunakan WiFi. Berikut adalah deskripsi sortir untuk memahaminya.

  • · Ini Pindai hampir semua WiFi Anda.
  • · Kirim lokasi perangkat ini ke Google menggunakan Google API
  • · Menurut ini Ini menemukan lokasi perangkat Anda
  • · Anda memiliki koneksi jaringan yang kuat untuk Proyek ini.

Langkah 1: Suku Cadang & Alat

Bagian

  • NodeMCU (ESP8266 1.0 12E)
  • Kabel USB

Peralatan

Arduino IDE dengan Papan NodeMcu 1.0 12E

Google API

Langkah 2: Temukan Google API

Temukan Google API
Temukan Google API
Temukan Google API
Temukan Google API
Temukan Google API
Temukan Google API
  • Buka Browser Anda dan ketik: console.developer.google.com
  • Buat proyek baru
  • Setelah Buat Proyek baru, klik kredensial
  • Klik pada Kunci API
  • Kunci API Anda telah dibuat

    Untuk Mudah memahami lihat gambar berikut |>

Langkah 3: Setup NodeMCu di Arduino IDE

Setup NodeMCu di Arduino IDE
Setup NodeMCu di Arduino IDE
Setup NodeMCu di Arduino IDE
Setup NodeMCu di Arduino IDE
Setup NodeMCu di Arduino IDE
Setup NodeMCu di Arduino IDE
  • Unduh Arduino IDE dari Tautan berikut: - https://www. Utama/Perangkat Lunak arduino.cc/en/
  • Tambahkan papan Node Mcu di Arduino IDE
  • Untuk mengupload kode pada NodeMCU Anda harus menambahkan board NodeMCu pada ARDUINO IDE.

    • PERGI ke file & Preferensi di Arduino IDE
    • Dan di bagian Pengelola Dewan Tambahan salin tautan berikut
    • arduino.esp8266.com/stable/package_esp8266c…
    • dan klik Oke
    • Papan diunduh
    • Buka alat dan papan dan pilih NodeMCU 1.0 12E
    • Lihat gambar avobe agar mudah dipahami

Langkah 4: Unduh Perpustakaan ArduinoJson

Unduh Perpustakaan ArduinoJson
Unduh Perpustakaan ArduinoJson
  • Pergi ke
  • Sketsa Sertakan Perpustakaan Kelola Perpustakaan

    Ketik Arduino Json di kotak pencarian

    Unduh versi terbaru perpustakaan ArduinoJson

    setelah mengunduh perpustakaan klik tutup

    Tambahkan perpustakaan dari

    SketsatermasukPerpustakaanArduinoJson

Langkah 5: Program

Unggah program berikut di papan NodeMCU. dan lihat lokasi perangkat Anda (papan NodeMCU 1.0 12E) di monitor Serial.

#termasuk

#termasuk

#termasuk

char myssid = "SSID Anda"; // SSID jaringan Anda (nama)

char mypass = "Kata Sandi Anda"; // kata sandi jaringan Anda

//Kredensial untuk Google GeoLocation API…

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

String thisPage = "/geolocation/v1/geolocate?key=";

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

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

Kunci string = "Kunci Google API Anda";//Temukan dari langkah2

Petunjuk

int status = WL_IDLE_STATUS;

String jsonString = "{n";

lintang ganda = 0,0;

bujur ganda = 0,0;

akurasi ganda = 0,0;

int lebih_teks = 1; // set ke 1 untuk lebih banyak keluaran debug

batalkan pengaturan() {

Serial.begin(9600);

Serial.println("Mulai");

// Atur WiFi ke mode stasiun dan

putuskan sambungan dari AP jika sebelumnya terhubung

WiFi.mode(WIFI_STA);

WiFi.putuskan();

penundaan(100);

Serial.println( Pengaturan

selesai );

// Kita mulai dengan menghubungkan ke a

jaringan Wi-Fi

Serial.print( Menghubungkan ke

);

Serial.println(myssid);

WiFi.begin(myssid, mypass);

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

penundaan (500);

Serial.print(".");

}

Serial.println(".");

}

lingkaran kosong() {

char bssid[6];

DynamicJsonBuffer jsonBuffer;

Serial.println("scan mulai");

// WiFi.scanNetworks akan kembali

jumlah jaringan yang ditemukan

int n = WiFi.scanNetworks();

Serial.println("scandon");

jika (n == 0)

Serial.println("tidak ada jaringan yang ditemukan");

lain

{

Serial.print(n);

Serial.println("jaringan ditemukan…");

if (teks_lebih) {

// Cetak json yang diformat…

Serial.println("{");

Serial.println("\"homeMobileCountryCode\":234, "); // ini adalah PKS Inggris asli

Serial.println("\"homeMobileNetworkCode\":27, "); // dan MNC Inggris asli

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

Serial.println("\"operator\":\"Vodafone\", "); //terkait dengan Vodafone

Serial.println("\"cellTowers\": ["); // Saya tidak melaporkan menara seluler apa pun

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("\"Kekuatan sinyal\": ");

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

jika (i < n - 1)

{

Serial.println("}, ");

}

lain

{

Serial.println("}");

}

}

Serial.println("]");

Serial.println("}");

}

Serial.println(" ");

}

// sekarang buat jsonString…

jsonString = "{n";

jsonString +="\"homeMobileCountryCode\": 234, \n"; // ini adalah PKS Inggris asli

jsonString +="\"homeMobileNetworkCode\": 27, \n"; // dan MNC Inggris asli

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

jsonString +="\"operator\": \"Vodafone\", \n"; // terkait 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";

}

lain

{

jsonString +="}\n";

}

}

jsonString += ("]\n");

jsonString += ("}\n");

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

Serial.println("");

Klien WiFiClientSecure;

//Hubungkan ke klien dan lakukan panggilan api

Serial.print("Meminta URL: ");

// ---- Dapatkan Google Maps Api Key di sini, Tautan:

Serial.println("https://" + (String)Host + Halaman ini +"PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");

Serial.println(" ");

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

Serial.println("Terhubung");

client.println("POST" + Halaman ini + kunci +"

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

client.println("Koneksi: tutup");

client.println("Tipe Konten: aplikasi/json");

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

client.print("Panjang Konten: ");

client.println(jsonString.length());

klien.println();

client.print(jsonString);

penundaan (500);

}

//Baca dan parsing semua baris dari

balasan dari server

while (client.available()) {

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

if (teks_lebih) {

Serial.print(baris);

}

JsonObject& root =jsonBuffer.parseObject(baris);

if (root.sukses()) {

lintang =root["lokasi"]["lat"];

bujur =root["lokasi"]["lng"];

akurasi = root["akurasi"];

}

}

Serial.println("menutup koneksi");

Serial.println();

klien.berhenti();

Serial.print("Lintang =");

Serial.println(lintang, 6);

Serial.print("Bujur =");

Serial.println(bujur, 6);

Serial.print("Akurasi =");

Serial.println(akurasi);

penundaan (10000);

Serial.println();

Serial.println("Memulai Ulang…");

Serial.println();

penundaan(2000);

}

Direkomendasikan: