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

متتبع GPS في الوقت الحقيقي محلي الصنع (SIM800L ، Ublox NEO-6M ، Arduino): 8 خطوات
متتبع GPS في الوقت الحقيقي محلي الصنع (SIM800L ، Ublox NEO-6M ، Arduino): 8 خطوات

فيديو: متتبع GPS في الوقت الحقيقي محلي الصنع (SIM800L ، Ublox NEO-6M ، Arduino): 8 خطوات

فيديو: متتبع GPS في الوقت الحقيقي محلي الصنع (SIM800L ، Ublox NEO-6M ، Arduino): 8 خطوات
فيديو: يقوم بتحديد الموقع في الوقت الحقيقي جهاز تعقب GPS عبر الإنترنت 4G سانباك - متجر كترونيك kitronic 2024, يوليو
Anonim
متتبع GPS محلي الصنع (SIM800L ، Ublox NEO-6M ، Arduino)
متتبع GPS محلي الصنع (SIM800L ، Ublox NEO-6M ، Arduino)

هل لديك وحدة GSM ملقاة مثلي؟ أيضا جهاز تعقب GPS؟

نعتقد نفس الشيء!

في هذه التعليمات ، سأحاول إرشادك إلى كيفية تحقيق هدفك من منظور مبتدئ.

نظرًا لأنه لم يكن لدي معرفة سابقة بالهندسة الكهربائية (لأكون صادقًا ، لا يحتاج المشروع إلى هذا القدر ، ولكن لا) ، ولم يكن لدي أدنى فكرة عن كيفية صنع جهاز يضخ البيانات في الوقت الفعلي إلى خادم ويب ، فقد واجهت العديد من المشكلات. ومع ذلك ، تمكنت في النهاية من تشغيل الأشياء.

لذلك ، في هذا البرنامج التعليمي ، أود التأكيد على الأخطاء التي يمكن أن يرتكبها المبتدئ ، وبناء المشروع وفقًا لذلك.

تذكر: كن حذرًا دائمًا أثناء العمل بالكهرباء!

ملاحظة: أنا لست محترفًا. قد لا يكون الرمز معقدًا بما يكفي لجميع احتياجاتك. يهدف المشروع إلى أن يكون "مشروع هواية" ، لكن! عملت معي. وإذا نجحت معي ، فستعمل من أجلك أيضًا!

الخطوة 1: المتطلبات الأساسية

المتطلبات الأساسية
المتطلبات الأساسية
المتطلبات الأساسية
المتطلبات الأساسية
المتطلبات الأساسية
المتطلبات الأساسية

وحدة GSM - SIM800L

  • صغيرة جدًا وسهلة الاستخدام
  • قادر على استخدام الإنترنت عبر الهاتف المحمول (GPRS)
  • الرخيص

وحدة GPS - Ublox NEO6M

  • صغير أيضًا
  • يتعامل مع وظيفته بشكل جيد للغاية

المتحكم الدقيق - يمكن أن يكون أي شيء - يمكنك استخدام Arduino Uno الشهير أو Nano لتحرير بعض المساحة

البطارية - استخدمت خلية 18650 كمصدر رئيسي وفريد للطاقة (اسمي 3.7 فولت)

حامل البطارية - لماذا؟ - لأن لحام بطارية 18650 أمر خطير للغاية بسبب الحرارة.

DC-DC Boost Converter Step Up Module 5V - يجب أن يكون لديك ، لأن Arduino الذي استخدمته يحتاج إلى 5V

الأدوات والأشياء الأساسية التي يمكن أن تكون في متناول اليد:

أسلاك ، حديد لحام ، لوح اختبار

الخطوة الثانية: المفهوم الأساسي

الفكرة الرئيسة
الفكرة الرئيسة

المفهوم الرئيسي للنظام هو ما يلي:

تتكون من 3 اجزاء:

  1. جهاز - يحتوي على إحداثيات GPS المناسبة ويمكنه الاتصال بخادم عن بُعد وإرسال البيانات إليه
  2. خادم الويب - الذي يمكنه استقبال البيانات الواردة - يخزنها - ويخدم عملاء آخرين
  3. النظام الأساسي - حيث يمكننا عرض الإحداثيات - من الناحية المثالية ، يجب أن يكون الآن تطبيقًا للهاتف المحمول ، أو موقعًا إلكترونيًا

الخطوة 3: وحدة SIM800L

وحدة SIM800L
وحدة SIM800L
وحدة SIM800L
وحدة SIM800L

لقد مررت بأوقات عصيبة مع الوحدة.

أود أن أبدأ ببعض الخصائص والمراجع.

وفقًا لورقة البيانات:

  • تعمل بين 3.4V - 4.4V
  • يمكنه إرسال الرسائل القصيرة وإجراء المكالمات الصوتية للهواتف الأخرى وحتى الاتصال بالإنترنت!
  • يمكننا التواصل معها عبر أوامر AT!
  • يمكنها استخدام ما يصل إلى 2 أمبير في أوقات الذروة! ملاحظة: ربما لن تتمكن من قياسه باستخدام مقياس متعدد - بسبب معدلات أخذ العينات المنخفضة

تجربتي هي أن SIM800L أقل من 3.8 فولت لا تعمل حقًا.

لمزيد من المعلومات قم بزيارة: ورقة البيانات

لذا فإن مهمتك هي توفير 3.8 فولت على الأقل للوحدة (من الناحية المثالية 4 فولت) ، مصدر طاقة ينتج 2 أمبير على الأقل.

قبل استخدام الوحدة في الجهاز النهائي ، أقترح عليك إنشاء اتصال مع SIM800L وجهاز الكمبيوتر الخاص بك للتأكد من أن جهازك يعمل بشكل صحيح.

أول الأشياء أولاً ، قم بتوصيل بطاقة SIM كما في الصورة أعلاه.

لتوصيله بجهاز الكمبيوتر الخاص بك ، يمكنك استخدام محول USB إلى TTL أو Arduino.

الآن ، أذهب مع Arduino.

قم بتوصيل SIM800L VCC و GND بأطراف مصدر الطاقة لديك.

قم بتوصيل TX بدبوس Arduino الرقمي العاشر ، RX بدبوس اردوينو الرقمي الحادي عشر.

قم بتنزيل الكود الذي قمت بربطه في هذه الخطوة.

باستخدام الرمز ، يمكنك إرسال الأوامر واستعادتها على جهاز العرض التسلسلي الخاص بك.

بعض الأوامر البسيطة:

AT إرجاع موافق ، إذا كان الاتصال على ما يرام.

ATD + 123456789 ؛ اتصل برقم هاتف معين. ملاحظة: لا تنس أن تنهيها بفاصلة منقوطة.

AT + CPIN؟ يعيد حالة بطاقة SIM (مقفلة أم لا)

إذا كنت ترغب في إرسال رسالة نصية قصيرة ، فأنت بحاجة إلى إنهاء الإدخال بحرف خاص ، ويمكن إجراؤه بالرمز "$".

لأوامر أخرى مثيرة للاهتمام أقترح عليك قراءة هذا.

هناك أوامر مختلفة ، تعرف عليها ، فهي مفيدة حقًا.

يوجد مؤشر LED أحمر للحالة يخبرك عن عملية تشغيل SIM800L.

64 MS ON - 800MS OFF - SIM800L غير مسجلة في الشبكة.

64 MS ON - 3000MS OFF - SIM800L مسجلة في الشبكة.

64 MS ON - 300MS OFF - SIM800l في وضع GPRS

إذا استمرت بطاقة SIM800L في إعادة التشغيل بعد حوالي 8-10 ومضات ، فقد يكون ذلك بسبب نقص إمدادات الطاقة الفعالة.

إذا لم تحصل على موافق بعد AT ، فتحقق من الأسلاك! إذا كان لديك مقياس متعدد ، فتحقق من استمرارية الأسلاك.

تحقق من توصيلات الأسلاك ومفاصل اللحام! ستعمل الوحدة فقط عند الوميض.

الخطوة 4: Ublox Neo 6m

Ublox Neo 6 م
Ublox Neo 6 م
Ublox Neo 6 م
Ublox Neo 6 م

بعض الخصائص

  • الحد الأقصى للجهد: 3.6 فولت - قمت بتشغيله باستخدام دبوس Arduino's 3.3V
  • أقصى سحب للتيار هو 67 مللي أمبير - لذا يمكنك تشغيله من اردوينو
  • نطاق درجة الحرارة: -40-85 درجة مئوية (أعتقد أنها ستناسبك)

جاءت الوحدة التي طلبتها مع هوائي ظاهر في الصورة ، لقد قمت فقط بتوصيله في الفتحة المقابلة.

يومض الجهاز عند وجود إشارات ، بمؤشر LED أزرق.

أولاً ، تحقق من كيفية عمل GPS هنا ، إذا كنت لا تعرف.

عندما يكون الجهاز قيد التشغيل ، ويعثر على 3 أقمار صناعية ، فإنه يرسل الكثير من القيم المفصولة بفواصل إلى Arduino كما هو مذكور أعلاه.

للمساعدة في عملنا ، يمكننا استخدام بعض المكتبات الخارجية لتحليل هذه البيانات لتكون أكثر قابلية للقراءة من قبل الإنسان.

يمكنك استخدام مكتبة TinyGps أو مكتبة NeoGPS. لقد استخدمت الثانية لأن هذا هو الوزن الخفيف أكثر.

للاختبار ، يجب عليك توصيل دبابيس الطاقة بـ arduino 3.3V و GND.

قم بتنزيل هذا الرمز واستخدمه مع GPS الخاص بك. RX Digital pin 10 ، TX Digital pin 11

ملاحظة: لا تنس استخدام الوحدة في الهواء الطلق ، ويفضل أن يكون ذلك في حالة عدم وجود سحابة.

بعد نصف دقيقة ، يجب أن يومض الجهاز ويخرج إحداثيات GPS الخاصة بك!:)

بمجرد أن تعرف أن وحدة SIM800L و GPS تعمل بشكل مناسب ، يمكنك الانتقال إلى الخطوة التالية.

الخطوة 5: الدوائر

الدوائر
الدوائر

الدائرة كما في الصورة.

لذا ، فإن بطارية 3.4V - 4.2V 18650 هي مصدر الطاقة الرئيسي. يحصل Sim800L على الطاقة منه مباشرةً. يوجد مكثف بينهما متوازي من أجل تحسين استقرار الدائرة.

عندما تختار مكثفًا ، يجب عليك اختيار قدرة ESR منخفضة.

يعمل محول تصعيد 5 فولت واحد على تعزيز جهد البطارية إلى 5 فولت (هناك حاجة إلى الأشعة تحت الحمراء لأن Arduino يعمل مع 5 فولت).

يتم توصيل سكة الطاقة 5V بـ Nano هنا. يتم توصيل Sim800L و Neo6m بـ Nano كما في الصورة. (Sim Tx-D10، SimRx-D11؛ NeoTX-D3، NeoRX-D4)

D12 متصل بـ RST ، لذلك يمكننا إعادة تشغيل النظام برمجيًا (باستثناء SIM800L). ملاحظة: قد لا تكون طريقة إعادة التشغيل هذه هي أفضل ممارسة)

وأخيرًا ، تم توصيل اثنين من مؤشرات LED بـ NANO ، لذلك يمكننا إخبار المستخدم ، في حالة حدوث أي خطأ.

الخطوة 6: الكود

الكود مرفق بـ Instructables أو ألق نظرة على github.

يمكنك تعديله ليعمل بشكل صحيح لاحتياجاتك ، أو يمكنك استخدام رمز الآخرين إذا كنت تريد.

waitUntilResponse () ، تم أخذ وظيفة المساعد من الكود الخاص به. تحقق من عمله ، وكود أيضًا!

باختصار ، في وظيفة الإعداد ، نحتاج إلى تمكين اتصال GPRS لوحدة SIM800L الخاصة بنا. نحن نعلم ما إذا كان هذا ناجحًا إذا يومض مؤشر LED بسرعة. (الإعداد GPRSConnection ())

في وظيفة الحلقة - يتم استدعاء وظيفة sendData () كل 15 ثانية - والتي لها طلب

لقد استخدمت سلاسل الاستعلام لدفع البيانات إلى خادم الويب بهذا التنسيق:

عنوان ip / file.php؟ key = value & key = value على سبيل المثال

في حالة حدوث أي خطأ ، سيضيء مؤشر LED المقابل. (SIM ، GPS)

الخطوة 7: خادم الويب

قاعدة بيانات للانترنت
قاعدة بيانات للانترنت

لاستخدامنا ، يكفي خادم ويب بسيط وخفيف الوزن.

هناك بعض الخيارات التي يمكنك الاختيار من بينها:

  1. يمكنك استخدام خادم بعيد لشركة ما ، والذي ربما تحتاج إلى دفع ثمنه بانتظام.
  2. يمكنك استخدام جهاز الكمبيوتر الخاص بك. أقترحه فقط للاختبار ، ليس من الفعال حقًا تشغيله على مدار الساعة طوال أيام الأسبوع ، بسبب إهدار الطاقة ، وقضايا السلامة.
  3. يمكنك استخدام جهاز كمبيوتر صغير ، مثل Raspberry PI. خفيف الوزن ورخيص ولا يستهلك الكثير من الطاقة.

لقد جربت الخيار الثاني والثالث ، لقد عملوا بشكل جيد. حسنًا ، الهدف الرئيسي ليس خوادم هذه التعليمات ، لكني ألمح لك بعض النصائح.

إذا كنت تستخدم جهاز كمبيوتر ، فمن المحتمل أنك تستخدم Windows. إذا كنت مكانك ، فسأثبت خادم Apache أو XAMPP عليه.

يحتوي XAMPP بالفعل على PHP ، بالإضافة إلى أنه يأتي أيضًا مع HTML و Perl ونظام إدارة قاعدة البيانات. باستخدام PHP ، يمكنك إنشاء خادم ديناميكي. إذا كنت ترغب في استخدام الخادم المحلي الذي قمت بإنشائه للتو من أي مكان في العالم ، فأنت بحاجة إلى تعيين IP ثابت لجهاز الكمبيوتر الخاص بك والقيام ببعض إعادة توجيه المنافذ. برنامج تعليمي مفيد لعنوان IP الثابت:

وكل شيء إعادة توجيه الميناء:

إذا كان لديك توت العليق ، فمن الجيد استخدامه. يمكنك التعرف على أوامر Linux ، وتشغيل الخادم الخاص بك على مدار الساعة طوال أيام الأسبوع.

كان نظام التشغيل Raspbian Jessie مع إعداد بدون رأس (بدون لوحة مفاتيح أو شاشة) - كنت أتحكم فيه من خلال جهاز الكمبيوتر الخاص بي من خلال اتصال SSH.

لقد استخدمت المعجون لتسجيل الدخول إلى Raspberry الخاص بي. لا تنس تغيير كلمة مرور حسابك ، حتى لا يتمكن الآخرون من تسجيل الدخول إلى Pi. الافتراضي هو: pi ، passw: raspberry.

لقد قمت بتثبيت خادم ويب lighttpd مع sqlite3. تم العثور على برنامج تعليمي جيد هنا:

لقد استخدمت PHP بشكل أساسي في كود الخادم. باستخدام PHP ، يمكنك تلقي البيانات وقراءة / كتابة قواعد البيانات - ترميز استعلام بتنسيق json ، وما إلى ذلك … سيساعدك هذا البرنامج التعليمي كثيرًا في كيفية إدارة قاعدة البيانات باستخدام PHP.

يمكنك عرض الكود الخاص بي على github أيضًا ، في مجلد server_files.

وبالطبع ، يجب عليك تمكين Portforwarding إلى Pi الخاص بك على جهاز التوجيه الخاص بك ، إذا كنت ترغب في الوصول إلى ذلك عن بُعد.

الخطوة 8: النهاية / التجربة

العلبة لم يتم إنشاؤها بعد.

خبرتي هي أن النظام لا يعمل بشكل سيئ للغاية. ولكن هناك تحسينات في الاستقرار تنتظر.

إذا لم يعمل المتتبع مع الكود الذي أرفقته ، فلا تقلق. حاول التأكد من أن جهازي SIM800L و NEO 6M يعملان كما ينبغي. يمكنك تعديل الكود الخاص بي بحرية ، أو البحث عن رمز أفضل. آمل فقط أن أريكم مثالاً ، كيف يمكنكم إكمال هذا المشروع.

أقبل أي نصيحة ، تصحيح من التعليقات. اسأل بحرية.

موصى به: