יום שלישי, 13 בפברואר 2018

מכשיר מעקב GPS

איך מרכיבים מכשיר מעקב GPS בעזרת ארדואינו? הרעיון אמור להיות די פשוט: לקרוא אותות GPS ולחשב מיקום כמו שעשינו כבר כאן ובנוסף - לשדר את המיקום בתקשורת סלולרית. לשדר בתקשורת סלולרית זה אמור להיות ממש קל וכבר עשינו את זה כאן. אז מה הסיפור?

בתכל'ס, כל הנסיונות לשדר מיקום ב SMS הביאו לתוצאה בערך כזאת:


הארדואינו הצליח לשלוח SMS רגיל שמראה שהתקשורת בסדר, רכיבי התקשורת בסדר והכל כשורה. מה שלא עבד בכל הסיפור הוא שליחת הקורדינטות של ה GPS ובמקומן הוא שלח הודעות ריקות. מסתבר שהארדואינו כלל לא ניגש לקריאת המיקום בעזרת ה GPS כאשר הוא צריך להשתמש בתקשורת סלולרית... 

איפה הבעיה? 

ניסיתי לעלות רמה ולמרות הכישלון הצורב לנסות לשדר את המיקום בתקשורת סלולרית באמצעות אפליקציית Blynk. גם זה לא עבד והאפליקציה לא הראתה מיקום. הפעם זה היה מוזר אפילו יותר מכיוון שהשתמשתי בקוד מוכן של Blynk שעבר התאמות קלות מאד. כאשר כמעט התייאשתי - פגשתי ברשת את ihsan yurtbaşı (תודה רבה!!). ihsan עזר לי להבין שהארדואינו לא יכול לבצע יותר מפעולה אחת בו זמנית (טוב, את זה כולם יודעים...) ולכן במקרה של שימוש בשני רכיבי תקשורת - לדוגמא שימוש בתקשורת לוויינית ושימוש בתקשורת סלולרית - לא מספיק להבין שהארדואינו יבצע את הפעולות אחת אחרי השניה אלא להגדיר לארדואינו התחלת והפסקת ביצוע.

בעזרת פקודת listen או end מגדירים לארדואינו להתחיל "להקשיב" לרכיב ה GPS או לרכיב התקשורת הסלולרית או מגדירים לו "לסיים את ההקשבה" ולעבור הלאה. זה קצת מוזר אבל אם לא "סיימנו להקשיב" לתקשורת הסלולרית, הארדואינו לא יעבור הלאה לקריאת ה GPS. הוא כביכול ימשיך לרוץ הלאה ב Loop אבל לא באמת יבצע פקודות שקשורות לרכיב התקשורת השני. 

אז אחרי העזרה הענקית שקיבלתי מ ihsan (שוב תודה רבה!!) הכל היה הרבה יותר פשוט. מוכנים להתחיל?

רכיבים: 
  • לוח ארדואינו אונו
  • מטריצה וכמה חוטים 
  • רכיב GPS מסוג Neo-6M או Neo-7M
  • רכיב תקשורת סלולרית מסוג Sim800L
  • כרטיס Sim
  • אנטנת GPS
מרכיבים את המעגל על פי התרשים: 



כמה הערות לתרשים: 
  1. כאשר חיברתי את ה Neo-6M ל 5V - רכיב התקשורת הסלולרית לא הצליח לקבל מספיק מתח כדי לעבוד. אולי אצלכם זה יהיה שונה אבל גיליתי שהוא מסתדר מצוין עם 3.3V אז הבעיה נפתרה.. 
  2. בתרשים ציירתי סוללה של 9V, בפועל השתמשתי ב"מטען נייד" (Power bank) של 5000mA. עבד מעולה והחזיק את המערכת ליותר מ 24 שעות של תקשורת סלולרית ברצף!
  3. Neo-6M: 
    1. החוט האדום - VCC
    2. החוט השחור - GND
    3. החוט הסגול - RX
    4. החוט הצהוב - TX

כעת, לפני הקוד, נוריד את אפליקציית Blynk ונתקין אותה (כי רק איתה נוכל להשלים את הקוד ולמלא את מה שחסר). לאחר ההתקנה נפתח את התכנה וניצור משתמש חדש על ידי לחיצה על Create New Account.



נכניס מייל וסיסמא ונלחץ על Sign Up:




לחיצה על מסך ריק - תעביר אתכם למצב של עריכה של הפרויקט החדש:


במסך העריכה לחצו על + כדי להוסיף רכיבים לפרויקט. בחרו באפשרות של הוספת מפה (Map):



אחרי שהוספתם את המפה לתרשים תצטרכו להגדיר למפה חיבור וירטואלי V4:



כעת, במייל שלכם, אמור להיות המזהה שלכם שמורכב מהמון ספרות ואותיות. חפשו את המזהה שלכם שנקרא - auth והדביקו אותו בקוד שלכם.

השלב הבא יהיה להגדיר את ה APN שלכם. אם רכשתם כרטיס Sim יעודי עבור הפרויקט הזה, אני ממליץ להכניס אותו למכשיר טלפון "אמיתי" כדי להגדיר את כל ההגדרות הנכונות. חברת הסלולר שלכם אמורה לשלוח SMS של הגדרות תקשורת שיותקנו על גבי כרטיס ה Sim. ההגדרות ישמרו על הכרטיס גם לאחר שתעבירו את הכרטיס לרכיב Sim800L.

אם אתם משתמשים בכרטיס של הטלפון שלכם - תוכלו לבצע מיד את השלב הבא:

פתחו את ההגדרות של מכשיר הטלפון שלכם וחפשו את פרטי ה APN שלכם. אצלי זה נמצא תחת הגדרות>>> כרטיסי SIM & רשתות סלולריות>>> GOLAN T>>> שמות של נקודות גישה >>> פרטי APN. אצלכם זה יכול להופיע כמובן בתפריט שונה בהתאם למכשיר הסלולר שברשותכם אולם זה פחות או יותר הכיוון. בסופו של דבר אתם אמורים לראות את פרטי ה APN, במקרה שלי: internet.golantelecom.net.il


את ה APN שלכם - תצטרכו לשלב בקוד במקום הנכון. הקפידו על אותיות קטנות / גדולות בכתיבת ה APN - זה קריטי. 

(אם ממש ממש נתקעתם ולא מצאתם את ה APN שלכם - תוכלו להתקשר לספק הסלולר שלכם ולשאול אותו מה ה APN שלכם). 

אחרי שעדכנתם את ה APN שלכם ואת ה auth שלכם, אתם יכולים להעלות את הקוד לארדואינו:





כעת, במסך הסיריאלי תוכלו לראות שהמערכת שלכם מצליחה להתחבר, הניחו את אנטנת ה GPS תחת שמים פתוחים ופתחו את האפליקציה. לחצו על סימן ה play:


אם הכל עובד כשורה, המפה אמורה להראות לכם את המיקום של המשדר כמו בסרטון הבא:




מה אפשר לעשות עם זה?

אפשר לחבר את המערכת לכל דבר חשוב שתרצו לאתר: תיק חשוב, רכב, כלב או כל דבר אחר שאתם חוששים לאבד...

ולסיום - תודה שוב ל ihsan שבלעדיו היינו תקועים כנראה עוד המון המון זמן... תודה!!

בהצלחה!


2 תגובות:

הערות? הארות? יש לך משהו חשוב לספר לכולם? שאלות?

נשמח לשמוע!

(התגובה תפורסם בהקדם בכפוף לאישור מערכת מייקינג)