สารบัญ:

ตัวติดตามตำแหน่งด้วย NodeMCU ESP8266: 10 ขั้นตอน
ตัวติดตามตำแหน่งด้วย NodeMCU ESP8266: 10 ขั้นตอน

วีดีโอ: ตัวติดตามตำแหน่งด้วย NodeMCU ESP8266: 10 ขั้นตอน

วีดีโอ: ตัวติดตามตำแหน่งด้วย NodeMCU ESP8266: 10 ขั้นตอน
วีดีโอ: NodeMCU (ESP8266) EP.1 พื้นฐานการใช้งาน NodeMCU 2024, พฤศจิกายน
Anonim
ตัวติดตามตำแหน่งด้วย NodeMCU ESP8266
ตัวติดตามตำแหน่งด้วย NodeMCU ESP8266

คุณอยากรู้หรือไม่ว่า NodeMCU ของคุณสามารถติดตามตำแหน่งของคุณได้อย่างไร เป็นไปได้แม้ไม่มีโมดูล GPS และไม่มีจอแสดงผล เอาต์พุตจะเป็นพิกัดที่คุณอยู่ และคุณจะเห็นมันในมอนิเตอร์แบบอนุกรมของคุณ

การตั้งค่าต่อไปนี้ใช้สำหรับ NodeMCU 1.0 (โมดูล ESP-12E) กับ Arduino IDE

  • Windows 10
  • Arduino IDE v. 1.8.4

ขั้นตอนที่ 1: คุณต้องการอะไร

สิ่งที่คุณต้องการเพื่อทำตามบทช่วยสอนนี้มีองค์ประกอบดังต่อไปนี้:

  • สายไมโคร USB
  • NodeMCU ESP8266

นอกจากนี้ คุณจะต้อง:

  • LocationAPI (จาก Unwired Labs)
  • เข้าถึง wifi หรือฮอตสปอต

ขั้นตอนที่ 2: ไปที่ Unwired Labs

ไปที่ Unwired Labs
ไปที่ Unwired Labs

การระบุตำแหน่งทางภูมิศาสตร์มีประโยชน์มากเพราะเมื่อ GPS ของคุณไม่ทำงาน คุณยังสามารถใช้ตำแหน่งทางภูมิศาสตร์เพื่อติดตามตำแหน่งของคุณได้ โฮสต์ของเราที่ให้ตำแหน่งทางภูมิศาสตร์จะเป็น https://www.unwiredlabs.com/ ไปที่เว็บไซต์นั้นและลงทะเบียน (ปุ่มสีส้มที่มุมบนขวา)

ขั้นตอนที่ 3: ลงทะเบียนเพื่อรับ API Token

ลงทะเบียนเพื่อรับ API Token
ลงทะเบียนเพื่อรับ API Token

ในหน้าลงทะเบียน คุณต้องกรอกชื่อ อีเมล (โทเค็น API ของคุณจะถูกส่งไปยังอีเมลของคุณ) และกรณีการใช้งาน (เช่น การใช้งานส่วนตัว) เลือกประเภทบัญชีของคุณ เวอร์ชันฟรีใช้งานได้ดี แต่โปรดทราบว่าคุณมีข้อจำกัดและไม่สามารถติดตามตำแหน่งของคุณได้ตลอด 24 ชั่วโมงทุกวัน มาเริ่มกันเลย!

ขั้นตอนที่ 4: ตรวจสอบอีเมลของคุณ

ไปที่อีเมลของคุณและคุณจะเห็นโทเค็น API ของคุณ คัดลอกโทเค็น API เพราะคุณต้องการสิ่งนั้นสำหรับรหัสที่เราจะใช้ นี่คือลักษณะของอีเมล:

สวัสดี!

ขอบคุณที่ลงทะเบียนกับ Unwired Labs LocationAPI! โทเค็น API ของคุณคือ 'รหัส API ของคุณอยู่ที่นี่' (โดยไม่ใส่เครื่องหมายอัญประกาศ) สิ่งนี้จะให้ 100 คำขอ / วันฟรี - ตลอดไป

หากคุณต้องการติดตามอุปกรณ์ 5 เครื่องฟรี โปรดตอบกลับพร้อมรายละเอียดต่อไปนี้ แล้วเราจะอัปเกรดบัญชีของคุณภายใน 12 ชั่วโมง:

1. ประเภทการใช้งาน (ฮาร์ดแวร์/ แอพ/ อื่นๆ):

2. เกี่ยวกับโครงการของคุณ:

3. เว็บไซต์:

คุณสามารถเข้าสู่แดชบอร์ดของคุณได้ที่นี่: https://unwiredlabs.com/dashboard หากคุณประสบปัญหาหรือมีคำถาม โปรดตอบกลับอีเมลนี้ แล้วเราจะช่วยคุณ!

มีความสุขในการค้นหา!

ซาการ์

Unwired Labs

ขั้นตอนที่ 5: ห้องสมุดที่คุณต้องการ

ห้องสมุดที่คุณต้องการ
ห้องสมุดที่คุณต้องการ

ขั้นตอนต่อไปคือการเปิด Arduino และไปที่จัดการไลบรารี คุณต้องติดตั้งไลบรารี ArduinoJson ไลบรารีอื่นๆ ถูกสร้างไว้แล้ว เมื่อคุณพร้อม คุณสามารถเริ่มเขียนโค้ดได้

ขั้นตอนที่ 6: เพิ่มโค้ดใน Arduino เพื่อเชื่อมต่อกับ LocationAPI

สร้างภาพร่างใหม่และเพิ่มรหัสต่อไปนี้ใน Arduino เขียนชื่อ wifi/hotspot และรหัสผ่านของคุณเอง วางโทเค็น API ที่คุณได้รับในอีเมล อัปโหลดรหัสของคุณไปยัง NodeMCU

#รวม

#รวม

#รวม "ESP8266WiFi.h"

// SSID เครือข่ายของคุณ (ชื่อ) & รหัสผ่านเครือข่าย

char myssid = "ชื่อ wifi/ฮอตสปอตของคุณ"; char mypass = "รหัสผ่านของคุณ";

// unwiredlabs ชื่อโฮสต์ & Geolocation Endpoint url

const char* Host = "www.unwiredlabs.com"; ปลายทางสตริง = "/v2/process.php";

// UnwiredLabs API_Token ลงทะเบียนที่นี่เพื่อรับโทเค็นฟรี

โทเค็นสตริง = "d99cccda52ec0b";

สตริง jsonString = "{n";

// ตัวแปรสำหรับเก็บการตอบสนอง unwiredlabs

ละติจูดสองเท่า = 0.0; ลองจิจูดสองเท่า = 0.0; ความแม่นยำสองเท่า = 0.0;

การตั้งค่าเป็นโมฆะ (){

Serial.begin(115200);

// ตั้งค่า WiFi เป็นโหมดสถานีและตัดการเชื่อมต่อจาก AP หากเคยเชื่อมต่อมาก่อน

WiFi.mode(WIFI_STA); WiFi. ตัดการเชื่อมต่อ (); Serial.println("ตั้งค่าเสร็จแล้ว");

// เราเริ่มต้นด้วยการเชื่อมต่อกับเครือข่าย WiFi

Serial.print("กำลังเชื่อมต่อกับ "); Serial.println (myssid); WiFi.begin(myssid, mypass);

ในขณะที่ (WiFi.status () != WL_CONNECTED) {

ล่าช้า (500); Serial.print("."); } Serial.println("."); }

วงเป็นโมฆะ () {

ถ่าน bssid[6]; DynamicJsonBuffer jsonBuffer;

// WiFi.scanNetworks จะคืนค่าจำนวนเครือข่ายที่พบ

int n = WiFi.scanNetworks(); Serial.println("สแกนเสร็จแล้ว");

ถ้า (n == 0) {

Serial.println("ไม่มีเครือข่าย"); } อื่น ๆ { Serial.print(n); Serial.println (" พบเครือข่าย"); }

// ตอนนี้สร้าง jsonString…

jsonString = "{n"; jsonString += "\"token\": \""; jsonString += token; jsonString += "\", \n"; jsonString += "\"id\": \"saikirandevice01\", \n"; jsonString += "\"wifi\": [n"; สำหรับ (int j = 0; j < n; ++j) { jsonString += "{n"; jsonString += "\"bssid\": \""; jsonString += (WiFi. BSSIDstr(j)); jsonString += "\", \n"; jsonString += "\"สัญญาณ\": "; jsonString += WiFi. RSSI(j); jsonString += "\n"; ถ้า (j < n - 1) { jsonString += "}, \n"; } อื่น ๆ { jsonString += "}\n"; } } jsonString += ("]\n"); jsonString += ("}\n"); Serial.println (jsonString);

ไคลเอนต์ WiFiClientSecure;

//เชื่อมต่อกับไคลเอนต์และทำการโทร api

Serial.println("URL ที่ขอ: https://" + (สตริง)โฮสต์ + ปลายทาง); if (client.connect (Host, 443)) { Serial.println ("เชื่อมต่อแล้ว"); client.println("POST" + ปลายทาง + " HTTP/1.1"); client.println("โฮสต์:" + (สตริง)โฮสต์); 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()) { String line = client.readStringUntil('\r'); JsonObject& root = jsonBuffer.parseObject (บรรทัด); ถ้า (root.success()) { ละติจูด = รูท["lat"]; ลองจิจูด = รูท["lon"]; ความแม่นยำ = รูท["ความแม่นยำ"];

Serial.println();

Serial.print("ละติจูด = "); Serial.println (ละติจูด, 6); Serial.print ("ลองจิจูด = "); Serial.println(ลองจิจูด, 6); Serial.print("ความแม่นยำ = "); Serial.println (ความแม่นยำ); } }

Serial.println("กำลังปิดการเชื่อมต่อ");

Serial.println(); client.stop();

ล่าช้า (5000);

}

ขั้นตอนที่ 7: เปิด Serial Monitor เพื่อดูว่าคุณเชื่อมต่ออยู่หรือไม่

ไปที่เครื่องมือใน Arduino และเปิดจอภาพแบบอนุกรม หากต้องการดูว่าคุณกำลังเชื่อมต่อกับอินเทอร์เน็ตหรือไม่ คุณควรเห็นสิ่งต่อไปนี้ในจอภาพแบบอนุกรม:

ตั้งค่าเสร็จแล้ว

กำลังเชื่อมต่อกับ (ชื่อ wifi ของคุณ) … สแกนเสร็จแล้ว

ขั้นตอนที่ 8: รับพิกัด

หากทำงานสำเร็จ คุณควรเห็นรายการข้อมูลทั้งหมดภายใต้การสแกน สิ่งเดียวที่เราต้องการคือรหัสภายใต้ URL ที่ร้องขอ ดังนั้นเราจะต้องใช้ละติจูดและลองจิจูด นี่คือพิกัด

ขอ URL:

เชื่อมต่อแล้ว

ละติจูด = 52.385259

ลองจิจูด = 5.196099

ความแม่นยำ = 41.00

ปิดการเชื่อมต่อ

หลังจากผ่านไป 5 วินาที โค้ดจะอัปเดตอย่างต่อเนื่อง และคุณอาจเห็นการเปลี่ยนแปลงละติจูด ลองจิจูด และความแม่นยำ นั่นเป็นเพราะว่า API พยายามอย่างดีที่สุดเพื่อติดตามตำแหน่งอย่างแม่นยำที่สุด

ขั้นตอนที่ 9: ไปที่ Google Maps

ไปที่ Google Maps
ไปที่ Google Maps

ไปที่ https://www.google.com/maps/ แล้วพิมพ์พิกัดของคุณในแถบค้นหา พิกัดต้องเขียนในลักษณะต่อไปนี้: 52.385259, 5.196099 Google Maps ควรแสดงตำแหน่งของคุณบนแผนที่

ขั้นตอนที่ 10: ส่งตำแหน่งไปยังมือถือของคุณ

ส่งตำแหน่งไปยังมือถือของคุณ
ส่งตำแหน่งไปยังมือถือของคุณ

และ… คุณทำเสร็จแล้ว! ดังนั้นหากคุณต้องการส่งตำแหน่งไปยังมือถือของคุณก็สามารถทำได้ Google แผนที่จะส่งอีเมลพร้อมพิกัดของคุณหากคุณต้องการ

มีความสุขในการค้นหา!

แนะนำ: