Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Projectshtë Projekti im i Praktikës Verore. Unë vërtet befasohem kur dëgjoj se mund të gjurmojmë vendndodhjen e çdo pajisjeje pa përdorur modulin GPS vetëm duke përdorur NodeMCU. Përmes kësaj ne mund të gjurmojmë çdo pajisje. Ju gjithashtu befasoni se si mund ta gjurmojmë pajisjen duke përdorur vetëm WiFi. Këtu janë përshkrimet e llojit për ta kuptuar atë.
- · Skanon pothuajse të gjithë WiFi -në tuaj.
- · Dërgoni këtë vendndodhje të pajisjes në Google duke përdorur API të Google
- · Sipas kësaj Gjeni vendndodhjen e pajisjes tuaj
- · Keni lidhje të fortë rrjeti për këtë Projekt.
Hapi 1: Pjesët dhe vegla
Pjesët
- NodeMCU (ESP8266 1.0 12E)
- Kabllo USB
Mjetet
Arduino IDE me bordin NodeMcu 1.0 12E
API e Google
Hapi 2: Gjeni API të Google
- Hapni Shfletuesin tuaj dhe shkruani: console.developer.google.com
- Krijoni një projekt të ri
- Pasi Krijoni një Projekt të ri klikoni në letër kredenciale
- Klikoni në API Key
-
Çelësi juaj API është krijuar
Për ta kuptuar më lehtë shikoni foton e mëposhtme |>
Hapi 3: Konfiguroni NodeMCu në Arduino IDE
- Shkarkoni Arduino IDE nga lidhja e mëposhtme:- https:// www. Kryesore/Softueri arduino.cc/en/
- Shtoni tabelën Node MCu në Arduino IDE
-
Për ngarkimin e kodit në NodeMCU duhet të shtoni tabelën NodeMCu në ARDUINO IDE.
- SHKO te skedari & Preferenca në Arduino IDE
- Dhe në seksionin e menaxhimit të Bordit shtesë kopjoni lidhjen e mëposhtme
- arduino.esp8266.com/stable/package_esp8266c…
- dhe kliko Ok
- Bordi është shkarkuar
- Shkoni te mjetet dhe bordi dhe zgjidhni NodeMCU 1.0 12E
- Shikoni foton avobe për ta kuptuar lehtë
Hapi 4: Shkarkoni Bibliotekën ArduinoJson
- Shkoni te
Skica Përfshi Bibliotekën Menaxhoni Bibliotekën
Shkruani Arduino Json në kutinë e kërkimit
Shkarkoni versionin më të fundit të bibliotekës ArduinoJson
pas shkarkimit të bibliotekës kliko mbyll
Shto bibliotekë nga
SketchincludeLibraryraryArduinoJson
Hapi 5: Programi
Ngarko programin e mëposhtëm në tabelën NodeMCU. dhe shihni vendndodhjen e pajisjes tuaj (bordi NodeMCU 1.0 12E) në monitorin serik.
#përfshi
#përfshi
#përfshi
char myssid = "SSID -i juaj"; // SSID i rrjetit tuaj (emri)
char mypass = "Fjalëkalimi juaj"; // fjalëkalimi i rrjetit tuaj
// Kredencialet për Google GeoLocation API…
const char* Host = "www.googleapis.com";
String thisPage = "/gjeolocation/v1/gjeolocate? Key =";
// --- Merrni një çelës Google Maps këtu:
developers.google.com/maps/documentation/geolocation/intro
Çelësi i vargut = "Çelësi juaj API i Google"; // Gjeni nga hapi 2
Udhëzim
int status = WL_IDLE_STATUS;
String jsonString = "{ n";
gjerësi gjeografike të dyfishtë = 0.0;
gjatësi të dyfishtë = 0.0;
saktësi e dyfishtë = 0.0;
int more_tekst = 1; // vendosur në 1 për më shumë dalje të korrigjimit
void setup () {
Serial.filloj (9600);
Serial.println ("Fillimi");
// Vendosni WiFi në modalitetin e stacionit dhe
shkëputeni nga një AP nëse ishte e lidhur më parë
Modaliteti WiFi (WIFI_STA);
WiFi. Shkëputje ();
vonesa (100);
Serial.println ( Konfigurimi
bërë );
// Fillojmë duke u lidhur me a
Rrjet WiFi
Serial.print ( Lidhu me
);
Serial.println (myssid);
WiFi.filloj (myssid, mypass);
ndërsa (WiFi.status ()! = WL_CONNECTED) {
vonesë (500);
Serial.print (".");
}
Serial.println (".");
}
lak void () {
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println ("fillimi i skanimit");
// WiFi.scanNetworks do të kthehet
numri i rrjeteve të gjetura
int n = WiFi.scanNetworks ();
Serial.println ("skandone");
nëse (n == 0)
Serial.println ("nuk u gjet asnjë rrjet");
tjeter
{
Serial.print (n);
Serial.println ("rrjetet e gjetura …");
nëse (më shumë_tekst) {
// Shtypni json -in e formatuar…
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // kjo është një MCC e vërtetë në Mbretërinë e Bashkuar
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // dhe një MNC e vërtetë në Mbretërinë e Bashkuar
Serial.println ("\" radioTipi / ": \" gsm / ","); // për gsm
Serial.println ("\" transportuesi / ": \" Vodafone / ","); // lidhur me Vodafone
Serial.println ("\" cellTowers / ": ["); // Unë nuk jam duke raportuar ndonjë kullë qelizash
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
për (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));
nëse (i <n - 1)
{
Serial.println ("},");
}
tjeter
{
Serial.println ("}");
}
}
Serial.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// tani ndërto jsonString…
jsonString = "{ n";
jsonString += "\" homeMobileCountryCode / ": 234, / n"; // kjo është një MCC e vërtetë në Mbretërinë e Bashkuar
jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // dhe një MNC e vërtetë në Mbretërinë e Bashkuar
jsonString += "\" radioTipi / ": \" gsm / ", / n"; // për gsm
jsonString += "\" transportues / ": \" Vodafone / ", / n"; // lidhur me Vodafone
jsonString += "\" wifiAccessPoints / ": [ n";
për (int j = 0; j <n; ++ j)
{
jsonString += "{ n";
jsonString += "\" macAdresa / ": \" ";
jsonString += (WiFi. BSSIDstr (j));
jsonString += "\", / n ";
jsonString += "\" signalStrength / ":";
jsonString += WiFi. RSSI (j);
jsonString += "\ n";
nëse (j <n - 1)
{
jsonString += "}, / n";
}
tjeter
{
jsonString += "} n";
}
}
jsonString += ("] n");
jsonString += ("} n");
//--------------------------------------------------------------------
Serial.println ("");
Klient WiFiClientSecure;
// Lidhuni me klientin dhe bëni thirrjen api
Serial.print ("Kërkohet URL:");
// ---- Merrni Google Maps Api Key këtu, Lidhje:
Serial.println ("https://" + (String) Pritësi + kjo faqe + "VENDOS-JUAJ-GOOGLE-HAPS-API-KRYESORE-KERTU");
Serial.println ("");
if (client.connect (Host, 443)) {
Serial.println ("I lidhur");
client.println ("POST" + kjo faqe + çelës + "HTTP/1.1");
client.println ("Host:" + (String) Host);
client.println ("Lidhja: mbyll");
client.println ("Lloji i përmbajtjes: aplikacion/json");
client.println ("Agjenti i Përdoruesit: Arduino/1.0");
client.print ("Përmbajtja-Gjatësia:");
client.println (jsonString.length ());
klient.println ();
klient.print (jsonString);
vonesë (500);
}
// Lexoni dhe analizoni të gjitha rreshtat e
përgjigja nga serveri
ndërsa (client.available ()) {
String line = client.readStringUntil ('\ r');
nëse (më shumë_tekst) {
Serial.print (linjë);
}
JsonObject & root = jsonBuffer.parseObject (linjë);
nëse (root.success ()) {
gjerësi gjeografike = rrënjë ["vendndodhje"] ["lat"];
gjatësia gjeografike = rrënja ["vendndodhja"] ["lng"];
saktësi = rrënjë ["saktësi"];
}
}
Serial.println ("lidhja mbyllëse");
Serial.println ();
client.stop ();
Serial.print ("Gjerësia gjeografike =");
Serial.println (gjerësi gjeografike, 6);
Serial.print ("Gjatësia gjeografike =");
Serial.println (gjatësia gjeografike, 6);
Serial.print ("Saktësia =");
Serial.println (saktësia);
vonesë (10000);
Serial.println ();
Serial.println ("Rinisja …");
Serial.println ();
vonesa (2000);
}