- רכיבים נדרשים למערכת מעקב אחר רכבים מבוססי 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 באמצעות ארדואינו
- מעקב אחר מיקום ללא GPS באמצעות SIM800 ו- Arduino
רכיבים נדרשים למערכת מעקב אחר רכבים מבוססי Arduino:
כדי לבנות מערכת מעקב לרכב פשוטה שתובעת את Arduino נצטרך את הרכיבים הבאים.
- ארדואינו UNO
- מודול GSM
- מודול GPS
- LCD בגודל 16x2
- ספק כוח
- חוטי חיבור
- 10 K סיר
כיצד ניתן להשתמש במודול GSM למעקב אחר מיקום:
GPS מייצג מערכת מיקום גלובלית ומשמשת לזיהוי קו רוחב ואורך של כל מקום על פני כדור הארץ, עם זמן UTC מדויק (זמן מתואם אוניברסלי). מודול GPS הוא המרכיב העיקרי בפרויקט מערכת מעקב הרכב שלנו. מכשיר זה מקבל את הקואורדינטות מהלוויין לכל שנייה ושנייה, עם זמן ותאריך.
מודול GPS שולח את הנתונים הקשורים למיקום המעקב בזמן אמת, והוא שולח כל כך הרבה נתונים בפורמט NMEA (ראה צילום המסך למטה). פורמט NMEA מורכב מכמה משפטים, בהם אנו זקוקים למשפט אחד בלבד. משפט זה מתחיל מ- $ GPGGA ומכיל את הקואורדינטות, הזמן ומידע שימושי אחר. זה GPGGA נקרא Data תקן מערכת מיקום גלובלית. למידע נוסף על קריאת נתוני 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 |
דילול אופקי של דיוק |
גוֹבַה |
גובה מגובה פני הים |
M |
מטר |
גוֹבַה |
גוֹבַה |
סכום בדיקה |
נתוני בדיקת בדיקה |
הסבר מעגל לממשק GSM ו- GPS עם Arduino:
חיבורי מעגלים של פרויקט מערכת מעקב לרכב זה פשוט ומוצג בתמונה זו. כאן סיכת ה- Tx של מודול ה- GPS מחוברת ישירות לסיכה הדיגיטלית מספר 10 של Arduino. על ידי שימוש בספרייה הסדרתית של התוכנה כאן, אפשרנו תקשורת טורית בסיכה 10 ו- 11, והפכנו אותם ל- Rx ו- Tx בהתאמה והשאירנו את סיכת ה- Rx של מודול ה- GPS פתוח. כברירת מחדל פין 0 ו- 1 של Arduino משמשים לתקשורת טורית אך באמצעות ספריית SoftwareSerial אנו יכולים לאפשר תקשורת טורית על פינים דיגיטליים אחרים של Arduino. אספקת 12 וולט משמשת להפעלת מודול ה- GPS.
סיכות ה- Tx וה- Rx של מודול GSM מחוברות ישירות לסיכות Rx ו- Tx של Arduino. מודול GSM מופעל גם על ידי אספקת 12 וולט. סיכות נתונים D4, D5, D6 ו- D7 אופציונליות של LCD מחוברות לסיכה מספר 5, 4, 3 ו- 2 של Arduino. סיכת פיקוד RS ו- EN של LCD מחוברות עם סיכה מספר 2 ו -3 של Arduino וסיכה RW מחוברת ישירות עם האדמה. פוטנציומטר משמש גם להגדרת ניגודיות או בהירות של LCD.
מערכת מעקב אחר רכבים מבוססי GSM ו- GPS באמצעות Arduino - עבודה
בפרויקט זה, Arduino משמש לשליטה בתהליך כולו באמצעות מקלט GPS ומודול GSM. מקלט GPS משמש לאיתור קואורדינטות של הרכב, מודול GSM משמש לשליחת הקואורדינטות למשתמש באמצעות SMS. ו- LCD 16x2 אופציונלי משמש גם להצגת הודעות סטטוס או קואורדינטות. השתמשנו במודול GPS SKG13BL ובמודול GSM SIM900A.
כאשר אנו מוכנים עם החומרה שלנו לאחר התכנות, אנו יכולים להתקין אותה ברכב שלנו ולהפעיל אותה. אז אנחנו רק צריכים לשלוח SMS, "מסלול רכב", למערכת שמונחת ברכב שלנו. אנחנו יכולים גם להשתמש בקידומת (#) או בסיומת (*) כמו #Track Vehicle *, כדי לזהות נכון את ההתחלה והסיום של המחרוזת, כמו שעשינו בפרויקטים הבאים: GSM מבוסס בית אוטומציה ולוח הודעות אלחוטי.
הודעה שנשלחה מתקבלת על ידי מודול GSM המחובר למערכת ושולח נתוני הודעות לארדואינו. ארדואינו קורא אותו ומחלץ את המסר הראשי מכל ההודעה. ואז השווה אותו למסר מוגדר מראש בארדואינו. אם מתרחשת התאמה כלשהי אז Arduino קורא קואורדינטות על ידי חילוץ מחרוזת $ GPGGA מנתוני מודול GPS (GPS עובד מוסבר לעיל) ושלח אותו למשתמש באמצעות מודול GSM. הודעה זו מכילה את הקואורדינטות של מיקום הרכב.
ממשק GAM ו- GPS עם קוד Arduino כדי לעקוב אחר מיקום הרכב
בחלק הראשון של התכנות אנו כוללים ספריות ומגדירים סיכות לתקשורת סדרתית LCD ותוכנה. הגדר גם משתנה כלשהו עם מערכים לאחסון נתונים. הספרייה הסדרתית של התוכנה משמשת לאפשר תקשורת טורית בסיכה 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 (); אם (temp) {get_gps (); מעקב(); }}
פונקציות void init_sms ו- void send_sms () משמשות לאתחול ושליחת הודעה. השתמש בטלפון סלולרי תקין בן 10 ספרות, בפונקציה init_sms .
הפונקציה void get_gps () שימשה לחילוץ הקואורדינטות מהמחרוזת שהתקבלה.
פונקציה void gpsEvent () משמשת לקבלת נתוני GPS בארדואינו .
פונקציה void serialEvent () משמשת לקבלת הודעה מ- GSM ולהשוואת ההודעה שהתקבלה עם הודעה מוגדרת מראש (Track Vehicle).
בטל serialEvent () {while (Serial.available ()) {if (Serial.find ("Track Track")) {temp = 1; לשבור; }…………..
פונקציית האתחול 'gsm_init () ' משמשת לאתחול וקביעת התצורה של מודול GSM, כאשר ראשית, מודול GSM נבדק אם הוא מחובר או לא על ידי שליחת פקודת 'AT' למודול GSM. אם מתקבלת תגובה אישור, פירושה שהיא מוכנה. המערכת ממשיכה לבדוק את המודול עד שהוא מוכן או עד לקבלת 'אישור'. ואז ECHO מכובה על ידי שליחת הפקודה ATE0, אחרת מודול GSM יהדהד את כל הפקודות. ואז סוף סוף נבדקת זמינות הרשת דרך 'AT + CPIN?' פקודה, אם כרטיס מוכנס הוא כרטיס ה- SIM וה- PIN קיים, זה נותן את התגובה + CPIN: READY. זה גם לבדוק שוב ושוב עד למציאת הרשת. ניתן להבין זאת היטב על ידי הסרטון שלהלן.
בדוק את כל הפונקציות לעיל בסעיף הקוד להלן.