Talaan ng mga Nilalaman:

GEOLOACATION: 5 Hakbang
GEOLOACATION: 5 Hakbang

Video: GEOLOACATION: 5 Hakbang

Video: GEOLOACATION: 5 Hakbang
Video: Lose Weight 10lbs (5㎏)! Burn Fat Fast by Loosening & Building Butt Muscles: 16min Workout 2024, Nobyembre
Anonim
GEOLOACATION
GEOLOACATION

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

Hanapin ang Google API
Hanapin ang Google API
Hanapin ang Google API
Hanapin ang Google API
Hanapin ang Google API
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-setup ang NodeMCu sa Arduino IDE
I-setup ang NodeMCu sa Arduino IDE
I-setup ang NodeMCu sa Arduino IDE
I-setup ang NodeMCu sa Arduino IDE
I-setup ang NodeMCu sa Arduino IDE
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

I-download ang ArduinoJson Library
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);

}

Inirerekumendang: