جدول المحتويات:

الجيولواكيشن: 5 خطوات
الجيولواكيشن: 5 خطوات

فيديو: الجيولواكيشن: 5 خطوات

فيديو: الجيولواكيشن: 5 خطوات
فيديو: تسقيط اى رسمة من Civil 3D الى Google Earth مباشرة 2024, يوليو
Anonim
الجيو
الجيو

إنه مشروعي التدريبي الصيفي. أنا أتفاجأ حقًا عندما أسمع أنه يمكننا تتبع موقع أي جهاز دون استخدام وحدة GPS فقط باستخدام NodeMCU. من خلال هذا يمكننا تتبع أي جهاز ، كما تتفاجأ كيف يمكننا تتبع الجهاز باستخدام WiFi فقط. فيما يلي وصف الفرز لفهمه.

  • · يقوم بفحص جميع شبكات WiFi تقريبًا.
  • · إرسال موقع هذا الجهاز إلى Google باستخدام Google API
  • · وفقًا لهذا ، يتم تحديد موقع جهازك
  • · لديك اتصال شبكة قوي لهذا المشروع.

الخطوة 1: الأجزاء والأداة

القطع

  • NodeMCU (ESP8266 1.0 12E)
  • كابل USB

أدوات

Arduino IDE مع لوحة NodeMcu 1.0 12E

جوجل API

الخطوة 2: ابحث عن Google API

ابحث عن Google API
ابحث عن Google API
ابحث عن Google API
ابحث عن Google API
ابحث عن Google API
ابحث عن Google API
  • افتح المتصفح واكتب: console.developer.google.com
  • أنشئ مشروعًا جديدًا
  • بعد إنشاء مشروع جديد ، انقر فوق بيانات الاعتماد
  • انقر فوق مفتاح API
  • تم إنشاء مفتاح API الخاص بك

    لسهولة الفهم ، انظر الصورة التالية |>

الخطوة 3: قم بإعداد NodeMCu على Arduino IDE

قم بإعداد 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/
  • أضف لوحة Node MCu على Arduino IDE
  • لتحميل الكود على NodeMCU ، عليك إضافة لوحة NodeMCu على ARDUINO IDE.

    • انتقل إلى الملف والتفضيل في Arduino IDE
    • وفي قسم الإدارة الإضافية لمجلس الإدارة ، انسخ الرابط التالي
    • arduino.esp8266.com/stable/package_esp8266c…
    • وانقر فوق موافق
    • يتم تنزيل اللوحة
    • انتقل إلى الأدوات واللوحة وحدد 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 ="؛

// --- احصل على مفتاح خرائط جوجل هنا:

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 على وضع المحطة و

افصله عن AP إذا كان متصلاً مسبقًا

WiFi.mode (WIFI_STA) ؛

WiFi.disconnect () ؛

تأخير (100) ؛

Serial.println ( Setup

انتهى )؛

// نبدأ بالاتصال بـ a

شبكة WiFi

Serial.print ( جارٍ الاتصال بـ

);

Serial.println (myssid) ؛

WiFi.begin (myssid ، mypass) ؛

بينما (WiFi.status ()! = WL_CONNECTED) {

تأخير (500) ؛

Serial.print (".") ؛

}

Serial.println (".") ؛

}

حلقة فارغة() {

شار bssid [6] ؛

DynamicJsonBuffer jsonBuffer ؛

Serial.println ("بدء المسح") ؛

// WiFi.scanNetworks سيعود

عدد الشبكات التي تم العثور عليها

int n = WiFi.scanNetworks () ؛

Serial.println ("scandone") ؛

إذا (ن == 0)

Serial.println ("لم يتم العثور على شبكات") ؛

آخر

{

Serial.print (ن) ؛

Serial.println ("تم العثور على الشبكات …") ؛

إذا (more_text) {

// طباعة تنسيق json …

Serial.println ("{") ؛

Serial.println ("\" homeMobileCountryCode / ": 234،") ؛ // هذا هو مركز عملائي حقيقي في المملكة المتحدة

Serial.println ("\" homeMobileNetworkCode / ": 27،") ؛ // و MNC حقيقي في المملكة المتحدة

Serial.println ("\" radioType / ": \" gsm / "،")؛ // لـ gsm

Serial.println ("\" carrier / ": \" 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 ("\" signalSt Strength / ":") ؛

Serial.println (WiFi. RSSI (i)) ؛

إذا (أنا <ن - 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 + = "\" carrier / ": \" Vodafone / "، / n"؛ // المرتبطة بفودافون

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

لـ (int j = 0 ؛ j <n ؛ ++ j)

{

jsonString + = "{ n"؛

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

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

jsonString + = "\"، / n "؛

jsonString + = "\" signalSt Strength / ":"؛

jsonString + = WiFi. RSSI (j) ؛

jsonString + = "\ n"؛

إذا (ي <ن - 1)

{

jsonString + = "}، / n"؛

}

آخر

{

jsonString + = "} n"؛

}

}

jsonString + = ("] n")؛

jsonString + = ("} n") ؛

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

Serial.println ("") ؛

عميل WiFiClientSecure ؛

// الاتصال بالعميل وإجراء مكالمة api

Serial.print ("عنوان URL للطلب:") ؛

// ---- احصل على مفتاح API لخرائط Google هنا ، الرابط:

Serial.println ("https://" + (String) Host + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE") ؛

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 ("User-Agent: Arduino / 1.0") ؛

client.print ("طول المحتوى:") ؛

client.println (jsonString.length ()) ،

client.println () ،

client.print (jsonString) ؛

تأخير (500) ؛

}

// اقرأ وتحليل كل سطور

الرد من الخادم

بينما (client.available ()) {

String line = client.readStringUntil ('r') ؛

إذا (more_text) {

Serial.print (سطر) ؛

}

JsonObject & root = jsonBuffer.parseObject (line) ؛

إذا (root.success ()) {

خط العرض = جذر ["الموقع"] ["خط العرض"] ؛

خط الطول = جذر ["الموقع"] ["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) ؛

}

موصى به: