İçindekiler:
- Adım 1: Parçalar ve Alet
- 2. Adım: Google API'sini Bulun
- Adım 3: Arduino IDE'de NodeMCu Kurulumu
- Adım 4: ArduinoJson Kütüphanesini İndirin
- Adım 5: Program
Video: Coğrafi Konum Belirleme: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
- 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'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
- ş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:
4 Elli 'Weasley' Konum Saati: 11 Adım (Resimli)
'Weasley' 4 Elli Konum Saati: Bir süredir ortalıkta dolaşan bir Raspberry Pi ile, onu en iyi şekilde kullanmamı sağlayacak güzel bir proje bulmak istedim. ppeters0502 tarafından hazırlanan bu harika Eğitilebilir Kendi Weasley Konum Saatinizi Oluşturun ile karşılaştım ve düşündüm ki
Magicbit'ten [Magicblocks] Bisiklet Ayaklığı Konum Sensörü: 8 Adım
Magicbit'ten [Magicblocks] Bisiklet Tekmelik Konum Sensörü: Magicblocks kullanarak Magicbit ile Tekme Ayak Konum Sensörü yapmak için Basit Kendin Yap Projesi. ESP32 tabanlı bu projede geliştirme kartı olarak magicbit kullanıyoruz. Bu nedenle bu projede herhangi bir ESP32 geliştirme kartı kullanılabilir
GPS Konum Bulucu: 5 Adım
GPS Konum Bulucu: Herkese merhaba, Bugün NEO-6m GPS modülü ve arduino kullanarak bir GPS Konum Bulucunun nasıl yapıldığını görelim. Önce GPS'in ne olduğunu görelim
GY-68 BMP180 ve Arduino Kullanarak Basınç ve Yükseklik Belirleme: 6 Adım
GY-68 BMP180 ve Arduino Kullanarak Basınç ve İrtifa Belirleme: Genel Bakış Uçan robotlar, hava istasyonları, rota performansının iyileştirilmesi, spor vb. birçok projede basınç ve irtifa ölçümü çok önemlidir. Bu eğitimde, en çok kullanılanlardan biri olan BMP180 sensörünü nasıl kullanacağınızı öğreneceksiniz
Z-testi Kullanarak İstatistiksel Önemi Belirleme: 10 Adım
Z-testi Kullanarak İstatistiksel Önemi Belirleme: Genel Bakış:Amaç: Bu talimatta, bir sosyal hizmet problemiyle ilgili olarak iki değişken arasında istatistiksel bir anlamlılık olup olmadığını nasıl belirleyeceğinizi öğreneceksiniz. Bu önemi belirlemek için bir Z testi kullanacaksınız. Süre: 10-15 dakika