Sisukord:
- Samm: osad ja tööriist
- 2. toiming: leidke Google'i API
- Samm: seadistage NodeMCu Arduino IDE -sse
- Samm: laadige alla ArduinoJsoni teek
- Samm: programm
Video: GEOLOACATION: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
See on minu suvine praktikaprojekt. Ma olen tõesti üllatunud, kui kuulen, et saame tuvastada mis tahes seadme asukoha ilma GPS -moodulit kasutamata ainult NodeMCU abil. Selle kaudu saame jälgida mis tahes seadet. Üllatate ka seda, kuidas saame seadet jälgida ainult WiFi kaudu. Siin on selle kirjeldamiseks selle kirjeldus.
- · See skaneerib peaaegu kogu WiFi.
- · Saatke selle seadme asukoht Google'ile, kasutades Google'it
- · Selle järgi tuvastage oma seadme asukoht
- · Teil on selle projekti jaoks tugev võrguühendus.
Samm: osad ja tööriist
Osad
- NodeMCU (ESP8266 1.0 12E)
- USB -kaabel
Tööriistad
Arduino IDE koos NodeMcu 1.0 12E tahvliga
Google'i API
2. toiming: leidke Google'i API
- Avage oma brauser ja tippige: console.developer.google.com
- Loo uus projekt
- Pärast uue projekti loomist klõpsake mandaadil
- Klõpsake API võtit
-
Teie API võti on loodud
Lihtsaks mõistmiseks vaadake järgmist pilti |>
Samm: seadistage NodeMCu Arduino IDE -sse
- Laadige Arduino IDE alla järgmiselt lingilt:- https:// www. Avaleht/Tarkvara arduino.cc/en/
- Lisage Arduino IDE -le Node MCu plaat
-
NodeMCU -s koodi üleslaadimiseks peate ARDUINO IDE -s lisama NodeMCu tahvli.
- Avage Arduino IDE -s fail ja eelistused
- Ja lisahalduse haldamise jaotises kopeerige järgmine link
- arduino.esp8266.com/stable/package_esp8266c…
- ja klõpsake nuppu OK
- Laud on alla laaditud
- Minge tööriistade ja tahvli juurde ja valige NodeMCU 1.0 12E
- Vaadake hõlpsasti mõistmiseks avobe pilti
Samm: laadige alla ArduinoJsoni teek
- Minge
Visand Kaasa raamatukogu Halda kogu
Sisestage otsingukasti Arduino Json
Laadige alla ArduinoJsoni kogu uusim versioon
pärast kogu allalaadimist klõpsake nuppu Sule
Lisage kogu raamatukogust
SketchincludeLibraryArduinoJson
Samm: programm
Laadige järgmine programm NodeMCU tahvlile üles. ja vaadake oma seadme (NodeMCU 1.0 12E plaat) asukohta jadamonitoril.
#kaasake
#kaasake
#kaasake
char myssid = "Teie SSID"; // teie võrgu SSID (nimi)
char mypass = "Teie parool"; // teie võrgu parool
// Google GeoLocation API volikirjad…
const char* Host = "www.googleapis.com";
String thisPage = "/geolokatsioon/v1/geolokatsioon? Võti =";
// --- Hankige Google'i kaartide ap-võti siit:
developers.google.com/maps/documentation/geolocation/intro
String key = "Sinu Google API võti"; // Leia 2. sammult
Juhend
int olek = WL_IDLE_STATUS;
String jsonString = "{ n";
kahekordne laiuskraad = 0,0;
kahekordne pikkuskraad = 0,0;
kahekordne täpsus = 0,0;
int rohkem_tekst = 1; // seadistage 1, et saada rohkem silumist
tühine seadistus () {
Seriaalne algus (9600);
Serial.println ("Start");
// Lülita WiFi jaamarežiimile ja
katkestage juurdepääs AP -ga, kui see oli varem ühendatud
WiFi -režiim (WIFI_STA);
WiFi.disconnect ();
viivitus (100);
Serial.println ( Seadistamine
tehtud );
// Alustame ühenduse loomisega a
WiFi võrk
Serial.print ( Ühendamine
);
Serial.println (myssid);
WiFi.begin (myssid, mypass);
samas (WiFi.status ()! = WL_CONNECTED) {
viivitus (500);
Seeria.print (".");
}
Serial.println (".");
}
void loop () {
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println ("skannimise algus");
// WiFi.scanNetworks naaseb
leitud võrkude arv
int n = WiFi.scanNetworks ();
Serial.println ("skandoon");
kui (n == 0)
Serial.println ("võrke ei leitud");
muidu
{
Seeriatrükk (n);
Serial.println ("leitud võrgud …");
if (more_text) {
// Prindige vormindatud json välja …
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // see on tõeline Ühendkuningriigi MCC
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // ja tõeline Ühendkuningriigi MNC
Serial.println ("\" radioType / ": \" gsm / ","); // gsm jaoks
Serial.println ("\" operaator / ": \" Vodafone / ","); // seotud Vodafone'iga
Serial.println ("\" cellTowers / ": ["); // Ma ei teata ühestki kambrist
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
jaoks (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));
kui (i <n - 1)
{
Serial.println ("},");
}
muidu
{
Serial.println ("}");
}
}
Serial.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// ehita nüüd jsonString …
jsonString = "{ n";
jsonString += "\" homeMobileCountryCode / ": 234, / n"; // see on tõeline Ühendkuningriigi MCC
jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // ja tõeline Ühendkuningriigi MNC
jsonString += "\" radioType / ": \" gsm / ", / n"; // gsm jaoks
jsonString += "\" operaator / ": \" Vodafone / ", / n"; // seotud Vodafone'iga
jsonString += "\" wifiAccessPoints / ": [n";
jaoks (int j = 0; j <n; ++ j)
{
jsonString += "{ n";
jsonString += "\" macAddress / ": \" ";
jsonString += (WiFi. BSSIDstr (j));
jsonString += "\", / n ";
jsonString += "\" signalStrength / ":";
jsonString += WiFi. RSSI (j);
jsonString += "\ n";
kui (j <n - 1)
{
jsonString += "}, / n";
}
muidu
{
jsonString += "} n";
}
}
jsonString += ("] n");
jsonString += ("} n");
//--------------------------------------------------------------------
Serial.println ("");
WiFiClientSecure klient;
// Looge ühendus kliendiga ja tehke api kõne
Serial.print ("Taotlev URL:");
// ---- Hankige Google Mapsi Api võti siit, link:
Serial.println ("https://" + (String) Host + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");
Serial.println ("");
if (client.connect (hosti, 443)) {
Serial.println ("Ühendatud");
client.println ("POST" + see leht + võti + "HTTP/1.1");
client.println ("Host:" + (String) Host);
client.println ("Ühendus: sulge");
client.println ("Sisu tüüp: rakendus/json");
client.println ("Kasutajaagent: Arduino/1.0");
client.print ("Sisu-pikkus:");
klient.println (jsonString.length ());
klient.println ();
klient.print (jsonString);
viivitus (500);
}
// Lugege ja analüüsige kõiki ridasid
vastus serverilt
while (client.available ()) {
Stringirida = client.readStringUntil ('\ r');
if (more_text) {
Serial.print (rida);
}
JsonObject & root = jsonBuffer.parseObject (rida);
if (root.success ()) {
laiuskraad = juur ["asukoht"] ["laius"];
pikkuskraad = juur ["asukoht"] ["lng"];
täpsus = juur ["täpsus"];
}
}
Serial.println ("ühenduse sulgemine");
Serial.println ();
klient.peatus ();
Serial.print ("Laiuskraad =");
Serial.println (laiuskraad, 6);
Serial.print ("Pikkuskraad =");
Seeria.println (pikkuskraad, 6);
Serial.print ("Täpsus =");
Serial.println (täpsus);
viivitus (10000);
Serial.println ();
Serial.println ("Taaskäivitamine …");
Serial.println ();
viivitus (2000);
}
Soovitan:
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
4G/5G HD -video otseülekanne DJI droonilt madala latentsusega [3 sammu]: 3 sammu
4G/5G HD-video otseülekanne DJI droonilt madala latentsusega [3 sammu]: Järgnev juhend aitab teil saada HD-kvaliteediga otseülekandeid peaaegu igalt DJI droonilt. FlytOSi mobiilirakenduse ja veebirakenduse FlytNow abil saate alustada drooni video voogesitust
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
4 sammu aku sisemise takistuse mõõtmiseks: 4 sammu
4 sammu aku sisemise takistuse mõõtmiseks: Siin on 4 lihtsat sammu, mis aitavad mõõta taigna sisemist takistust