Sisällysluettelo:
- Vaihe 1: Osat ja työkalu
- Vaihe 2: Etsi Google -sovellusliittymä
- Vaihe 3: Asenna NodeMCu Arduino IDE: hen
- Vaihe 4: Lataa ArduinoJson -kirjasto
- Vaihe 5: Ohjelmoi
Video: GEOLOACATION: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Se on kesäharjoitteluprojektini. Olen todella yllättynyt, kun kuulen, että voimme jäljittää minkä tahansa laitteen sijainnin ilman GPS -moduulia vain NodeMCU: n avulla. Tämän avulla voimme jäljittää minkä tahansa laitteen. Yllätyt myös siitä, kuinka voimme jäljittää laitteen käyttämällä vain WiFi -yhteyttä. Tässä on selostus sen ymmärtämiseksi.
- · Se skannaa lähes kaikki WiFi -yhteytesi.
- · Lähetä tämän laitteen sijainti Googlelle Google -sovellusliittymän avulla
- · Tämän mukaan se etsii laitteesi sijainnin
- · Sinulla on vahva verkkoyhteys tähän projektiin.
Vaihe 1: Osat ja työkalu
Osat
- NodeMCU (ESP8266 1.0 12E)
- USB kaapeli
Työkalut
Arduino IDE ja NodeMcu 1.0 12E Board
Google -sovellusliittymä
Vaihe 2: Etsi Google -sovellusliittymä
- Avaa selain ja kirjoita: console.developer.google.com
- Luo uusi projekti
- Kun olet luonut uuden projektin, napsauta tunnistetietoja
- Napsauta API -avainta
-
API -avaimesi on luotu
Katso seuraava kuva |>, jotta ymmärrät helposti
Vaihe 3: Asenna NodeMCu Arduino IDE: hen
- Lataa Arduino IDE seuraavasta linkistä:- https:// www. Pääsivu/Ohjelmisto arduino.cc/en/
- Lisää Node MCu -levy Arduino IDE: hen
-
Jos haluat ladata koodin NodeMCU: lle, sinun on lisättävä NodeMCu -kortti ARDUINO IDE -laitteeseen.
- Siirry tiedostoon ja asetuksiin Arduino IDE: ssä
- Kopioi seuraava hallituksen linkki Lisähallituksen hallintaan
- arduino.esp8266.com/stable/package_esp8266c…
- ja napsauta OK
- Taulu ladataan
- Siirry työkaluihin ja taululle ja valitse NodeMCU 1.0 12E
- Katso avoben kuva helpommin ymmärrettäväksi
Vaihe 4: Lataa ArduinoJson -kirjasto
- Siirry kohtaan
Luonnos Sisällytä kirjasto Hallitse kirjastoa
Kirjoita hakukenttään Arduino Json
Lataa ArduinoJson -kirjaston uusin versio
kirjaston lataamisen jälkeen napsauta Sulje
Lisää kirjasto kohteesta
LuonnosluetteloKirjastoArduinoJson
Vaihe 5: Ohjelmoi
Lataa seuraava ohjelma NodeMCU -kortille. ja katso laitteen (NodeMCU 1.0 12E -kortti) sijainti sarjamonitorista.
#sisältää
#sisältää
#sisältää
char myssid = "SSID -tunnuksesi"; // verkkosi SSID (nimi)
char mypass = "Salasanasi"; // verkkosi salasana
// Google GeoLocation -sovellusliittymän tunnistetiedot…
const char* Isäntä = "www.googleapis.com";
String thisPage = "/geolocation/v1/geolocate? Key =";
// --- Hanki Google Maps -ap-avain täältä:
developers.google.com/maps/documentation/geolocation/intro
String key = "Google -sovellusliittymäavaimesi"; // Etsi vaiheesta 2
Ohje
int -tila = WL_IDLE_STATUS;
Jono jsonString = "{ n";
kaksinkertainen leveysaste = 0,0;
kaksinkertainen pituusaste = 0,0;
kaksinkertainen tarkkuus = 0,0;
int more_text = 1; // aseta 1, jos haluat enemmän virheenkorjausta
void setup () {
Sarja.alku (9600);
Serial.println ("Käynnistä");
// Aseta WiFi asematilaan ja
katkaise yhteys tukiasemaan, jos se on aiemmin liitetty
WiFi.mode (WIFI_STA);
WiFi. Irrota ();
viive (100);
Serial.println ( Asennus
tehty );
// Aloitamme yhdistämällä a
WiFi -verkko
Serial.print ( Yhdistetään
);
Serial.println (myssid);
WiFi.begin (myssid, mypass);
while (WiFi.status ()! = WL_CONNECTED) {
viive (500);
Serial.print (".");
}
Sarja.println (".");
}
void loop () {
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println ("skannauksen aloitus");
// WiFi.scanNetworks palaa
löydettyjen verkkojen määrä
int n = WiFi.scanNetworks ();
Serial.println ("scandone");
jos (n == 0)
Serial.println ("verkkoja ei löydy");
muu
{
Sarjanjälki (n);
Serial.println ("verkosta löydetty …");
jos (lisää_teksti) {
// Tulosta alustettu json…
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // tämä on todellinen UK MCC
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // ja todellinen UK MNC
Serial.println ("\" radioType / ": \" gsm / ","); // gsm: lle
Serial.println ("\" carrier / ": \" Vodafone / ","); // liittyy Vodafoneen
Serial.println ("\" cellTowers / ": ["); // En ilmoita yhtään solutornia
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
(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));
jos (i <n - 1)
{
Serial.println ("},");
}
muu
{
Serial.println ("}");
}
}
Sarja.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// rakenna nyt jsonString …
jsonString = "{ n";
jsonString += "\" homeMobileCountryCode / ": 234, / n"; // tämä on todellinen UK MCC
jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // ja todellinen UK MNC
jsonString += "\" radioType / ": \" gsm / ", / n"; // gsm: lle
jsonString += "\" carrier / ": \" Vodafone / ", / n"; // liittyy Vodafoneen
jsonString += "\" wifiAccessPoints / ": [n";
(int j = 0; j <n; ++ j)
{
jsonString += "{ n";
jsonString += "\" macAddress / ": \" ";
jsonString += (WiFi. BSSIDstr (j));
jsonString += "\", / n ";
jsonString += "\" signalStrength / ":";
jsonString += WiFi. RSSI (j);
jsonString += "\ n";
jos (j <n - 1)
{
jsonString += "}, / n";
}
muu
{
jsonString += "} n";
}
}
jsonString += ("] n");
jsonString += ("} n");
//--------------------------------------------------------------------
Serial.println ("");
WiFiClientSecure -asiakas;
// Yhdistä asiakas ja soita api -puhelu
Serial.print ("Pyynnön URL -osoite:");
// ---- Hanki Google Maps Api -avain täältä, linkki:
Serial.println ("https://" + (String) Host + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");
Serial.println ("");
if (client.connect (isäntä, 443)) {
Serial.println ("Yhdistetty");
client.println ("POST" + thisPage + -avain + "HTTP/1.1");
client.println ("Isäntä:" + (merkkijono) isäntä);
client.println ("Yhteys: sulje");
client.println ("Sisältötyyppi: application/json");
client.println ("Käyttäjäagentti: Arduino/1.0");
client.print ("Content-Length:");
client.println (jsonString.length ());
client.println ();
client.print (jsonString);
viive (500);
}
// Lue ja jäsennä kaikki rivit
vastaus palvelimelta
while (client.available ()) {
Merkkijono = client.readStringUntil ('\ r');
jos (lisää_teksti) {
Serial.print (rivi);
}
JsonObject & root = jsonBuffer.parseObject (rivi);
if (root.success ()) {
leveysaste = juuri ["sijainti"] ["lat"];
pituusaste = juuri ["location"] ["lng"];
tarkkuus = juuri ["tarkkuus"];
}
}
Serial.println ("sulkeva yhteys");
Sarja.println ();
client.stop ();
Serial.print ("Leveysaste =");
Sarja.println (leveysaste, 6);
Serial.print ("Pituusaste =");
Sarja.println (pituusaste, 6);
Serial.print ("Tarkkuus =");
Serial.println (tarkkuus);
viive (10000);
Sarja.println ();
Serial.println ("Käynnistetään uudelleen …");
Sarja.println ();
viive (2000);
}
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen