Orodha ya maudhui:

GEOLOACATION: 5 Hatua
GEOLOACATION: 5 Hatua

Video: GEOLOACATION: 5 Hatua

Video: GEOLOACATION: 5 Hatua
Video: МЕЛОДРАМА О ЛЮБВИ И МОДЕ! Нити любви ВСЕ СЕРИИ подряд. Русские сериалы 2024, Julai
Anonim
GEOLOACATION
GEOLOACATION

Ni Mradi wangu wa Mafunzo ya Majira ya Kiangazi. Ninashangaa sana nikisikia tunaweza kufuatilia eneo la kifaa chochote bila kutumia moduli ya GPS tu kutumia NodeMCU. Kupitia hii tunaweza kufuatilia kifaa chochote. Pia unashangaa jinsi tunaweza kutafuta kifaa kwa kutumia WiFi tu. Hapa kuna maelezo ya aina ili kuielewa.

  • · Ni Changanua WiFi yako karibu yote.
  • · Tuma eneo la kifaa hiki kwa Google ukitumia Google API
  • · Kulingana na hii Ni mahali pa kifaa chako
  • · Una uhusiano mkubwa wa mtandao wa Mradi huu.

Hatua ya 1: Sehemu na Zana

Sehemu

  • NodeMCU (ESP8266 1.0 12E)
  • Kebo ya USB

Zana

Arduino IDE na Bodi ya NodeMcu 1.0 12E

Google API

Hatua ya 2: Tafuta Google API

Pata Google API
Pata Google API
Pata Google API
Pata Google API
Pata Google API
Pata Google API
  • Fungua Kivinjari chako na andika: console.developer.google.com
  • Unda mradi mpya
  • Baada ya Unda Mradi mpya bonyeza hati
  • Bonyeza kwenye Kitufe cha API
  • Ufunguo wako wa API umetengenezwa

    Kwa kuelewa kwa urahisi tazama picha ifuatayo |>

Hatua ya 3: Sanidi NodeMCu kwenye Arduino IDE

Sanidi NodeMCu kwenye Arduino IDE
Sanidi NodeMCu kwenye Arduino IDE
Sanidi NodeMCu kwenye Arduino IDE
Sanidi NodeMCu kwenye Arduino IDE
Sanidi NodeMCu kwenye Arduino IDE
Sanidi NodeMCu kwenye Arduino IDE
  • Pakua Arduino IDE kutoka kwa Kiunga kinachofuata: - https:// www. Kuu / Software arduino.cc/en/
  • Ongeza bodi ya Node MCu kwenye Arduino IDE
  • Kwa kupakia nambari kwenye NodeMCU umeongeza bodi ya NodeMCu kwenye ARDUINO IDE.

    • Nenda kwenye faili na Upendeleo katika Arduino IDE
    • Na katika meneja wa Bodi ya Ziada nakala nakala ifuatayo
    • arduino.esp8266.com/stable/package_esp8266c…
    • na bonyeza Ok
    • Bodi imepakuliwa
    • Nenda kwenye zana na ubao na uchague NodeMCU 1.0 12E
    • Tazama picha ya avobe ili uelewe kwa urahisi

Hatua ya 4: Pakua Maktaba ya ArduinoJson

Pakua Maktaba ya ArduinoJson
Pakua Maktaba ya ArduinoJson
  • Nenda kwa
  • Mchoro Jumuisha Maktaba Dhibiti Maktaba

    Andika Arduino Json kwenye kisanduku cha utaftaji

    Pakua toleo la hivi karibuni la maktaba ya ArduinoJson

    baada ya kupakua maktaba bonyeza karibu

    Ongeza maktaba kutoka

    Mchoro pamoja na MaktabaArduinoJson

Hatua ya 5: Programu

Pakia programu ifuatayo kwenye bodi ya NodeMCU. na uone kifaa chako (bodi ya NodeMCU 1.0 12E) kwenye ufuatiliaji wa Serial.

# pamoja

# pamoja

# pamoja

char myssid = "SSID Yako"; // SSID mtandao wako (jina)

char mypass = "Nenosiri lako"; // nywila yako ya mtandao

// Hati za Utambulisho wa API ya Google GeoLocation…

const char * Jeshi = "www.googleapis.com";

Kamba hiiPage = "/ geolocation / v1 / geolocate? Key =";

// --- Pata kifunguo cha ramani za google hapa:

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

String key = "Kitufe chako cha Google API"; // Pata kutoka kwa step2

Maagizo

hali ya = WL_IDLE_STATUS;

Kamba jsonString = "{ n";

latitudo mbili = 0.0;

longitudo mbili = 0.0;

usahihi mara mbili = 0.0;

int more_text = 1; // imewekwa kwa 1 kwa pato zaidi la utatuzi

usanidi batili () {

Serial. Kuanza (9600);

Serial.println ("Anza");

// Weka WiFi kwa hali ya kituo na

ondoa kutoka kwa AP ikiwa hapo awali ilikuwa imeunganishwa

Njia ya WiFi (WIFI_STA);

Kuondoa WiFi ();

kuchelewesha (100);

Serial.println ( Sanidi

umefanya );

// Tunaanza kwa kuungana na a

Mtandao wa WiFi

Serial.print ( Kuunganisha kwa

);

Serial.println (myssid);

Anza WiFi (myssid, mypass);

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

kuchelewesha (500);

Printa ya serial (".");

}

Serial.println (".");

}

kitanzi batili () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("skan kuanza");

// WiFi.scanNetworks itarudi

idadi ya mitandao iliyopatikana

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

ikiwa (n == 0)

Serial.println ("hakuna mitandao iliyopatikana");

mwingine

{

Printa ya serial (n);

Serial.println ("mitandao imepatikana…");

ikiwa (zaidi_ maandishi) {

// Chapisha json iliyoumbizwa…

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // hii ni MCC halisi ya Uingereza

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // na MNC halisi wa Uingereza

Serial.println ("\" radioType / ": \" gsm / ","); // kwa gsm

Serial.println ("\" carrier / ": \" Vodafone / ","); // inayohusishwa na Vodafone

Serial.println ("\" cellTowers / ": ["); // Sitaripoti minara yoyote ya seli

Serial.println ("],");

Serial.println ("\" wifiAccessPoints / ": [");

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

ikiwa (i <n - 1)

{

Serial.println ("},");

}

mwingine

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// sasa jenga jsonString…

jsonString = "{ n";

jsonString + = "\" homeMobileCountryCode / ": 234, / n"; // hii ni MCC halisi ya Uingereza

jsonString + = "\" homeMobileNetworkCode / ": 27, / n"; // na MNC halisi wa Uingereza

jsonString + = "\" radioType / ": \" gsm / ", / n"; // kwa gsm

jsonString + = "\" mbebaji / ": \" Vodafone / ", / n"; // inayohusishwa na Vodafone

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

kwa (int j = 0; j <n; ++ j)

{

jsonString + = "{ n";

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

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

jsonString + = "\", / n ";

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

jsonString + = WiFi. RSSI (j);

jsonString + = "\ n";

ikiwa (j <n - 1)

{

jsonString + = "}, / n";

}

mwingine

{

jsonString + = "} n";

}

}

jsonString + = ("] n");

jsonString + = ("} n");

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

Serial.println ("");

Mteja wa WiFiClientSecure;

// Unganisha kwa mteja na piga simu ya api

Serial.print ("Kuomba URL:");

// ---- Pata Ufunguo wa Google Maps Api hapa, Kiungo:

Serial.

Serial.println ("");

ikiwa (mteja.connect (Mwenyeji, 443)) {

Serial.println ("Imeunganishwa");

mteja.println ("POST" + hiiPage + ufunguo + "HTTP / 1.1");

mteja.println ("Jeshi:" + (Kamba) Jeshi);

mteja.println ("Uunganisho: funga");

mteja.println ("Aina ya Maudhui: programu / json");

mteja.println ("Wakala wa Mtumiaji: Arduino / 1.0");

alama ya mteja ("Urefu wa Yaliyomo:");

mteja.println (jsonString.length ());

mteja.println ();

alama ya mteja (jsonString);

kuchelewesha (500);

}

// Soma na uchanganue mistari yote ya

jibu kutoka kwa seva

wakati (mteja anapatikana ()) {

Mstari wa kamba = mteja.readStringUntil ('\ r');

ikiwa (zaidi_ maandishi) {

Serial.print (mstari);

}

JsonObject & mzizi = jsonBuffer.parseObject (line);

ikiwa (mzizi. kufanikiwa ()) {

latit = mzizi ["eneo"] ["lat"];

longitudo = mzizi ["eneo"] ["lng"];

usahihi = mzizi ["usahihi"];

}

}

Serial.println ("kufunga unganisho");

Serial.println ();

mteja.acha ();

Serial.print ("Latitudo =");

Serial.println (latitudo, 6);

Serial.print ("Longitude =");

Serial.println (longitudo, 6);

Serial.print ("Usahihi =");

Serial.println (usahihi);

kuchelewesha (10000);

Serial.println ();

Serial.println ("Kuanzisha upya…");

Serial.println ();

kuchelewa (2000);

}

Ilipendekeza: