Mundarija:
- 1 -qadam: ehtiyot qismlar va asboblar
- 2 -qadam: Google API -ni toping
- 3 -qadam: Arduino IDE -da NodeMCu -ni o'rnating
- 4 -qadam: ArduinoJson kutubxonasini yuklab oling
- 5 -qadam: Dastur
Video: GEOLOACATION: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Bu mening yozgi amaliyot loyiham. Faqat NodeMCU yordamida GPS modulisiz har qanday qurilmaning joylashishini kuzatishimiz mumkinligini eshitganimda, men juda hayron qolaman. Bu orqali biz istalgan qurilmani kuzata olamiz. Shuningdek, biz faqat WiFi orqali qurilmani qanday kuzatishimiz mumkin. Buni tushunish uchun saralash tavsifi.
- · Bu deyarli barcha WiFi -ni tekshiradi.
- · Bu qurilma joylashuvini Google -ga Google API yordamida yuboring
- · Bunga ko'ra, u qurilmangiz joylashuvini aniqlaydi
- · Sizda ushbu loyiha uchun kuchli tarmoq aloqasi mavjud.
1 -qadam: ehtiyot qismlar va asboblar
Qismlar
- NodeMCU (ESP8266 1.0 12E)
- USB kabeli
Asboblar
NodeMcu 1.0 12E platasi bilan Arduino IDE
Google API
2 -qadam: Google API -ni toping
- Brauzeringizni oching va yozing: console.developer.google.com
- Yangi loyiha yarating
- Yangi loyihani yaratgandan so'ng, hisob ma'lumotlarini bosing
- API kalitini bosing
-
Sizning API kalitingiz yaratildi
Oson tushunish uchun quyidagi rasmga qarang |>
3 -qadam: Arduino IDE -da NodeMCu -ni o'rnating
- Arduino IDE-ni quyidagi havoladan yuklab oling: https:// www. Asosiy/dasturiy ta'minot arduino.cc/en/
- Arduino IDE -da Node MCu kartasini qo'shing
-
NodeMCU -ga kod yuklash uchun siz ARDUINO IDE -ga NodeMCu taxtasini qo'shishingiz kerak.
- Arduino IDE -da fayl va afzalliklarga o'ting
- Va Qo'shimcha kengash menejerlari bo'limida quyidagi havolani nusxalash
-
arduino.esp8266.com/stable/package_esp8266c…
- va OK ni bosing
- Kengash yuklab olinadi
- Asboblar va taxtaga o'ting va NodeMCU 1.0 12E ni tanlang
- Tushunish uchun avobe rasmiga qarang
4 -qadam: ArduinoJson kutubxonasini yuklab oling
- Ga o'ting
Sketch o'z ichiga kutubxonani boshqarish kutubxonasini boshqaradi
Qidiruv maydoniga Arduino Json kiriting
ArduinoJson kutubxonasining so'nggi versiyasini yuklab oling
kutubxonani yuklab olgandan so'ng, yopish tugmasini bosing
Dan kutubxona qo'shing
SketchincludeLibraryArduinoJson
5 -qadam: Dastur
Quyidagi dasturni NodeMCU kartasiga yuklang. va ketma -ket monitorda qurilmangiz (NodeMCU 1.0 12E platasi) manzilini ko'ring.
#qo'shing
#qo'shing
#qo'shing
char myssid = "Sizning SSID"; // sizning tarmoq SSID (ismingiz)
char mypass = "Sizning parolingiz"; // tarmoq parolingiz
// Google GeoLocation API uchun hisob ma'lumotlari…
const char* Xost = "www.googleapis.com";
String thisPage = "/geolocation/v1/geolocate? Key =";
// --- Google xaritalarining ap kalitini bu erdan oling:
developers.google.com/maps/documentation/geolocation/intro
String key = "Sizning Google API kalitingiz"; // 2 -qadamdan toping
Ko'rsatma
int holati = WL_IDLE_STATUS;
JsonString qatori = "{ n";
er -xotin kenglik = 0,0;
ikki uzunlik = 0,0;
ikki tomonlama aniqlik = 0,0;
int more_text = 1; // ko'proq disk raskadrovka chiqishi uchun 1 ga sozlang
bo'sh o'rnatish () {
Serial.begin (9600);
Serial.println ("Boshlash");
// Wi -Fi -ni stantsiya rejimiga o'rnating va
agar u ilgari ulangan bo'lsa, APdan uzing
WiFi rejimi (WIFI_STA);
WiFi.disconnect ();
kechikish (100);
Serial.println ( O'rnatish
bajarilgan );
// Biz a ga ulanishdan boshlaymiz
Wi -Fi tarmog'i
Serial.print ( ulanmoqda
);
Serial.println (myssid);
WiFi.begin (myssid, mypass);
esa (WiFi.status ()! = WL_CONNECTED) {
kechikish (500);
Serial.print (".");
}
Serial.println (".");
}
void loop () {
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println ("skanerlashni boshlash");
// WiFi.scanNetworks qaytadi
topilgan tarmoqlar soni
int n = WiFi.scanNetworks ();
Serial.println ("skandon");
agar (n == 0)
Serial.println ("tarmoqlar topilmadi");
boshqa
{
Serial.print (n);
Serial.println ("tarmoqlar topildi …");
agar (more_text) {
// Formatlangan jsonni chop eting …
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // bu Buyuk Britaniyaning haqiqiy MCC
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // va haqiqiy Buyuk Britaniya MNC
Serial.println ("\" radioType / ": \" gsm / ","); // gsm uchun
Serial.println ("\" tashuvchisi / ": \" Vodafone / ","); // Vodafone bilan bog'liq
Serial.println ("\" cellTowers / ": ["); // Men hech qanday uyali minoralar haqida xabar bermayman
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
uchun (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));
agar (i <n - 1)
{
Serial.println ("},");
}
boshqa
{
Serial.println ("}");
}
}
Serial.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// endi jsonString -ni yarating …
jsonString = "{ n";
jsonString += "\" homeMobileCountryCode / ": 234, / n"; // bu Buyuk Britaniyaning haqiqiy MCC
jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // va haqiqiy Buyuk Britaniya MNC
jsonString += "\" radioType / ": \" gsm / ", / n"; // gsm uchun
jsonString += "\" tashuvchisi / ": \" Vodafone / ", / n"; // Vodafone bilan bog'liq
jsonString += "\" wifiAccessPoints / ": [ n";
uchun (int j = 0; j <n; ++ j)
{
jsonString += "{ n";
jsonString += "\" macAddress / ": \" ";
jsonString += (WiFi. BSSIDstr (j));
jsonString += "\", / n ";
jsonString += "\" signalStrength / ":";
jsonString += WiFi. RSSI (j);
jsonString += "\ n";
agar (j <n - 1)
{
jsonString += "}, / n";
}
boshqa
{
jsonString += "} n";
}
}
jsonString += ("] n");
jsonString += ("} n");
//--------------------------------------------------------------------
Serial.println ("");
WiFiClientSecure mijozi;
// Mijozga ulaning va api -ga qo'ng'iroq qiling
Serial.print ("URL so'ralmoqda:");
// ---- Bu erda Google Xaritalarning Api kalitini oling, havola:
Serial.println ("https://" + (String) Xost + thisPage + "GOOGLE-MAPS-API-API-KEY-BU YERDA");
Serial.println ("");
if (client.connect (Xost, 443)) {
Serial.println ("Ulangan");
client.println ("POST" + thisPage + key + "HTTP/1.1");
client.println ("Xost:" + (String) Xost);
client.println ("Ulanish: yopish");
client.println ("Kontent turi: application/json");
client.println ("Foydalanuvchi-Agent: Arduino/1.0");
client.print ("Content-Length:");
mijoz.println (jsonString.length ());
mijoz.println ();
client.print (jsonString);
kechikish (500);
}
// Barcha satrlarni o'qing va tahlil qiling
serverdan javob
while (client.available ()) {
String qatori = client.readStringUntil ('\ r');
agar (more_text) {
Serial.print (chiziq);
}
JsonObject & root = jsonBuffer.parseObject (chiziq);
agar (root.success ()) {
kenglik = ildiz ["manzil"] ["lat"];
uzunlik = ildiz ["manzil"] ["lng"];
aniqlik = ildiz ["aniqlik"];
}
}
Serial.println ("yopilish aloqasi");
Serial.println ();
client.stop ();
Serial.print ("Kenglik =");
Serial.println (kenglik, 6);
Serial.print ("Uzunlik =");
Serial.println (uzunlik, 6);
Serial.print ("Aniqlik =");
Serial.println (aniqlik);
kechikish (10000);
Serial.println ();
Serial.println ("Qayta ishga tushirilmoqda …");
Serial.println ();
kechikish (2000);
}
Tavsiya:
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadam dvigateli: 3 qadam
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadamli dvigatel: Siz hech qachon mini-loyihaga aylanishingiz kerak degan yomon fikrga keldingizmi? Xo'sh, men AD9833 to'g'ridan -to'g'ri raqamli sintez (DDS) moduli yordamida musiqa yaratishga qaratilgan Arduino Due uchun chizgan eskiz bilan o'ynab yurardim … va bir paytlar men o'yladim
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
Qanday qilib qadam taymerini yasash mumkin?: 3 qadam (rasmlar bilan)
Qanday qilib qadam taymerini yasash mumkin ?: Men ko'plab sport turlarida yaxshi qatnashardim: yurish, yugurish, velosiped haydash, badminton o'ynash va hokazo. Men tez orada sayohat qilishni yaxshi ko'raman. Xo'sh, qorin qornimga qarang …… Xo'sh, baribir, men mashg'ulotlarni qaytadan boshlashga qaror qildim. Qanday uskunani tayyorlashim kerak?
Arduino UNO bilan qadam motor: 3 qadam
Arduino UNO bilan qadam dvigateli: Bosqichli motorlar - bu alohida bosqichlarda harakatlanadigan shahar motorlari. Ularda "fazalar" deb nomlangan guruhlarga bo'lingan bir nechta rulon bor. Har bir fazani ketma -ket quvvatlantirganda, dvigatel birma -bir aylanadi, zinapoyali dvigatellar juda foydali
Kompyuteringizni qadam dvigateli bilan boshqaring!: 9 qadam (rasmlar bilan)
Kompyuteringizni qadam dvigateli bilan boshqaring!: Oldingi ko'rsatmalarimdan birida men sizga step motorini aylanuvchi kodlovchi sifatida qanday ishlatishni ko'rsatdim. Bu yo'riqnomada keling, undan kompyuterni boshqarish uchun qanday foydalanish kerakligini bilib olaylik. Shunday qilib, ko'p vaqt sarflamasdan, boshlaylik