- المكونات المطلوبة لنظام تتبع المركبات القائم على Arduino:
- كيف يمكن استخدام وحدة GSM لتتبع الموقع:
- شرح الدائرة لربط نظام GSM و GPS مع Arduino:
- نظام تتبع المركبات القائم على GSM و GPS باستخدام Arduino - العمل
- واجهة GAM و GPS مع كود Arduino لتتبع موقع السيارة
تُستخدم أنظمة تتبع المركبات بشكل شائع في تطبيقات إدارة الأسطول وتتبع الأصول. لا تستطيع هذه الأنظمة اليوم تتبع موقع السيارة فحسب ، بل يمكنها أيضًا الإبلاغ عن السرعة والتحكم فيها عن بُعد. بشكل عام ، تتبع المركبات هو عملية نتتبع فيها موقع السيارة في شكل خطوط الطول والعرض (إحداثيات GPS). إحداثيات GPS هي قيمة الموقع. هذا النظام فعال للغاية لأغراض التطبيقات الخارجية. هذا النوع من مشروع نظام تتبع المركبات يستخدم على نطاق واسع في تتبع سيارات الأجرة / سيارات الأجرة ، المركبات المسروقة ، حافلات المدارس / الجامعات ، وما إلى ذلك في هذا المشروع ، نحن نمضي خطوة للأمام مع نظام تحديد المواقع العالمي (GPS) لبناء نظام تتبع المركبات على أساس GSM و GPS باستخدام Arduino. يمكن أيضًا استخدام نظام تتبع المركبات هذا تتبع مركبة باستخدام GPS و GSM ويمكن أيضًا استخدامها كنظام إنذار للكشف عن الحوادث ونظام تتبع الجندي وغير ذلك الكثير ، فقط من خلال إجراء تغييرات قليلة في الأجهزة والبرامج.
لقد قمنا أيضًا ببناء العديد من الأنواع الأخرى من أنظمة تتبع المركبات سابقًا ، يمكنك التحقق منها إذا كنت مهتمًا
- تتبع المركبات GPS والتنبيه من الحوادث باستخدام Arduino
- تتبع المركبات باستخدام خرائط Google باستخدام Arduino و ESP8266
- تتبع المركبات GPS وتنبيه الحوادث باستخدام MSP430
- تتبع المركبات GPS القائم على LoRa باستخدام Arduino
- تعقب الموقع بدون GPS باستخدام SIM800 و Arduino
المكونات المطلوبة لنظام تتبع المركبات القائم على Arduino:
لبناء نظام بسيط لتتبع المركبات يناسب Arduino ، سنحتاج إلى المكونات التالية.
- اردوينو UNO
- وحدة GSM
- وحدة GPS
- 16x2 LCD
- مزود الطاقة
- توصيل الأسلاك
- 10 كيلو وعاء
كيف يمكن استخدام وحدة GSM لتتبع الموقع:
يشير نظام تحديد المواقع العالمي (GPS) إلى نظام تحديد المواقع العالمي ويستخدم لاكتشاف خطوط الطول والعرض لأي موقع على الأرض ، مع التوقيت العالمي المنسق (UTC) (تنسيق التوقيت العالمي). وحدة GPS هي المكون الرئيسي في مشروع نظام تتبع المركبات لدينا. يستقبل هذا الجهاز الإحداثيات من القمر الصناعي لكل ثانية مع الوقت والتاريخ.
ترسل وحدة GPS البيانات المتعلقة بتتبع الموقع في الوقت الفعلي ، وترسل الكثير من البيانات بتنسيق NMEA (انظر لقطة الشاشة أدناه). يتكون تنسيق NMEA من عدة جمل ، نحتاج فيها فقط إلى جملة واحدة. تبدأ هذه الجملة من $ GPGGA وتحتوي على الإحداثيات والوقت والمعلومات المفيدة الأخرى. يشار إلى GPGGA هذا إلى بيانات إصلاح نظام تحديد المواقع العالمي. تعرف على المزيد حول قراءة بيانات GPS وسلاسلها هنا.
يمكننا استخراج إحداثيات من سلسلة $ GPGGA عن طريق حساب الفواصل في السلسلة. لنفترض أنك عثرت على سلسلة $ GPGGA وقمت بتخزينها في مصفوفة ، فيمكن العثور على Latitude بعد فاصلتين ويمكن العثور على خط الطول بعد أربع فاصلات. يمكن الآن وضع خطوط الطول والعرض هذه في مصفوفات أخرى.
يوجد أدناه سلسلة GPGGA $ مع وصفها:
GPGGA بالدولار الأمريكي ، 104534.000،7791.0381 ، N ، 06727.4434 ، E ، 1،08،0.9،510.4 ، M ، 43.9 ، M ، * 47
GPGGA $ ، HHMMSS.SSS ، خطوط العرض ، N ، خطوط الطول ، E ، FQ ، NOS ، HDP ، الارتفاع ، M ، الارتفاع ، M ، بيانات المجموع الاختباري
المعرف |
وصف |
GPGGA دولار |
بيانات نظام تحديد المواقع العالمي |
HHMMSS.SSS |
الوقت بتنسيق ساعة دقيقة ثانية وميلي ثانية. |
خط العرض |
خط العرض (تنسيق) |
ن |
الاتجاه N = الشمال ، S = الجنوب |
خط الطول |
خط الطول (الإحداثيات) |
ه |
الاتجاه E = الشرق ، W = الغرب |
FQ |
إصلاح بيانات الجودة |
NOS |
عدد الأقمار الصناعية المستخدمة |
HPD |
التخفيف الأفقي للدقة |
ارتفاع |
الارتفاع من مستوى سطح البحر |
م |
متر |
ارتفاع |
ارتفاع |
اختباري |
بيانات المجموع الاختباري |
شرح الدائرة لربط نظام GSM و GPS مع Arduino:
اتصالات الدائرة لمشروع نظام تتبع المركبات هذا بسيطة وتظهر في الصورة بيلو. هنا يتم توصيل Tx pin الخاص بوحدة GPS مباشرة برقم التعريف الرقمي 10 من Arduino. باستخدام Software Serial Library هنا ، سمحنا بالاتصال التسلسلي على الدبوس 10 و 11 ، وجعلناهما Rx و Tx على التوالي وتركنا دبوس Rx لوحدة GPS مفتوحًا. بشكل افتراضي ، يتم استخدام Pin 0 و 1 من Arduino للاتصال التسلسلي ولكن باستخدام مكتبة SoftwareSerial ، يمكننا السماح بالاتصال التسلسلي على دبابيس رقمية أخرى في Arduino. يستخدم مصدر 12 فولت لتشغيل وحدة GPS.
تتصل دبابيس Tx و Rx الخاصة بوحدة GSM مباشرة بـ pin Rx و Tx من Arduino. وحدة GSM مدعومة أيضًا بإمداد 12 فولت. تتصل دبابيس بيانات LCD الاختيارية D4 و D5 و D6 و D7 برقم التعريف 5 و 4 و 3 و 2 في Arduino. يتم توصيل دبوس الأوامر RS و EN الخاص بشاشات الكريستال السائل برقم التعريف 2 و 3 من Arduino ويتم توصيل دبوس RW مباشرة بالأرض. يستخدم مقياس الجهد أيضًا لضبط التباين أو سطوع شاشة LCD.
نظام تتبع المركبات القائم على GSM و GPS باستخدام Arduino - العمل
في هذا المشروع ، يتم استخدام Arduino للتحكم في العملية بأكملها باستخدام جهاز استقبال GPS ووحدة GSM. يستخدم جهاز استقبال GPS للكشف عن إحداثيات السيارة ، ويتم استخدام وحدة GSM لإرسال الإحداثيات إلى المستخدم عن طريق الرسائل القصيرة. كما تُستخدم شاشة LCD اختيارية مقاس 16 × 2 لعرض رسائل الحالة أو الإحداثيات. لقد استخدمنا GPS Module SKG13BL ووحدة GSM SIM900A.
عندما نكون جاهزين بأجهزتنا بعد البرمجة ، يمكننا تثبيتها في سيارتنا وتشغيلها. ثم نحتاج فقط إلى إرسال رسالة نصية قصيرة ، "Track Vehicle" ، إلى النظام الموجود في سيارتنا. يمكننا أيضًا استخدام بادئة (#) أو لاحقة (*) مثل # Track Vehicle * ، لتحديد بداية السلسلة ونهايتها بشكل صحيح ، كما فعلنا في هذه المشاريع: أتمتة المنازل القائمة على GSM ولوحة الإشعارات اللاسلكية
يتم استلام الرسالة المرسلة بواسطة وحدة GSM المتصلة بالنظام وترسل بيانات الرسالة إلى Arduino. يقرأها Arduino ويستخرج الرسالة الرئيسية من الرسالة بأكملها. ثم قارنها بالرسالة المحددة مسبقًا في Arduino. في حالة حدوث أي تطابق ، يقرأ Arduino الإحداثيات عن طريق استخراج سلسلة GPGGA $ من بيانات وحدة GPS (تم شرح عمل GPS أعلاه) وإرساله إلى المستخدم باستخدام وحدة GSM. تحتوي هذه الرسالة على إحداثيات موقع السيارة.
واجهة GAM و GPS مع كود Arduino لتتبع موقع السيارة
في جزء البرمجة أولاً ، نقوم بتضمين المكتبات وتحديد دبابيس للاتصال التسلسلي لشاشات الكريستال السائل والبرامج. حدد أيضًا بعض المتغيرات باستخدام المصفوفات لتخزين البيانات. يتم استخدام Software Serial Library للسماح بالاتصال التسلسلي على الدبوس 10 و 11.
#تضمن
هنا يتم استخدام المصفوفة str لتخزين الرسائل المستلمة من وحدة GSM و GPSString تستخدم لتخزين سلسلة GPS. char * test = ”$ GPGGA” يُستخدم لمقارنة السلسلة الصحيحة التي نحتاجها للإحداثيات.
بعد ذلك ، قمنا بتهيئة الاتصال التسلسلي ووحدة LCD و GSM و GPS في وظيفة الإعداد وأظهرنا رسالة ترحيب على شاشة LCD.
إعداد باطل () {lcd.begin (16،2) ؛ Serial.begin (9600) ؛ GPS.begin (9600) ؛ lcd.print ("تتبع المركبات") ؛ lcd.setCursor (0،1) ؛……………
في وظيفة الحلقة ، نتلقى رسالة وسلسلة GPS.
حلقة باطلة () {serialEvent () ، إذا (درجة الحرارة) {get_gps () ، تتبع () ؛ }}
وظائف init_sms الفراغ و send_sms الفراغ () تستخدم لinitialising وإرسال الرسالة. استخدم رقم هاتف محمول مناسب مكون من 10 أرقام ، في وظيفة init_sms .
تم استخدام دالة get_gps () باطلة لاستخراج الإحداثيات من السلسلة المستلمة.
وظيفة باطل GPSEvent () تستخدم لتلقي بيانات GPS في Arduino.
يتم استخدام وظيفة serialEvent () الباطلة لتلقي رسالة من GSM ومقارنة الرسالة المستلمة مع الرسالة المحددة مسبقًا (تتبع السيارة).
باطل serialEvent () {while (Serial.available ()) {if (Serial.find ("Track Vehicle")) {temp = 1؛ استراحة؛ }…………..
تُستخدم وظيفة التهيئة "gsm_init () " لتهيئة وحدة GSM وتكوينها ، حيث يتم أولاً فحص وحدة GSM سواء كانت متصلة أم لا عن طريق إرسال أمر "AT" إلى وحدة GSM. إذا تم تلقي الرد "موافق" ، فهذا يعني أنه جاهز. يستمر النظام في التحقق من الوحدة حتى تصبح جاهزة أو حتى يتم استلام "موافق". ثم يتم إيقاف تشغيل ECHO عن طريق إرسال الأمر ATE0 ، وإلا فإن وحدة GSM ستكرر جميع الأوامر. ثم يتم التحقق أخيرًا من توفر الشبكة من خلال "AT + CPIN؟" الأمر ، إذا كانت البطاقة المُدخلة عبارة عن بطاقة SIM وكان رقم التعريف الشخصي موجودًا ، فإنه يعطي الاستجابة + CPIN: READY. يتم أيضًا التحقق من هذا بشكل متكرر حتى يتم العثور على الشبكة. يمكن فهم ذلك بوضوح من خلال الفيديو أدناه.
تحقق من جميع الوظائف المذكورة أعلاه في قسم التعليمات البرمجية أدناه.