Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ito ay ang aking Summer Internship Project. Talagang sorpresa ako kapag naririnig ko na maaari naming subaybayan ang lokasyon ng anumang aparato nang hindi gumagamit ng modyul na GPS gamit lamang ang NodeMCU. Sa pamamagitan nito maaari naming masubaybayan ang anumang aparato. Nagtataka ka rin kung paano namin masusubaybayan ang aparato gamit lamang ang WiFi. Narito ang uri ng paglalarawan upang maunawaan ito.
- · I-scan ang iyong halos lahat ng WiFi.
- · Ipadala ang lokasyon ng device na ito sa Google gamit ang Google API
- · Ayon dito Hanapin ang lokasyon ng iyong aparato
- · Mayroon kang malakas na koneksyon sa network para sa Project na ito.
Hakbang 1: Mga Bahagi at Tool
Mga Bahagi
- NodeMCU (ESP8266 1.0 12E)
- Kable ng USB
Mga kasangkapan
Arduino IDE kasama ang NodeMcu 1.0 12E Board
Google API
Hakbang 2: Hanapin ang Google API
- Buksan ang Iyong Browser at i-type ang: console.developer.google.com
- Lumikha ng isang bagong proyekto
- Pagkatapos Lumikha ng isang bagong pag-click sa Project sa kredensyal
- Mag-click sa API Key
-
Nabuo ang iyong API Key
Para sa madaling pag-unawa tingnan ang sumusunod na larawan |>
Hakbang 3: I-setup ang NodeMCu sa Arduino IDE
- I-download ang Arduino IDE mula sa sumusunod na Link: - https:// www. Pangunahing / Software arduino.cc/en/
- Idagdag ang board ng Node MCu sa Arduino IDE
-
Para sa pag-upload ng code sa NodeMCU kailangan mong idagdag ang board ng NodeMCu sa ARDUINO IDE.
- PUMUNTA sa file at Kagustuhan sa Arduino IDE
- At sa Karagdagang tagapamahala ng tagapamahala ng Kopya kopyahin ang sumusunod na link
-
arduino.esp8266.com/stable/package_esp8266c…
- at i-click ang Ok
- Ang board ay na-download
- Pumunta sa mga tool at board at piliin ang NodeMCU 1.0 12E
- Tingnan ang larawan ng avobe para sa madaling pag-unawa
Hakbang 4: I-download ang ArduinoJson Library
- Pumunta sa
Isama sa Sketch ang Pamahalaan ang Library
I-type ang Arduino Json sa search box
I-download ang pinakabagong bersyon ng ArduinoJson library
pagkatapos ng pag-download ng library mag-click malapit
Magdagdag ng library mula sa
SketchincludeLibraryArduinoJson
Hakbang 5: Programa
I-upload ang sumusunod na programa sa board ng NodeMCU. at makita ang lokasyon ng iyong aparato (NodeMCU 1.0 12E) sa Serial monitor.
# isama
# isama
# isama
char myssid = "Iyong SSID"; // iyong network SSID (pangalan)
char mypass = "Iyong Password"; // iyong network password
// Mga Kredensyal para sa Google GeoLocation API…
const char * Host = "www.googleapis.com";
String thisPage = "/ geolocation / v1 / geolocate? Key =";
// --- Kumuha ng isang google map ap key dito:
developers.google.com/maps/documentation/geolocation/intro
String key = "Ang iyong Google API key"; // Maghanap mula sa step2
Panuto
int status = WL_IDLE_STATUS;
String jsonString = "{ n";
dobleng latitude = 0.0;
dobleng longitude = 0.0;
dobleng kawastuhan = 0.0;
int more_text = 1; // itakda sa 1 para sa higit pang output ng pag-debug
walang bisa ang pag-setup () {
Serial.begin (9600);
Serial.println ("Start");
// Itakda ang WiFi sa istasyon mode at
idiskonekta mula sa isang AP kung dati itong nakakonekta
WiFi.mode (WIFI_STA);
WiFi.disconnect ();
pagkaantala (100);
Serial.println ( Pag-setup
tapos na );
// Nagsisimula kami sa pamamagitan ng pagkonekta sa a
WiFi network
Serial.print ( Kumokonekta sa
);
Serial.println (myssid);
WiFi.begin (myssid, mypass);
habang (WiFi.status ()! = WL_CONNected) {
pagkaantala (500);
Serial.print (".");
}
Serial.println (".");
}
void loop () {
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println ("scan start");
// WiFi.scanNetworks ay babalik
ang bilang ng mga network na natagpuan
int n = WiFi.scanNetworks ();
Serial.println ("scandone");
kung (n == 0)
Serial.println ("walang nahanap na mga network");
iba pa
{
Serial.print (n);
Serial.println ("networkfound…");
kung (more_text) {
// I-print ang na-format na json…
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // ito ay isang tunay na UK MCC
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // at isang totoong UK MNC
Serial.println ("\" radioType / ": \" gsm / ","); // para sa gsm
Serial.println ("\" carrier / ": \" Vodafone / ","); // na nauugnay sa Vodafone
Serial.println ("\" cellTowers / ": ["); // Hindi ako nag-uulat ng anumang mga cell tower
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
para sa (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));
kung (i <n - 1)
{
Serial.println ("},");
}
iba pa
{
Serial.println ("}");
}
}
Serial.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// now build the jsonString…
jsonString = "{ n";
jsonString + = "\" homeMobileCountryCode / ": 234, / n"; // ito ay isang tunay na UK MCC
jsonString + = "\" homeMobileNetworkCode / ": 27, / n"; // at isang totoong UK MNC
jsonString + = "\" radioType / ": \" gsm / ", / n"; // para sa gsm
jsonString + = "\" carrier / ": \" Vodafone / ", / n"; // na nauugnay sa Vodafone
jsonString + = "\" wifiAccessPoints / ": [ n";
para sa (int j = 0; j <n; ++ j)
{
jsonString + = "{ n";
jsonString + = "\" macAddress / ": \" ";
jsonString + = (WiFi. BSSIDstr (j));
jsonString + = "\", / n ";
jsonString + = "\" signalStrength / ":";
jsonString + = WiFi. RSSI (j);
jsonString + = "\ n";
kung (j <n - 1)
{
jsonString + = "}, / n";
}
iba pa
{
jsonString + = "} n";
}
}
jsonString + = ("] n");
jsonString + = ("} n");
//--------------------------------------------------------------------
Serial.println ("");
Client ng WiFiClientSecure;
// Kumonekta sa kliyente at tumawag sa api
Serial.print ("Humihiling ng URL:");
// ---- Kunin ang Google Maps Api Key dito, Link:
Serial.println ("https://" + (String) Host + thisPage + "PUT-HIS-GOOGLE-MAPS-API-KEY-DITO");
Serial.println ("");
kung (client.connect (Host, 443)) {
Serial.println ("Nakakonekta");
client.println ("POST" + thisPage + key + "HTTP / 1.1");
client.println ("Host:" + (String) Host);
client.println ("Koneksyon: malapit");
client.println ("Uri ng Nilalaman: application / json");
client.println ("User-Agent: Arduino / 1.0");
client.print ("Haba ng Nilalaman:");
client.println (jsonString.length ());
client.println ();
client.print (jsonString);
pagkaantala (500);
}
// Basahin at i-parse ang lahat ng mga linya ng
ang tugon mula sa server
habang (client.available ()) {
String line = client.readStringUntil ('\ r');
kung (more_text) {
Serial.print (linya);
}
JsonObject & root = jsonBuffer.parseObject (linya);
kung (root.success ()) {
latitude = root ["lokasyon"] ["lat"];
longitude = root ["lokasyon"] ["lng"];
kawastuhan = ugat ["katumpakan"];
}
}
Serial.println ("pagsasara ng koneksyon");
Serial.println ();
client.stop ();
Serial.print ("Latitude =");
Serial.println (latitude, 6);
Serial.print ("Longitude =");
Serial.println (longitude, 6);
Serial.print ("Kawastuhan =");
Serial.println (kawastuhan);
pagkaantala (10000);
Serial.println ();
Serial.println ("Restarting…");
Serial.println ();
pagkaantala (2000);
}