תוכן עניינים:

EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC: 4 שלבים
EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC: 4 שלבים

וִידֵאוֹ: EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC: 4 שלבים

וִידֵאוֹ: EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC: 4 שלבים
וִידֵאוֹ: וובינר חדשנות בתעשייה - ייצור חכם כתנאי הכרחי לעתיד התעשייה המקומית 2024, יוני
Anonim
EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC
EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC
EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC
EAL - איסוף נתוני GPS בתעשייה 4.0 ברכב RC

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

על תרשים הזרימה למעלה, תוכל לראות סקירה כללית של הטכנולוגיות שהיו בשימוש בפרויקט זה. כדי להפיק את המרב מהמדריך הזה, עליך להיות בעל הכרות עם כמה, אם לא כל הטכנולוגיות שבהן נעשה שימוש. הוא מקושר בהתאם לשימוש. גם תת -הגנה ל- Github תעזור, מכיוון שקישרנו למאגרי github שלנו.

רשימת כלי עזר:

  • Github
  • פטל PI/Raspbian

    פִּיתוֹן

  • Node.js

    • Express.js
    • Sequelize.js
    • MySQL
  • HTML, CSS, JS

    רצועת אתחול

שלב 1: הגדרת מסד נתונים

הגדרת מסד נתונים
הגדרת מסד נתונים

בקטע זה נדבר על האופן שבו אנו בונים את מערכת מסדי הנתונים שממנה נמשכים נתוני ה- GPS שלנו. מסד הנתונים בנוי ב- MySQL בהתאם לתמונה למעלה, שם יש לנו שתי טבלאות - "משתמשים" ו- "GPSEntries". במשתמשים יש לנו את "Id" כמפתח העיקרי שלנו. הוא משמש כמזהה ייחודי. "שם" הוא שם המשתמש המחובר כעת. "Apikey" הוא המפתח הייחודי שניתן למשתמש כדי לגשת ל- API. "פעיל" הוא לבדוק אם המשתמש פעיל, נוכל לבטל את ההפעלה של המשתמש, כך שהוא לא יוכל לגשת למסד הנתונים. "CreatedAt" ו- "UpdatedAt" נעשה על ידי התהליך בו השתמשנו לבניית מסד הנתונים.

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

שלב 2: API

API
API

בקטע זה נדבר על ה- API השולט במסד הנתונים ומדביק אליו את הנתונים. ממשק ה- Web בנוי עם Node.js, שמשתמש Express.js ו- Sequalize.js.

Node.js משמש להפעלת צד שרת JavaScript, כאשר הוא משמש בדרך כלל בעיקר עבור סקריפטים בצד הלקוח בדף אינטרנט.

Express.js היא המסגרת בה השתמשנו לבניית ה- API.

Sequalize.js משמש ליצירת הקישורים בין נתוני ה- GPS לבין תכונות מסד הנתונים. היא משתמשת בשיטה הנקראת ORM (Object-Relational Mapping) לשם כך. כאן גם נוצרים "CreatedAt" ו- "UpdatedAt" (מוצג בשלב 1).

ניתן להשתמש ב- API על ידי ביקור ב- api.joerha.dk. לאחר מכן הוסף /gps לכתובת האתר, שתציג את כל הנתונים במסד הנתונים בפורמט JSON. כדי לשלוט בכמה ערכים שאתה רוצה, תוכל להוסיף /2 (המשתמש) ו /x (מספר ערכים) לכתובת ה- URL. Fx api.joerha.dk/gps/2/10 יציג את 10 הערכים האחרונים. ספיגה של הנתונים המעוצבים מוצגת בתמונה למעלה.

הקוד ניתן למצוא כאן: Github

שלב 3: יישום GPS/Python

יישום GPS/Python
יישום GPS/Python
יישום GPS/Python
יישום GPS/Python
יישום GPS/Python
יישום GPS/Python

בקטע זה נדבר על התסריט שפועל על הפטל ואוסף את נתוני ה- GPS ושולח אותם ל- API.

כדי לאסוף את הנתונים מה- GPS אנו משתמשים בדמון הנקרא gpsd (תמונה 1). כאן אנו אוספים את הנתונים שאנו מפרסמים למסד הנתונים, ואת הבסיס לטבלת GPSEntries שלנו. התסריט ששואב את הנתונים מ- gpsd ומפרסם אותם ב- API, כתוב בפייתון.

היישום מאתחל שרשור, כך שהוא יכול להריץ את gpsd ואת התוכנית שלנו בו זמנית. נתוני ה- Gpsd מוזרמים באופן רציף בזמן שה- GPS פעיל (תמונה 2).

לאחר מכן אנו יוצרים לולאת זמן שמפרסמת את המטען שלה באופן רציף ל- API המכיל את נתוני ה- GPS. הנתונים מעוצבים כ- JSON. המטען מורכב מהתכונות הנראות ב- GPSD. תג.fix פועל כמו תמונת מצב של הנתונים הנוכחיים ושולח את זה לממשק ה- API. הדבר נעשה על ידי request.post ומשתמש במפתח ה- URL ובמפתח ה- API. ההדפסה (r.status_code) מופקת למשתמש, כדי לדעת אם הנתונים הסתדרו כראוי. Time.sleep (0.5) הוא התדירות שבה הנתונים מתפרסמים (תמונה 3)

הקוד ניתן למצוא כאן: Github

שלב 4: דף אינטרנט לפרויקט

דף אינטרנט לפרויקט
דף אינטרנט לפרויקט

בקטע זה נדבר על האופן שבו יצרנו את דף האינטרנט שלנו המציג את הנתונים ומידע נוסף אודות הפרויקט. האתר בנוי עם HTML, CSS ו- JS. ראשית השתמשנו ב- Bootstrap 4.0, שהיא ספרייה עבור HTML, css ו- JS. הוא מגיע עם הרבה פונקציות שעוזרות לך לבנות את האתר שלך. השתמשנו בו עבור סרגל הניווט בחלקו העליון, כמו גם את הגדרת השורה והעמודה שאיתה האתר בנוי. אז יש לנו עוד סקריפט css קטן השולט בצבעי הרקע והכותרות. עד אז השתמשנו בספרייה בשם lightbox, כך שתוכל ללחוץ על התמונות והן צצות. תוכן האתר מכיל מפת גוגל, טבלת נתונים, סרטון של המכונית בפעולה וקישור לדף זה ממש.

מפת גוגל היא המעניינת ביותר. המפה נטענת באמצעות ממשק API של גוגל, שם מוכנס מפתח API ייחודי כדי שתעבוד. הנתונים מוזרמים למפה במרווח של 500ms. עשינו פונקציה שבה 100 נקודות הנתונים האחרונות במאגר הנתונים מוצגות כסמנים, כך שתוכל לעקוב אחר המקום בו הייתה המכונית. זה נעשה באמצעות מה שנקרא שיחת AJAX.

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

הקוד ניתן למצוא כאן: Github

מוּמלָץ: