Агуулгын хүснэгт:

GEOLOACATION: 5 алхам
GEOLOACATION: 5 алхам

Видео: GEOLOACATION: 5 алхам

Видео: GEOLOACATION: 5 алхам
Видео: Скрытые функции брелка ключа Volkswagen, Škoda, Audi ,SEAT 2024, Долдугаар сарын
Anonim
GEOLOACATION
GEOLOACATION

Энэ бол миний зуны дадлага хийх төсөл юм. Зөвхөн NodeMCU ашиглан GPS модулийг ашиглахгүйгээр ямар ч төхөөрөмжийн байршлыг хянах боломжтой гэдгийг сонсоод би үнэхээр гайхаж байна. Үүгээр дамжуулан бид ямар ч төхөөрөмжийг хянах боломжтой болно. Та зөвхөн WiFi ашиглан төхөөрөмжийг хэрхэн яаж мөшгөхийг та гайхаж байна. Үүнийг ойлгохын тулд ангилах тайлбарыг энд оруулав.

  • · Энэ нь бараг бүх 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 -г тохируулна уу

NodeMCu -ийг Arduino IDE дээр тохируулна уу
NodeMCu -ийг Arduino IDE дээр тохируулна уу
NodeMCu -ийг Arduino IDE дээр тохируулна уу
NodeMCu -ийг Arduino IDE дээр тохируулна уу
NodeMCu -ийг Arduino IDE дээр тохируулна уу
NodeMCu -ийг Arduino IDE дээр тохируулна уу
  • Дараах линкээс 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 номын сангийн хамгийн сүүлийн хувилбарыг татаж авах

    Номын санг татаж авсны дараа хаах товчийг дарна уу

    Номын сангаас нэмэх

    Номын сангийн ArduinoJson -ийн тойм зураг

Алхам 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 болгож тохируулна уу

хүчингүй тохиргоо () {

Цуваа эхлэх (9600);

Serial.println ("Эхлэх");

// WiFi -ийг станцын горимд тохируулах ба

хэрэв өмнө нь холбогдсон бол AP -ээс салгах

WiFi горим (WIFI_STA);

WiFi.disconnect ();

саатал (100);

Serial.println ( Тохиргоо

хийсэн );

// Бид а руу холбосноор эхэлнэ

WiFi сүлжээ

Serial.print ( Холбогдож байна

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

байхад (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 ("scandone");

хэрэв (n == 0)

Serial.println ("сүлжээ олдсонгүй");

өөр

{

Цуваа.хэвлэх (n);

Serial.println ("сүлжээ олсон …");

if (more_text) {

// Форматлагдсан json хэвлэх …

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // энэ бол Их Британийн жинхэнэ MCC юм

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // мөн жинхэнэ UK MNC

Serial.println ("\" radioType / ": \" gsm / ","); // gsm -ийн хувьд

Serial.println ("\" оператор / ": \" Vodafone / ","); // Vodafone -той холбоотой

Serial.println ("\" cellTowers / ": ["); // Би ямар ч үүр цамхагийг мэдээлдэггүй

Serial.println ("],");

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

for (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"; // энэ бол Их Британийн жинхэнэ MCC юм

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // мөн жинхэнэ UK MNC

jsonString += "\" radioType / ": \" gsm / ", / n"; // gsm -ийн хувьд

jsonString += "\" тээвэрлэгч / ": \" Vodafone / ", / n"; // Vodafone -той холбоотой

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

for (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 + "POG-YOUR-GOOGLE-MAPS-API-KEY-EER");

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 ("Агуулгын төрөл: application/json");

client.println ("Хэрэглэгч-Агент: Arduino/1.0");

client.print ("Агуулга-Урт:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

саатал (500);

}

// Бүх мөрүүдийг уншаад задлан шинжилнэ үү

серверээс ирсэн хариу

while (client.available ()) {

String мөр = client.readStringUntil ('\ r');

if (more_text) {

Цуваа.хэвлэх (мөр);

}

JsonObject & root = jsonBuffer.parseObject (мөр);

if (root.success ()) {

өргөрөг = үндэс ["байршил"] ["лат"];

уртраг = үндэс ["байршил"] ["lng"];

нарийвчлал = root ["нарийвчлал"];

}

}

Serial.println ("хаалтын холболт");

Serial.println ();

client.stop ();

Serial.print ("Өргөрөг =");

Serial.println (өргөрөг, 6);

Serial.print ("Уртраг =");

Serial.println (уртраг, 6);

Serial.print ("Нарийвчлал =");

Serial.println (нарийвчлал);

саатал (10000);

Serial.println ();

Serial.println ("Дахин эхлүүлж байна …");

Serial.println ();

саатал (2000);

}

Зөвлөмж болгож буй: