جدول المحتويات:
- الخطوة 1: الأجزاء والأداة
- الخطوة 2: ابحث عن Google API
- الخطوة 3: قم بإعداد NodeMCu على Arduino IDE
- الخطوة 4: قم بتنزيل مكتبة ArduinoJson
- الخطوة 5: البرنامج
فيديو: الجيولواكيشن: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
إنه مشروعي التدريبي الصيفي. أنا أتفاجأ حقًا عندما أسمع أنه يمكننا تتبع موقع أي جهاز دون استخدام وحدة GPS فقط باستخدام NodeMCU. من خلال هذا يمكننا تتبع أي جهاز ، كما تتفاجأ كيف يمكننا تتبع الجهاز باستخدام WiFi فقط. فيما يلي وصف الفرز لفهمه.
- · يقوم بفحص جميع شبكات WiFi تقريبًا.
- · إرسال موقع هذا الجهاز إلى Google باستخدام Google API
- · وفقًا لهذا ، يتم تحديد موقع جهازك
- · لديك اتصال شبكة قوي لهذا المشروع.
الخطوة 1: الأجزاء والأداة
القطع
- NodeMCU (ESP8266 1.0 12E)
- كابل USB
أدوات
Arduino IDE مع لوحة NodeMcu 1.0 12E
جوجل API
الخطوة 2: ابحث عن Google API
- افتح المتصفح واكتب: console.developer.google.com
- أنشئ مشروعًا جديدًا
- بعد إنشاء مشروع جديد ، انقر فوق بيانات الاعتماد
- انقر فوق مفتاح API
-
تم إنشاء مفتاح API الخاص بك
لسهولة الفهم ، انظر الصورة التالية |>
الخطوة 3: قم بإعداد 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
- اذهب إلى
رسم يشمل مكتبة إدارة المكتبة
اكتب 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) ؛
}
موصى به:
تصميم اللعبة في فليك في 5 خطوات: 5 خطوات
تصميم اللعبة في Flick in 5 Steps: Flick هي طريقة بسيطة حقًا لصنع لعبة ، لا سيما شيء مثل الألغاز أو الرواية المرئية أو لعبة المغامرة
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف - خطوات خطوة: 4 خطوات
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف | خطوات بخطوة: في هذا المشروع ، سأصمم دائرة مستشعر لعكس مواقف السيارات من Arduino باستخدام مستشعر الموجات فوق الصوتية Arduino UNO و HC-SR04. يمكن استخدام نظام التنبيه العكسي للسيارة المستند إلى Arduino للتنقل الذاتي ومجموعة الروبوتات وغيرها من النطاقات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: 3 خطوات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: في هذا Instructable سنقوم باكتشاف الوجه على Raspberry Pi 4 باستخدام Shunya O / S باستخدام مكتبة Shunyaface. Shunyaface هي مكتبة للتعرف على الوجوه / الكشف عنها. يهدف المشروع إلى تحقيق أسرع سرعة في الكشف والتعرف مع
كيف تصنع عداد خطوات؟: 3 خطوات (بالصور)
How to Make Step Counter؟: اعتدت أن أؤدي أداءً جيدًا في العديد من الرياضات: المشي والجري وركوب الدراجة ولعب كرة الريشة وما إلى ذلك ، أحب ركوب الخيل للسفر في وقت قريب. حسنًا ، انظر إلى بطني المنتفخ … حسنًا ، على أي حال ، قررت إعادة التمرين. ما هي المعدات التي يجب أن أحضرها؟
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): 6 خطوات
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): هل تريد تخويف أصدقائك وإحداث بعض ضوضاء الصراخ في عيد الهالوين؟ أو تريد فقط عمل مزحة جيدة؟ يمكن لشاشة الزومبي المنبثقة القيام بذلك! في هذا Instructable ، سوف أعلمك كيفية جعل زومبي القفز للخارج بسهولة باستخدام Arduino. HC-SR0