Turinys:
- 1 žingsnis: dalys ir įrankis
- 2 veiksmas: raskite „Google“API
- 3 veiksmas: nustatykite „NodeMCu“„Arduino IDE“
- 4 veiksmas: atsisiųskite „ArduinoJson“biblioteką
- 5 žingsnis: programa
Video: GEOLOACACIJA: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Tai mano vasaros praktikos projektas. Aš tikrai nustebau, kai išgirstu, kad galime atsekti bet kurio įrenginio vietą nenaudodami GPS modulio tik naudodami „NodeMCU“. Per tai mes galime atsekti bet kurį įrenginį. Jūs taip pat stebina, kaip galime atsekti įrenginį naudojant tik „WiFi“. Čia yra rūšies aprašymas, kad tai suprastumėte.
- · Tai nuskaitykite beveik visą „WiFi“.
- · Siųsti šio įrenginio vietą „Google“naudojant „Google“API
- · Pagal tai suraskite savo įrenginio vietą
- · Jūs turite stiprų šio projekto tinklo ryšį.
1 žingsnis: dalys ir įrankis
Dalys
- „NodeMCU“(ESP8266 1.0 12E)
- USB kabelis
Įrankiai
„Arduino IDE“su „NodeMcu 1.0 12E“lenta
„Google“API
2 veiksmas: raskite „Google“API
- Atidarykite naršyklę ir įveskite: console.developer.google.com
- Sukurkite naują projektą
- Sukūrę naują projektą spustelėkite kredencialus
- Spustelėkite API raktą
-
Jūsų API raktas sugeneruotas
Kad būtų lengviau suprasti, žiūrėkite šią nuotrauką |>
3 veiksmas: nustatykite „NodeMCu“„Arduino IDE“
- Atsisiųskite „Arduino IDE“iš šios nuorodos:- https:// www. Pagrindinis/Programinė įranga arduino.cc/en/
- Pridėkite „Node MCu“plokštę prie „Arduino IDE“
-
Norėdami įkelti kodą į „NodeMCU“, turite pridėti „NodeMCu“plokštę prie „ARDUINO IDE“.
- Eikite į failą ir nuostatas „Arduino IDE“
- Papildomos valdybos valdymo skyriuje nukopijuokite šią nuorodą
- arduino.esp8266.com/stable/package_esp8266c…
- ir spustelėkite Gerai
- Lenta parsisiųsta
- Eikite į įrankius ir lentą ir pasirinkite „NodeMCU 1.0 12E“
- Žiūrėkite „avobe“paveikslėlį, kad lengvai suprastumėte
4 veiksmas: atsisiųskite „ArduinoJson“biblioteką
- Eikite į
Eskizas Įtraukti biblioteką Tvarkyti biblioteką
Paieškos laukelyje įveskite „Arduino Json“
Atsisiųskite naujausią „ArduinoJson“bibliotekos versiją
Atsisiuntę biblioteką spustelėkite Uždaryti
Pridėti biblioteką iš
SketchincludeLibraryArduinoJson
5 žingsnis: programa
Įkelkite šią programą į „NodeMCU“plokštę. ir pamatykite savo įrenginio („NodeMCU 1.0 12E“plokštės) vietą serijiniame monitoriuje.
#įtraukti
#įtraukti
#įtraukti
char myssid = "Jūsų SSID"; // jūsų tinklo SSID (pavadinimas)
char mypass = "Jūsų slaptažodis"; // jūsų tinklo slaptažodis
// „Google GeoLocation“API įgaliojimai …
const char* Host = "www.googleapis.com";
String thisPage = "/geolocation/v1/geolocate? Key =";
// --- Gaukite „Google Maps“ap raktą čia:
developers.google.com/maps/documentation/geolocation/intro
String key = "Jūsų" Google "API raktas"; // Rasti iš 2 veiksmo
Instrukcija
int būsena = WL_IDLE_STATUS;
Styga jsonString = "{ n";
dviguba platuma = 0,0;
dviguba ilguma = 0,0;
dvigubas tikslumas = 0,0;
int more_text = 1; // nustatykite 1, kad gautumėte daugiau derinimo rezultatų
void setup () {
Serial.begin (9600);
Serial.println („Pradėti“);
// Nustatykite „WiFi“į stoties režimą ir
atjunkite nuo AP, jei ji anksčiau buvo prijungta
„WiFi.mode“(WIFI_STA);
„WiFi.disconnect“();
vėlavimas (100);
Serial.println ( Sąranka
padaryta );
// Pradedame nuo prisijungimo prie a
WiFi tinklas
Serial.print ( Prisijungimas prie
);
Serial.println (myssid);
WiFi.begin (myssid, mypass);
while (WiFi.status ()! = WL_CONNECTED) {
vėlavimas (500);
Serijinis atspaudas (".");
}
Serial.println (".");
}
void loop () {
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println („nuskaitymo pradžia“);
// „WiFi.scanNetworks“grįš
rastų tinklų skaičius
int n = WiFi.scanNetworks ();
Serial.println ("scandone");
jei (n == 0)
Serial.println ("tinklų nerasta");
Kitas
{
Serijinis atspaudas (n);
Serial.println ("rasti tinklai …");
jei (daugiau_teksto) {
// Atspausdinkite suformatuotą „json“…
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // tai tikras JK MKC
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // ir tikras JK MNC
Serial.println ("\" radioType / ": \" gsm / ","); // gsm
Serial.println ("\" carrier / ": \" Vodafone / ","); // susietas su „Vodafone“
Serial.println ("\" cellTowers / ": ["); // Aš nepranešu apie jokius kameros bokštus
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
už (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)“);
jei (i <n - 1)
{
Serial.println ("},");
}
Kitas
{
Serial.println ("}");
}
}
Serial.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// dabar sukurkite „jsonString“…
jsonString = "{ n";
jsonString += "\" homeMobileCountryCode / ": 234, / n"; // tai tikras JK MKC
jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // ir tikras JK MNC
jsonString += "\" radioType / ": \" gsm / ", / n"; // gsm
jsonString += "\" vežėjas / ": \" Vodafone / ", / n"; // susietas su „Vodafone“
jsonString += "\" wifiAccessPoints / ": [n";
už (int j = 0; j <n; ++ j)
{
jsonString += "{ n";
jsonString += "\" macAddress / ": \" ";
jsonString += („WiFi. BSSIDstr“(j));
jsonString += "\", / n ";
jsonString += "\" signalStrength / ":";
jsonString += WiFi. RSSI (j);
jsonString += "\ n";
jei (j <n - 1)
{
jsonString += "}, / n";
}
Kitas
{
jsonString += "} n";
}
}
jsonString += ("] n");
jsonString += ("} n");
//--------------------------------------------------------------------
Serial.println ("");
„WiFiClientSecure“klientas;
// Prisijunkite prie kliento ir skambinkite api
Serial.print ("Užklausos URL:");
// ---- Gaukite „Google Maps Api Key“čia, nuoroda:
Serial.println ("https://" + (String) Host + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");
Serial.println ("");
if (client.connect (priegloba, 443)) {
Serial.println („Prisijungta“);
client.println („POST“+ šis puslapis + raktas + „HTTP/1.1“);
client.println ("Priegloba:" + (eilutės) priegloba);
client.println ("Ryšys: uždaryti");
client.println ("Turinio tipas: programa/json");
client.println („Vartotojo agentas:„ Arduino “/1.0“);
client.print ("Turinio ilgis:");
client.println (jsonString.length ());
klientas.println ();
client.print (jsonString);
vėlavimas (500);
}
// Perskaitykite ir išanalizuokite visas eilutes
atsakymas iš serverio
while (client.available ()) {
Eilutės eilutė = client.readStringUntil ('\ r');
jei (daugiau_teksto) {
Serial.print (linija);
}
JsonObject & root = jsonBuffer.parseObject (eilutė);
if (root.success ()) {
platuma = šaknis ["vieta"] ["lat"];
ilguma = šaknis ["vieta"] ["lng"];
tikslumas = šaknis ["tikslumas"];
}
}
Serial.println („uždaromas ryšys“);
Serial.println ();
client.stop ();
Serial.print ("Platuma =");
Serial.println (platuma, 6);
Serial.print ("Ilguma =");
Serijinis.println (ilguma, 6);
Serial.print ("Tikslumas =");
Serial.println (tikslumas);
vėlavimas (10000);
Serial.println ();
Serial.println („Paleidžiama iš naujo …“);
Serial.println ();
vėlavimas (2000 m.);
}
Rekomenduojamas:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: 7 žingsniai
„Pixel Kit“, kuriame veikia „MicroPython“: pirmieji žingsniai: Kelionė, skirta visam „Kano Pixel“potencialui išnaudoti, prasideda gamyklos programinės įrangos pakeitimu „MicroPython“, tačiau tai tik pradžia. Norėdami koduoti „Pixel Kit“, turime prie jo prijungti savo kompiuterius. Ši pamoka paaiškins, kas
Tiesioginė 4G/5G HD vaizdo transliacija iš DJI drono esant mažai delsai [3 žingsniai]: 3 žingsniai
Tiesioginis 4G/5G HD vaizdo įrašų srautinis perdavimas iš DJI drono esant mažai delsai [3 žingsniai]: Šis vadovas padės jums gauti tiesioginius HD kokybės vaizdo srautus iš beveik visų DJI dronų. Naudodami „FlytOS Mobile App“ir „FlytNow Web Application“galite pradėti transliuoti vaizdo įrašus iš drono