Sadržaj:
- Korak 1: Dijelovi i alat
- 2. korak: Pronađite Google API
- Korak 3: Postavite NodeMCu na Arduino IDE
- Korak 4: Preuzmite ArduinoJson knjižnicu
- Korak 5: Program
Video: GEOLOAKACIJA: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
To je moj projekt ljetne prakse. Zaista sam iznenađen kad čujem da možemo pratiti lokaciju bilo kojeg uređaja bez korištenja GPS modula samo pomoću NodeMCU -a. Ovim putem možemo pratiti bilo koji uređaj. Iznenađujete i kako možemo pratiti uređaj koristeći samo WiFi. Evo opisa sortiranja da biste to razumjeli.
- · To je Skeniranje gotovo svih vaših WiFi.
- · Pošaljite ovu lokaciju uređaja Googleu pomoću Google API -ja
- · Prema ovome, locirajte lokaciju vašeg uređaja
- · Imate jaku mrežnu vezu za ovaj projekt.
Korak 1: Dijelovi i alat
Dijelovi
- NodeMCU (ESP8266 1.0 12E)
- USB kabl
Alati
Arduino IDE s NodeMcu 1.0 12E pločom
Google API
2. korak: Pronađite Google API
- Otvorite svoj preglednik i upišite: console.developer.google.com
- Izradite novi projekt
- Nakon stvaranja novog projekta kliknite vjerodajnice
- Kliknite na API ključ
-
Vaš API ključ je generiran
Za lakše razumijevanje pogledajte sljedeću sliku |>
Korak 3: Postavite NodeMCu na Arduino IDE
- Preuzmite Arduino IDE sa sljedeće veze:- https:// www. Glavna/Softver arduino.cc/en/
- Dodajte Node MCu ploču na Arduino IDE
-
Za učitavanje koda na NodeMCU morate dodati ploču NodeMCu na ARDUINO IDE.
- Idite na datoteku i postavke u Arduino IDE
- U odjeljku Dodatni upravitelj odbora kopirajte sljedeću vezu
- arduino.esp8266.com/stable/package_esp8266c…
- i kliknite U redu
- Ploča je preuzeta
- Idite na alate i ploču i odaberite NodeMCU 1.0 12E
- Za lakše razumijevanje pogledajte sliku avoka
Korak 4: Preuzmite ArduinoJson knjižnicu
- Idite na
Skica Uključi knjižnicu Upravljaj knjižnicom
U okvir za pretraživanje upišite Arduino Json
Preuzmite najnoviju verziju ArduinoJson knjižnice
nakon preuzimanja knjižnice kliknite zatvori
Dodajte biblioteku iz
SketchincludeLibraryArduinoJson
Korak 5: Program
Postavite sljedeći program na ploču NodeMCU. i vidjeti mjesto vašeg uređaja (ploča NodeMCU 1.0 12E) na serijskom monitoru.
#uključi
#uključi
#uključi
char myssid = "Vaš SSID"; // vaš mrežni SSID (naziv)
char mypass = "Vaša lozinka"; // vašu mrežnu lozinku
// Vjerodajnice za Google GeoLocation API …
const char* Host = "www.googleapis.com";
String thisPage = "/geolocation/v1/geolocate? Key =";
// --- Ovdje nabavite ap ključ Google google maps:
developers.google.com/maps/documentation/geolocation/intro
String key = "Vaš Google API ključ"; // Pronađi od 2. koraka
Uputa
int status = WL_IDLE_STATUS;
Niz jsonString = "{ n";
dvostruka zemljopisna širina = 0,0;
dvostruka zemljopisna dužina = 0,0;
dvostruka točnost = 0,0;
int more_text = 1; // postavljeno na 1 za više ispisa pogrešaka
void setup () {
Serial.begin (9600);
Serial.println ("Start");
// Postavite WiFi na način rada stanice i
isključite pristupnu točku ako je prethodno bila spojena
WiFi.mode (WIFI_STA);
WiFi.disconnect ();
kašnjenje (100);
Serial.println ( Postavljanje
učinjeno );
// Počinjemo povezivanjem na a
WiFi mreža
Serial.print ( Povezivanje s
);
Serial.println (myssid);
WiFi.počnite (myssid, mypass);
while (WiFi.status ()! = WL_CONNECTED) {{100} {101}
kašnjenje (500);
Serial.print (".");
}
Serial.println (".");
}
void loop () {{100} {101}
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println ("početak skeniranja");
// WiFi.scanNetworks će se vratiti
broj pronađenih mreža
int n = WiFi.scanNetworks ();
Serial.println ("scandone");
ako (n == 0)
Serial.println ("nisu pronađene mreže");
drugo
{
Serial.print (n);
Serial.println ("mreže pronađene …");
if (više_teksta) {
// Ispis formatiranog jsona …
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // ovo je pravi UKC MC
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // i pravi UK MNC
Serial.println ("\" radioType / ": \" gsm / ","); // za gsm
Serial.println ("\" operater / ": \" Vodafone / ","); // povezan s Vodafonom
Serial.println ("\" cellTowers / ": ["); // Ne prijavljujem nikakve ćelijske tornjeve
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
za (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));
ako (i <n - 1)
{
Serial.println ("},");
}
drugo
{
Serial.println ("}");
}
}
Serial.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// sada sastavite jsonString …
jsonString = "{ n";
jsonString += "\" homeMobileCountryCode / ": 234, / n"; // ovo je pravi UKC MC
jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // i pravi UK MNC
jsonString += "\" radioType / ": \" gsm / ", / n"; // za gsm
jsonString += "\" operater / ": \" Vodafone / ", / n"; // povezan s Vodafonom
jsonString += "\" wifiAccessPoints / ": [n";
za (int j = 0; j <n; ++ j)
{
jsonString += "{ n";
jsonString += "\" macAddress / ": \" ";
jsonString += (WiFi. BSSIDstr (j));
jsonString += "\", / n ";
jsonString += "\" signalStrength / ":";
jsonString += WiFi. RSSI (j);
jsonString += "\ n";
ako (j <n - 1)
{
jsonString += "}, / n";
}
drugo
{
jsonString += "} n";
}
}
jsonString += ("] n");
jsonString += ("} n");
//--------------------------------------------------------------------
Serial.println ("");
WiFiClientSecure klijent;
// Povežite se s klijentom i uputite api poziv
Serial.print ("Traženje URL -a:");
// ---- Ovdje nabavite Api ključ Google karata, veza:
Serial.println ("https://" + (String) Host + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");
Serial.println ("");
if (client.connect (Host, 443)) {
Serial.println ("Povezano");
client.println ("POST" + thisPage + ključ + "HTTP/1.1");
client.println ("Host:" + (String) Host);
client.println ("Veza: zatvori");
client.println ("Vrsta sadržaja: aplikacija/json");
client.println ("Korisnički agent: Arduino/1.0");
client.print ("Content-Length:");
client.println (jsonString.length ());
client.println ();
client.print (jsonString);
kašnjenje (500);
}
// Pročitajte i raščlanite sve retke
odgovor sa servera
while (client.available ()) {
Linija niza = client.readStringUntil ('\ r');
if (više_teksta) {
Serijski.ispis (redak);
}
JsonObject & root = jsonBuffer.parseObject (linija);
if (root.success ()) {{100} {101}
zemljopisna širina = korijen ["lokacija"] ["lat"];
longitude = root ["location"] ["lng"];
točnost = korijen ["točnost"];
}
}
Serial.println ("zatvaranje veze");
Serial.println ();
client.stop ();
Serial.print ("Latitude =");
Serial.println (zemljopisna širina, 6);
Serial.print ("Longitude =");
Serial.println (zemljopisna dužina, 6);
Serial.print ("Točnost =");
Serial.println (točnost);
kašnjenje (10000);
Serial.println ();
Serial.println ("Ponovno pokretanje …");
Serial.println ();
odgoda (2000);
}
Preporučeni:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način stvaranja igre, osobito nečega poput zagonetke, vizualnog romana ili avanturističke igre
Broj koraka: 17 koraka
الكشف عن عن أنواع المحاليل: محمدآل سعودالكشف عن المحاليل رابط الفديو
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom Instructableu ćemo izvršiti detekciju lica na Raspberry Pi 4 sa Shunya O/S pomoću knjižnice Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja s
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovno početi vježbati. Koju opremu trebam pripremiti?
Aduino UNO Broj koraka: 5 koraka
Aduino UNO 를 이용한 도망 치는 &&&& && l g g g g g g g g g g g g g g g 4 g 4 4 4 4 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 프로젝트 일자 일자 일자: 2017.01.06. ~ 2017.01.11.- 역할 분담 SW 엔지니어: 김 예은, 임동영 HW 엔지니어: 김지훈 디자이너: 이재민 레코더: 홍 다예 ------------------------ --------------------------------------------------