Բովանդակություն:

GEOLOACATION: 5 քայլ
GEOLOACATION: 5 քայլ

Video: GEOLOACATION: 5 քայլ

Video: GEOLOACATION: 5 քայլ
Video: Ինչպե՞ս կարող է մշտական ​​դիմահարդարը դառնալ հարուստ և հաջողակ: Դմիտրի Մալևիչ 2024, Հուլիսի
Anonim
GEOLOACATION
GEOLOACATION

Դա իմ ամառային պրակտիկայի նախագիծն է: Ես իսկապես զարմացնում եմ, երբ լսում եմ, որ մենք կարող ենք հետևել ցանկացած սարքի գտնվելու վայրին ՝ առանց GPS մոդուլ օգտագործելով միայն NodeMCU- ի միջոցով: Դրա միջոցով մենք կարող ենք հետևել ցանկացած սարքի: Ահա այն հասկանալու տեսակավորումը:

  • · Այն սկանավորում է ձեր գրեթե բոլոր WiFi- ն:
  • · Ուղարկեք այս սարքի տեղադրությունը Google- ին ՝ օգտագործելով Google API- ն
  • · Ըստ դրա ՝ Դա տեղադրեք ձեր սարքի գտնվելու վայրը
  • · Դուք ունեք ուժեղ ցանցային կապ այս forրագրի համար:

Քայլ 1: Մասեր և գործիք

Մասեր

  • NodeMCU (ESP8266 1.0 12E)
  • USB մալուխ

Գործիքներ

Arduino IDE ՝ NodeMcu 1.0 12E տախտակով

Google API

Քայլ 2: Գտեք Google API

Գտեք Google API
Գտեք Google API
Գտեք Google API
Գտեք Google API
Գտեք Google API
Գտեք Google API
  • Բացեք ձեր դիտարկիչը և մուտքագրեք ՝ console.developer.google.com
  • Ստեղծեք նոր նախագիծ
  • Նոր նախագիծ ստեղծելուց հետո կտտացրեք հավատարմագրին
  • Կտտացրեք API բանալին
  • Ձեր API բանալին ստեղծվել է

    Հեշտ հասկանալու համար տե՛ս հետևյալ պատկերը |>

Քայլ 3: Կարգավորեք NodeMCu- ն Arduino IDE- ում

Կարգավորեք NodeMCu- ն Arduino IDE- ում
Կարգավորեք NodeMCu- ն Arduino IDE- ում
Կարգավորեք NodeMCu- ն Arduino IDE- ում
Կարգավորեք NodeMCu- ն Arduino IDE- ում
Կարգավորեք NodeMCu- ն Arduino IDE- ում
Կարգավորեք NodeMCu- ն Arduino IDE- ում
  • Ներբեռնեք Arduino IDE- ն հետևյալ հղումից ՝- https:// www. Հիմնական/arրագրակազմ arduino.cc/hy/
  • Ավելացրեք Node MCu տախտակ Arduino IDE- ում
  • NodeMCU- ում կոդը վերբեռնելու համար պետք է ավելացնել NodeMCu տախտակը ARDUINO IDE- ում:

    • Գնացեք Arduino IDE- ում ֆայլ և նախապատվություն
    • Իսկ Լրացուցիչ խորհրդի կառավարման բաժնում պատճենեք հետևյալ հղումը
    • arduino.esp8266.com/stable/package_esp8266c…
    • և կտտացրեք Ok
    • Տախտակը ներբեռնվում է
    • Գնացեք գործիքներ և տախտակ և ընտրեք NodeMCU 1.0 12E
    • Հեշտությամբ հասկանալու համար տես ավոբեի նկարը

Քայլ 4: Ներբեռնեք ArduinoJson գրադարանը

Ներբեռնեք ArduinoJson գրադարանը
Ներբեռնեք ArduinoJson գրադարանը
  • Գնալ դեպի
  • Էսքիզ Ներառեք գրադարան Կառավարեք գրադարանը

    Որոնման դաշտում մուտքագրեք Arduino Json

    Ներբեռնեք ArduinoJson գրադարանի վերջին տարբերակը

    գրադարանը ներբեռնելուց հետո կտտացրեք փակել

    Ավելացնել գրադարան

    SketchincleeLibraryArduinoJson

Քայլ 5: րագիր

Ներբեռնեք հետևյալ ծրագիրը NodeMCU տախտակին: և տեսեք ձեր սարքի (NodeMCU 1.0 12E տախտակ) գտնվելու վայրը Սերիական մոնիտորի վրա:

#ներառում

#ներառում

#ներառում

char myssid = "Ձեր SSID"; // ձեր ցանցի SSID (անունը)

char mypass = "Ձեր գաղտնաբառը"; // ձեր ցանցի գաղտնաբառը

// Google GeoLocation API- ի հավատարմագրեր…

const char* Հաղորդավար = "www.googleapis.com";

String thisPage = "/geolocation/v1/geolocate? Key =";

// --- Ստացեք google maps ap ստեղն այստեղ ՝

developers.google.com/maps/documentation/geolocation/intro

Լարային բանալին = "Ձեր Google API բանալին"; // Գտնել քայլ 2 -ից

Հրահանգ

int կարգավիճակ = WL_IDLE_STATUS;

Լար jsonString = "{ n";

կրկնակի լայնություն = 0.0;

կրկնակի երկայնություն = 0.0;

կրկնակի ճշգրտություն = 0.0;

int more_text = 1; // կարգաբերել 1 -ը ՝ վրիպազերծման ավելի շատ ելքի համար

void setup () {

Serial.begin (9600);

Serial.println («Սկսել»);

// WiFi- ն սահմանել կայանի ռեժիմի և

անջատեք AP- ից, եթե այն նախկինում միացված էր

WiFi.mode (WIFI_STA);

WiFi.d անջատել ();

ուշացում (100);

Serial.println ( Կարգավորում

կատարած );

// Մենք սկսում ենք միանալով a

WiFi ցանց

Serial.print ( Միացում

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

while (WiFi.status ()! = WL_CONNECTED) {

ուշացում (500);

Serial.print (".");

}

Serial.println (".");

}

դատարկ շրջան () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println («սկան սկիզբ»);

// WiFi.scanNetworks- ը կվերադառնա

հայտնաբերված ցանցերի քանակը

int n = WiFi.scanNetworks ();

Serial.println («սկանդոն»);

եթե (n == 0)

Serial.println («ցանցեր չեն գտնվել»);

ուրիշ

{

Serial.print (n);

Serial.println ("ցանցերը գտնված են …");

եթե (ավելի_տեքստ) {

// Տպեք ձևաչափված json…

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // սա իսկական Մեծ Բրիտանիայի ՀՄԿ է

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // և իսկական Միացյալ Թագավորության MNC

Serial.println ("\" radioType / ": \" gsm / ","); // gsm- ի համար

Serial.println ("\" օպերատոր / ": \" Vodafone / ","); // կապված Vodafone- ի հետ

Serial.println ("\" cellTowers / ": ["); // Ես չեմ հայտնում բջջային աշտարակների մասին

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));

եթե (i <n - 1)

{

Serial.println ("},");

}

ուրիշ

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// այժմ կառուցեք jsonString- ը …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // սա իսկական Մեծ Բրիտանիայի ՀՄԿ է

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // և իսկական Միացյալ Թագավորության MNC

jsonString += "\" ռադիոտեղատեսակ / ": \" gsm / ", / n"; // gsm- ի համար

jsonString += "\" օպերատոր / ": \" Vodafone / ", / n"; // կապված Vodafone- ի հետ

jsonString += "\" wifiAccessPoints / ": [n";

համար (int j = 0; j <n; ++ j)

{

jsonString += "{ n";

jsonString += "\" macAddress / ": \" ";

jsonString += (WiFi. BSSIDstr (ժ));

jsonString += "\", / n ";

jsonString += "\" signalStrength / ":";

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

եթե (j <n - 1)

{

jsonString += "}, / n";

}

ուրիշ

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

//--------------------------------------------------------------------

Serial.println ("");

WiFiClientSecure հաճախորդ;

// Միացեք հաճախորդին և կատարեք api զանգ

Serial.print ("Հայցող URL:");

// ---- Ստացեք Google Քարտեզների Api բանալի այստեղ, հղում ՝

Serial.println ("https://" + (String) Հաղորդավար + այս Էջը + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");

Serial.println ("");

if (client.connect (Host, 443)) {

Serial.println («Միացված է»);

client.println ("POST" + thisPage + key + "HTTP/1.1");

client.println ("Host:" + (String) Host);

client.println («Միացում ՝ փակ»);

client.println («Բովանդակության տեսակը ՝ ծրագիր/json»);

client.println ("Օգտվող-գործակալ. Arduino/1.0");

client.print ("Բովանդակություն-երկարություն.");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

ուշացում (500);

}

// Կարդացեք և վերլուծեք բոլոր տողերը

պատասխանը սերվերից

while (client.available ()) {

Լարային գիծ = client.readStringUntil ('\ r');

եթե (ավելի_տեքստ) {

Serial.print (տող);

}

JsonObject & root = jsonBuffer.parseObject (տող);

եթե (root.success ()) {

լայնություն = արմատ ["տեղադրություն"] ["լատ"];

երկայնություն = արմատ ["տեղադրություն"] ["lng"];

ճշտություն = արմատ ["ճշգրտություն"];

}

}

Serial.println («կապի փակումը»);

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (լայնություն, 6);

Serial.print ("Երկայնություն =");

Serial.println (երկայնություն, 6);

Serial.print ("uracyշգրտություն =");

Serial.println (ճշգրտություն);

ուշացում (10000);

Serial.println ();

Serial.println («Վերագործարկվում է …»);

Serial.println ();

ուշացում (2000);

}

Խորհուրդ ենք տալիս: