Mündəricat:

GEOLOACATION: 5 addım
GEOLOACATION: 5 addım

Video: GEOLOACATION: 5 addım

Video: GEOLOACATION: 5 addım
Video: НИЧТО НЕ СЛУЧАЕТСЯ ДВАЖДЫ. Серия 15. 2019 ГОД! 2024, Iyul
Anonim
GEOLOAKASİYA
GEOLOAKASİYA

Bu mənim Yaz Stajı Layihəmdir. Yalnız NodeMCU istifadə edərək GPS modulundan istifadə etmədən hər hansı bir cihazı izləyə biləcəyimizi eşidəndə həqiqətən təəccüblənirəm. Bununla hər hansı bir cihazı izləyə bilərik. Siz yalnız WiFi istifadə edərək cihazı necə izləyə biləcəyimizə təəccüblənirsiniz. Anlamaq üçün sıralama təsviri burada.

  • · Demək olar ki, bütün WiFi -lərinizi tarar.
  • · Google API istifadə edərək bu cihazın yerini Google -a göndərin
  • · Buna görə cihazınızın yerini tapın
  • · Bu Layihə üçün güclü şəbəkə bağlantınız var.

Addım 1: Parçalar və Alət

Hissələri

  • NodeMCU (ESP8266 1.0 12E)
  • USB Kabel

Alətlər

NodeMcu 1.0 12E lövhəsi olan Arduino IDE

Google API

Addım 2: Google API tapın

Google API tapın
Google API tapın
Google API tapın
Google API tapın
Google API tapın
Google API tapın
  • Brauzerinizi açın və yazın: console.developer.google.com
  • Yeni bir layihə yaradın
  • Yeni bir layihə yaratdıqdan sonra etimadnaməsini vurun
  • API Açarını vurun
  • API Açarınız yaradıldı

    Asan başa düşmək üçün aşağıdakı şəkilə baxın |>

Addım 3: Arduino IDE -də NodeMCu qurun

Arduino IDE -də NodeMCu qurun
Arduino IDE -də NodeMCu qurun
Arduino IDE -də NodeMCu qurun
Arduino IDE -də NodeMCu qurun
Arduino IDE -də NodeMCu qurun
Arduino IDE -də NodeMCu qurun
  • Arduino IDE-ni aşağıdakı linkdən yükləyin:- https:// www. Əsas/Proqram təminatı arduino.cc/az/
  • Arduino IDE -də Node MCu lövhəsini əlavə edin
  • NodeMCU -da kod yükləmək üçün ARDUINO IDE -də NodeMCu lövhəsini əlavə etməlisiniz.

    • Arduino IDE faylına və Tercihə gedin
    • Əlavə İdarə Heyətinin bölməsində aşağıdakı linki kopyalayın
    • arduino.esp8266.com/stable/package_esp8266c…
    • və Ok düyməsini basın
    • Lövhə yüklənir
    • Alətlərə və lövhəyə gedin və NodeMCU 1.0 12E seçin
    • Asanlıqla başa düşmək üçün avobe şəklinə baxın

Addım 4: ArduinoJson Kitabxanasını yükləyin

ArduinoJson Kitabxanasını yükləyin
ArduinoJson Kitabxanasını yükləyin
  • Gedin
  • Eskiz kitabxanaya kitabxananı idarə et

    Axtarış qutusuna Arduino Json yazın

    ArduinoJson kitabxanasının son versiyasını yükləyin

    kitabxananı yüklədikdən sonra bağlayın

    Kitabxana əlavə edin

    SketchincludeKitabxanaArduinoJson

Addım 5: Proqram

Aşağıdakı proqramı NodeMCU lövhəsinə yükləyin. və Serial monitorda cihazınızın (NodeMCU 1.0 12E lövhəsi) yerini görün.

#daxil edin

#daxil edin

#daxil edin

char myssid = "Sizin SSID"; // şəbəkənizin SSID (adı)

char mypass = "Şifrəniz"; // şəbəkə parolunuz

// Google GeoLocation API üçün etimadnamələri…

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

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

// --- Bir google Maps ap açarını buradan əldə edin:

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

String key = "Google API açarınız"; // Addım 2 -dən tapın

Təlimat

int vəziyyəti = WL_IDLE_STATUS;

String jsonString = "{ n";

ikiqat enlik = 0.0;

ikiqat uzunluq = 0.0;

ikiqat dəqiqlik = 0.0;

int more_text = 1; // daha çox debug çıxışı üçün 1 olaraq təyin edin

boş quraşdırma () {

Serial.begin (9600);

Serial.println ("Başlat");

// WiFi -ni stansiya rejiminə qoyun və

əvvəllər bağlı olsaydı AP -dən ayırın

WiFi rejimi (WIFI_STA);

WiFi.disconnect ();

gecikmə (100);

Serial.println ( Quraşdırma

bitdi );

// a -ya qoşulmaqla başlayırıq

WiFi şəbəkəsi

Serial.print ( Bağlanır

);

Serial.println (msssid);

WiFi.begin (myssid, mypass);

isə (WiFi.status ()! = WL_CONNECTED) {

gecikmə (500);

Serial.print (".");

}

Serial.println (".");

}

boşluq döngəsi () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("tarama başlanğıcı");

// WiFi.scanNetworks geri qayıdacaq

tapılan şəbəkələrin sayı

int n = WiFi.scanNetworks ();

Serial.println ("skandone");

əgər (n == 0)

Serial.println ("heç bir şəbəkə tapılmadı");

başqa

{

Serial. çap (n);

Serial.println ("şəbəkələr tapıldı …");

əgər (more_text) {

// Biçimlənmiş jsonu çap edin …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // bu əsl İngiltərə MM -dir

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // və əsl UK MNC

Serial.println ("\" radioType / ": \" gsm / ","); // gsm üçün

Serial.println ("\" daşıyıcısı / ": \" Vodafone / ","); // Vodafone ilə əlaqəli

Serial.println ("\" cellTowers / ": ["); // Heç bir hüceyrə qülləsi haqqında məlumat vermirəm

Serial.println ("],");

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

üçün (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));

əgər (i <n - 1)

{

Serial.println ("},");

}

başqa

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// indi jsonString qurun …

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // bu əsl İngiltərə MM -dir

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // və əsl UK MNC

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

jsonString += "\" daşıyıcısı / ": \" Vodafone / ", / n"; // Vodafone ilə əlaqəli

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

üçü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";

əgər (j <n - 1)

{

jsonString += "}, / n";

}

başqa

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure müştəri;

// Müştəriyə qoşulun və api zəng edin

Serial.print ("URL tələb olunur:");

// ---- Google Xəritə Api Açarını buradan əldə edin, Bağlantı:

Serial.println ("https://" + (String) Host + thisPage + "GOOGLE-XARİTALARINI-API-KEY-BURADA YAZ");

Serial.println ("");

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

Serial.println ("Bağlandı");

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

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

client.println ("Bağlantı: yaxın");

client.println ("Məzmun Növü: application/json");

client.println ("İstifadəçi-Agent: Arduino/1.0");

client.print ("Məzmun-Uzunluq:");

müştəri.println (jsonString.length ());

müştəri.println ();

client.print (jsonString);

gecikmə (500);

}

// Bütün sətirləri oxuyun və təhlil edin

serverdən gələn cavab

while (client.available ()) {

String xətti = client.readStringUntil ('\ r');

əgər (more_text) {

Serial.print (xətt);

}

JsonObject & root = jsonBuffer.parseObject (xətt);

if (root.success ()) {

enlem = kök ["yer"] ["lat"];

Boylam = kök ["yer"] ["lng"];

dəqiqlik = kök ["dəqiqlik"];

}

}

Serial.println ("bağlanan əlaqə");

Serial.println ();

client.stop ();

Serial.print ("Enlem =");

Serial.println (enlik, 6);

Serial.print ("Boylam =");

Serial.println (uzunluq, 6);

Serial.print ("Dəqiqlik =");

Serial.println (dəqiqlik);

gecikmə (10000);

Serial.println ();

Serial.println ("Yenidən başlatılır …");

Serial.println ();

gecikmə (2000);

}

Tövsiyə: