Мазмуну:

GEOLOACATION: 5 кадам
GEOLOACATION: 5 кадам

Video: GEOLOACATION: 5 кадам

Video: GEOLOACATION: 5 кадам
Video: Установка и настройка ALTOX WBUS-5 GPS на BMW E65 730d M57N2 2024, Июль
Anonim
GEOLOACATION
GEOLOACATION

Бул менин жайкы практика долбоорум. Мен GPS модулун колдонбостон, каалаган түзмөктүн жайгашкан жерин NodeMCU аркылуу гана байкоого болорун укканымда таң калам. Бул аркылуу биз каалаган түзмөктү байкоого болот. Сиз ошондой эле Wi -Fi аркылуу түзмөктү кантип издей аларыбызга таң каласыз. Бул жерде аны түшүнүү үчүн сорттун сүрөттөлүшү.

  • · Бул дээрлик бардык WiFiңызды сканерлейт.
  • · Бул түзмөктүн жайгашкан жерин Google API аркылуу Googleга жөнөтүңүз
  • · Буга ылайык, бул сиздин түзмөгүңүздүн жайгашкан жерин табат
  • · Сизде бул долбоор үчүн күчтүү тармактык байланыш бар.

1 -кадам: Бөлүктөр жана курал

Бөлүктөр

  • NodeMCU (ESP8266 1.0 12E)
  • USB кабели

Куралдар

NodeMcu 1.0 12E тактасы менен Arduino IDE

Google API

2 -кадам: Google API табыңыз

Google API табуу
Google API табуу
Google API табуу
Google API табуу
Google API табуу
Google API табуу
  • Браузериңизди ачыңыз жана териңиз: console.developer.google.com
  • Жаңы долбоор түзүү
  • Жаңы долбоорду түзгөндөн кийин ишеним грамотасын чыкылдатыңыз
  • API ачкычын чыкылдатыңыз
  • Сиздин API ачкычы түзүлдү

    Оңой түшүнүү үчүн төмөнкү сүрөттү караңыз |>

3 -кадам: Arduino IDEде NodeMCu орнотуңуз

Arduino IDEде NodeMCu орнотуу
Arduino IDEде NodeMCu орнотуу
Arduino IDEде NodeMCu орнотуу
Arduino IDEде NodeMCu орнотуу
Arduino IDEде NodeMCu орнотуу
Arduino IDEде NodeMCu орнотуу
  • Төмөнкү шилтемеден Arduino IDE жүктөп алыңыз:- https:// www. Негизги/Программалык камсыздоо arduino.cc/en/
  • Arduino IDEге Node MCu тактасын кошуу
  • NodeMCUго кодду жүктөө үчүн ARDUINO IDEге NodeMCu тактасын кошушуңуз керек.

    • Arduino IDEдеги файлга жана артыкчылыкка өтүңүз
    • Жана кошумча башкармалыктын бөлүмүндө төмөнкү шилтемени көчүрүңүз
    • arduino.esp8266.com/stable/package_esp8266c…
    • жана чыкылдатыңыз Ok
    • Такта жүктөлүп алынды
    • Куралдарга жана такталарга өтүңүз жана NodeMCU 1.0 12E тандаңыз
    • Оңой түшүнүү үчүн avobe сүрөтүн караңыз

4 -кадам: ArduinoJson китепканасын жүктөп алыңыз

ArduinoJson китепканасын жүктөп алыңыз
ArduinoJson китепканасын жүктөп алыңыз
  • Баруу
  • Эскизге китепкананы кошуу Китепкананы башкаруу

    Издөө кутучасына Arduino Json териңиз

    ArduinoJson китепканасынын акыркы версиясын жүктөп алыңыз

    китепкананы жүктөп алгандан кийин жабууну басыңыз

    Бул жерден китепкана кошуу

    SketchincludeLibraryArduinoJson

5 -кадам: Программа

Төмөнкү программаны NodeMCU тактасына жүктөңүз. жана түзмөгүңүздү (NodeMCU 1.0 12E тактасы) Сериялык монитордон көрүңүз.

#кошуу

#кошуу

#кошуу

char myssid = "Сиздин SSID"; // сиздин тармак SSID (аты)

char mypass = "Сиздин сырсөзүңүз"; // сиздин тармак сырсөзүңүз

// Google GeoLocation API үчүн ишеним грамоталары…

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

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

// --- Google карталарынын ап ачкычын бул жерден алыңыз:

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

String key = "Сиздин Google API ачкычыңыз"; // 2 -кадамдан табуу

Нускама

int абалы = WL_IDLE_STATUS;

String jsonString = "{ n";

кош кеңдик = 0.0;

кош бойлуулук = 0.0;

кош тактык = 0.0;

int more_text = 1; // мүчүлүштүктөрдү оңдоо үчүн 1ге коюңуз

жараксыз орнотуу () {

Serial.begin (9600);

Serial.println ("Баштоо");

// WiFi'ди станция режимине коюңуз жана

ал мурда туташкан болсо, АРдан ажыратыңыз

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

кечиктирүү (100);

Serial.println ( Орнотуу

бүттү );

// Биз а туташуудан баштайбыз

WiFi тармагы

Serial.print ( Кошулуу

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

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

кечигүү (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("скандоону баштоо");

// WiFi.scanNetworks кайтып келет

табылган тармактардын саны

int n = WiFi.scanNetworks ();

Serial.println ("скандон");

эгер (n == 0)

Serial.println ("тармактар табылган жок");

башка

{

Serial.print (n);

Serial.println ("тармактар табылды …");

if (more_text) {

// Форматталган 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));

эгер (мен <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 += "\" radioType / ": \" gsm / ", / n"; // gsm үчүн

jsonString += "\" оператор / ": \" Vodafone / ", / n"; // Vodafone менен байланышкан

jsonString += "\" wifiAccessPoints / ": [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";

эгер (j <n - 1)

{

jsonString += "}, / n";

}

башка

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

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

Serial.println ("");

WiFiClientSecure кардары;

// Кардарга туташыңыз жана api чалуу жасаңыз

Serial.print ("URL суралууда:");

// ---- Бул жерде Google Карталардын Api Ачкычын алыңыз, Шилтеме:

Serial.println ("https://" + (String) Host + thisPage + "GOOGLE-СИЗДИН КАРТАЛАРЫҢЫЗДЫ-API-АЧЫК-БУЛ ЖЕРДЕ");

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 ("Content-Type: application/json");

client.println ("Колдонуучу-Агент: Arduino/1.0");

client.print ("Content-Length:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

кечигүү (500);

}

// Бардык саптарын окуп жана талдаңыз

серверден жооп

while (client.available ()) {

Сап сабы = client.readStringUntil ('\ r');

if (more_text) {

Serial.print (сап);

}

JsonObject & root = jsonBuffer.parseObject (сап);

if (root.success ()) {

latitude = root ["location"] ["lat"];

узундук = тамыр ["жайгашуу"] ["lng"];

тактык = тамыр ["тактык"];

}

}

Serial.println ("жабуучу байланыш");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (кеңдик, 6);

Serial.print ("Узундук =");

Serial.println (узундук, 6);

Serial.print ("Тактык =");

Serial.println (тактык);

кечигүү (10000);

Serial.println ();

Serial.println ("Кайра баштоо…");

Serial.println ();

кечигүү (2000);

}

Сунушталууда: