İçindekiler:

Coğrafi Konum Belirleme: 5 Adım
Coğrafi Konum Belirleme: 5 Adım

Video: Coğrafi Konum Belirleme: 5 Adım

Video: Coğrafi Konum Belirleme: 5 Adım
Video: 🌍Türkiye'nin Coğrafi Konumu 🔴 39 Günde TYT Coğrafya Kampı-5🟡 9.sınıf coğrafya Kampı-5📌2024 2024, Temmuz
Anonim
JEOLOAKASYON
JEOLOAKASYON

Bu benim Yaz Stajı Projem. GPS modülünü kullanmadan sadece NodeMCU kullanarak herhangi bir cihazın konumunu izleyebileceğimizi duyduğumda gerçekten şaşırdım. Bu sayede herhangi bir cihazı takip edebiliriz. Ayrıca sadece WiFi kullanarak cihazı nasıl izleyebileceğimizi de şaşırmışsınızdır. İşte bunu anlamak için sıralama açıklaması.

  • · Neredeyse tüm WiFi'nizi tarayın.
  • · Bu cihazın konumunu Google API kullanarak Google'a gönderin
  • · Buna göre cihazınızın konumunu bulun
  • · Bu Proje için güçlü bir ağ bağlantınız var.

Adım 1: Parçalar ve Alet

Parçalar

  • DüğümMCU(ESP8266 1.0 12E)
  • USB kablosu

Aletler

NodeMcu 1.0 12E Kartı ile Arduino IDE

Google API'sı

2. Adım: Google API'sini Bulun

Google API'sini bulun
Google API'sini bulun
Google API'sini bulun
Google API'sini bulun
Google API'sini bulun
Google API'sini bulun
  • Tarayıcınızı açın ve şunu yazın: console.developer.google.com
  • Yeni bir proje oluştur
  • Yeni bir Proje Oluşturduktan sonra kimlik bilgilerine tıklayın
  • API Anahtarına tıklayın
  • API Anahtarınız oluşturuldu

    Kolayca anlamak için aşağıdaki resme bakın |>

Adım 3: Arduino IDE'de NodeMCu Kurulumu

Arduino IDE'de NodeMCu Kurulumu
Arduino IDE'de NodeMCu Kurulumu
Arduino IDE'de NodeMCu Kurulumu
Arduino IDE'de NodeMCu Kurulumu
Arduino IDE'de NodeMCu Kurulumu
Arduino IDE'de NodeMCu Kurulumu
  • Arduino IDE'yi aşağıdaki Bağlantıdan indirin: - https://www. Ana/Yazılım arduino.cc/tr/
  • Arduino IDE'ye Düğüm MCu kartı ekleyin
  • NodeMCU'ya kod yüklemek için ARDUINO IDE'ye NodeMCu panosu eklemeniz gerekir.

    • Arduino IDE'de dosyaya ve Tercihe GİT
    • Ve Ek Kurul yöneticisi bölümünde aşağıdaki bağlantıyı kopyalayın
    • arduino.esp8266.com/stable/package_esp8266c…
    • ve Tamam'ı tıklayın
    • tahta indirildi
    • Araçlara ve panoya gidin ve NodeMCU 1.0 12E'yi seçin
    • Kolayca anlamak için avobe resmine bakın

Adım 4: ArduinoJson Kütüphanesini İndirin

ArduinoJson Kütüphanesini İndirin
ArduinoJson Kütüphanesini İndirin
  • şuraya git
  • Çizim Kitaplığı Dahil Et Kitaplığı Yönet

    Arama kutusuna Arduino Json yazın

    ArduinoJson kütüphanesinin en son sürümünü indirin

    kitaplığı indirdikten sonra kapat'ı tıklayın

    Şuradan kitaplık ekle

    SketchincludeLibraryArduinoJson

Adım 5: Program

Aşağıdaki programı NodeMCU kartına yükleyin. ve Seri monitörde cihazınızın (NodeMCU 1.0 12E kartı) konumunu görün.

#Dahil etmek

#Dahil etmek

#Dahil etmek

char myssid = "SSID'niz"; // ağ SSID'niz (ad)

char mypass = "Şifreniz"; // ağ şifreniz

//Google GeoLocation API'si için kimlik bilgileri…

const char* Ana Bilgisayar = "www.googleapis.com";

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

// --- Bir google maps ap anahtarını buradan alın:

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

String key = "Google API anahtarınız";//2. adımdan itibaren bulun

Talimat

int durum = WL_IDLE_STATUS;

String jsonString = "{n";

çift enlem = 0.0;

çift boylam = 0.0;

çift doğruluk = 0.0;

int daha fazla_metin = 1; // daha fazla hata ayıklama çıktısı için 1'e ayarla

geçersiz kurulum() {

Seri.başla(9600);

Serial.println("Başlat");

// WiFi'yi istasyon moduna ayarlayın ve

önceden bağlanmışsa bir AP'den bağlantıyı kesin

WiFi.modu(WIFI_STA);

WiFi.disconnect();

gecikme(100);

Serial.println( Kurulum

tamamlamak );

// Bir ağa bağlanarak başlıyoruz

kablosuz ağ

Serial.print( Bağlanıyor

);

Serial.println(myssid);

WiFi.begin(myssid, mypass);

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

gecikme(500);

Seri.print(".");

}

Seri.println(".");

}

boşluk döngüsü () {

karakter bssid[6];

DynamicJsonBuffer jsonBuffer;

Serial.println("tarama başlangıcı");

// WiFi.scanNetworks geri dönecek

bulunan ağ sayısı

int n = WiFi.scanNetworks();

Serial.println("scandone");

eğer (n == 0)

Serial.println("ağ bulunamadı");

Başka

{

Seri.baskı(n);

Serial.println("ağlar bulundu…");

if (more_text) {

// Biçimlendirilmiş json'u yazdırın…

Seri.println("{");

Serial.println("\"homeMobileCountryCode\":234, "); // bu gerçek bir Birleşik Krallık MM'sidir

Serial.println("\"homeMobileNetworkCode\":27, "); // ve gerçek bir Birleşik Krallık ÇUŞ'u

Serial.println("\"radioType\":\"gsm\", "); // gsm için

Serial.println("\"taşıyıcı\":\"Vodafone\", "); //Vodafone ile ilişkili

Serial.println("\"hücre Kuleleri\": ["); // Herhangi bir baz istasyonu bildirmiyorum

Seri.println("], ");

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

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

{

Seri.println("{");

Serial.print("\"macAdresi\": \"");

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

Serial.println("\", ");

Serial.print("\"sinyalGücü\": ");

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

eğer (i < n - 1)

{

Seri.println("}, ");

}

Başka

{

Seri.println("}");

}

}

Serial.println("]");

Seri.println("}");

}

Seri.println(" ");

}

// şimdi jsonString'i oluştur…

jsonString = "{n";

jsonString +="\"homeMobileCountryCode\": 234, \n"; // bu gerçek bir Birleşik Krallık MM'sidir

jsonString +="\"homeMobileNetworkCode\": 27, \n"; // ve gerçek bir Birleşik Krallık ÇUŞ'u

jsonString +="\"radioType\": \"gsm\", \n"; // gsm için

jsonString +="\"taşıyıcı\": \"Vodafone\", \n"; // Vodafone ile ilişkili

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

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

{

jsonString += "{n";

jsonString +="\"macAdresi\": \"";

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

jsonString +="\", \n";

jsonString +="\"sinyalGücü\": ";

jsonString += WiFi. RSSI(j);

jsonString += "\n";

eğer (j < n - 1)

{

jsonString +="}, \n";

}

Başka

{

jsonString +="}\n";

}

}

jsonString += ("]\n");

jsonString += ("}\n");

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

Seri.println("");

WiFiClientSecure istemcisi;

// İstemciye bağlanın ve api çağrısını yapın

Serial.print("İsteyen URL: ");

// ---- Google Haritalar Api Anahtarını buradan alın, Bağlantı:

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

Seri.println(" ");

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

Serial.println("Bağlandı");

client.println("POST" + thisPage + key +"

client.println("Ana Bilgisayar:" + (Dize)Ana Bilgisayar);

client.println("Bağlantı: kapat");

client.println("İçerik Türü: uygulama/json");

client.println("Kullanıcı-Aracı: Arduino/1.0");

client.print("İçerik-Uzunluk: ");

client.println(jsonString.length());

client.println();

client.print(jsonString);

gecikme(500);

}

//Tüm satırları oku ve ayrıştır

sunucudan gelen cevap

while (client.available()) {

Dize satırı =client.readStringUntil('\r');

if (more_text) {

Seri.baskı(satır);

}

JsonObject& root =jsonBuffer.parseObject(satır);

if (root.success()) {

enlem =kök["konum"]["enlem"];

boylam =kök["konum"]["lng"];

doğruluk = kök["doğruluk"];

}

}

Serial.println("bağlantıyı kapat");

Seri.println();

istemci.durdur();

Serial.print("Enlem =");

Serial.println(enlem, 6);

Serial.print("Boylam =");

Serial.println(boylam, 6);

Serial.print("Doğruluk =");

Serial.println(doğruluk);

gecikme (10000);

Seri.println();

Serial.println("Yeniden Başlatılıyor…");

Seri.println();

gecikme(2000);

}

Önerilen: