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

לוח מחוונים לאופנוע פטל: 9 שלבים (עם תמונות)
לוח מחוונים לאופנוע פטל: 9 שלבים (עם תמונות)

וִידֵאוֹ: לוח מחוונים לאופנוע פטל: 9 שלבים (עם תמונות)

וִידֵאוֹ: לוח מחוונים לאופנוע פטל: 9 שלבים (עם תמונות)
וִידֵאוֹ: שילמנו $850 עבור היחידה הזו והיא הייתה מלאה במלחמות אחסון סמים 2024, יולי
Anonim
לוח מחוונים לאופנוע Raspberry Pi
לוח מחוונים לאופנוע Raspberry Pi

כסטודנט טכנולוגיית מולטימדיה ותקשורת בהווסט קורטרייק, נאלצתי ליצור פרויקט IoT משלי. זה ישלב את כל המודולים שבוצעו בשנה הראשונה לפרויקט אחד גדול. מכיוון שאני רוכב הרבה על האופנוע שלי בזמני הפנוי, החלטתי להשתמש בכישורי הנרכשים שלי ב- MCT tu כדי לבנות משהו לאופנוע שלי: לוח מחוונים חכם.

MotoDash הוא לוח מחוונים המופעל על ידי Raspberry Pi המיועד לרוכבי אופנוע קנאים שנותן לרוכב את היכולת לעקוב אחר הביצועים שלהם.

מהן התכונות של לוח המחוונים הזה?

  • צפייה בזווית ההטיה הנוכחית
  • צפייה בתאוצה הנוכחית
  • יכולת מעקב אחר טמפרטורת השמן
  • עבור אוטומטית לנושא כהה בעת רכיבה בחושך
  • רשום נתונים של הנסיעות שלך וצפה בסטטיסטיקות משלך

אספקה

יחידת מחשוב ראשית:

פטל פטל זהו הבקר הראשי של המערכת

מכשירי חשמל:

  • מטען USB לאופנוע 12V-5V ספק כוח ראשי ל- RPi
  • ממסר התנגדות 4 פינים 12V החלף להפעלה/כיבוי של מעגל החשמל של ה- RPi
  • לוח לחם עם חוטי מגשר (אופציונלי) לבדיקה ואב טיפוס
  • סט נגדים

    צבעים שונים של חוט 0.2 מ"מ

  • Breakout Pi plus זהו לוח אב טיפוס שבו תוכלו להלחם את כל הרכיבים שלכם. הוא עשוי להתאים ישירות על גבי ה- Raspberry Pi, כך שמידות הפרויקט נשארות למינימום.

חיישנים ומודולים:

  • חיישן טמפרטורה חד-חוטי DS18B20 עמיד למים חיישן טמפרטורת שמן

  • חיישן הטיל/תאוצה Gyro 3 Axes MPU6050 חיישן הטיה/הדבקה
  • נגד תלוי אור (LDR)
  • MCP3008-8 ערוצים ADC של 10 סיביות עם ממשק SPI

    צג TFT SPI (או כל צג LCD אחר שמתאים לצרכים שלך)

    LED RGB

מַעֲטֶפֶת:

  • קופסת פלסטיק
  • מארז פאי פטל

כלים:

  • מלחם והלחמה
  • ברגים ומרווחים 2.5 מ"מ
  • מחברי כבלים עמידים למים
  • דבק מגע

שלב 1: אב טיפוס

אב טיפוס
אב טיפוס
אב טיפוס
אב טיפוס

לפני שנעשה הכל קבוע, נרכיב את הפרויקט על קרש לחם. ניתן לדלג על שלב זה אם אתה בטוח לחלוטין שלא תעשה טעויות. ניתן למצוא את תוכנית החשמל/קרש הלוח במסמך ה- PDF למטה. חבר את המעגל בדיוק כפי שמתואר. הקפד להשתמש רק בסיכה 3.3V ולא בסיכת 5V ב- RPi. כמו כן לפני שתפעיל את פטל הפטל בדוק שוב את המעגל שלך. וודא שאין מכנסיים קצרים!

שלב 2: הכנת ה- Raspberry Pi

הכנת ה- Raspberry Pi
הכנת ה- Raspberry Pi

קודם כל, אנחנו הולכים להקים את ה- Raspberry Pi. ה- Raspberry Pi הוא מחשב מיני המסוגל להריץ מערכת הפעלה משלו. עבור פרויקט זה, היא אחראית על עיבוד sensordata, אירוח האתר, הפעלת ה- backend ומסד הנתונים, …

1. התקן תמונה Raspbian מותאמת אישית

התמונה שסופקה כבר מכילה את חבילות התוכנה הדרושות להפעלת פרויקט זה:

  • אפאצ'י לממשחת האתר
  • MariaDB עבור מסד הנתונים
  • PhpMyAdmin לתפעל את מסד הנתונים
  • הרשאות מותאמות אישית למניעת בעיות

ניתן להוריד את התמונה המותאמת אישית מכאן.

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

לאחר התקנת התמונה, חבר את ה- Raspberry Pi למחשב האישי באמצעות כבל אתרנט. כעת תוכל להשתמש בלקוח SSH כדי להתחבר אליו בכתובת ה- IP 169.254.10.1

נוהג טוב להגדיר מיידית סיסמה חדשה באמצעות הפקודה passwd

2. הגדרת AP אלחוטי

כאשר הפרויקט יסתיים, אנו רוצים להיות מסוגלים להתחבר ל- RPi באמצעות wifi, לכן אפשר להפוך אותו ל- AP אלחוטי. ניתן למצוא כאן הדרכה בנושא.

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

3. הפעלת ממשקים

עבור אל raspi-config

sudo raspi-config

עבור לאפשרויות הממשק והפעל את חוט אחד, SPI ו- I2C והפעל מחדש את ה- Pi

3. הגדרת דרייברים לתצוגה

אתחול התצוגה

ערוך את הקובץ /etc /modules

sudo nano /etc /modules

הוסף את 2 השורות הבאות

spi-bcm2835fbtft_device

כעת ערוך /etc/modprobe.d/fbtft.conf

sudo nano /etc/modprobe.d/fbtft.conf

הוסף את השורה הבאה

אפשרויות fbtft_device name = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 rotate = 90 speed = 80000000 fps = 60

אתחל את הפי. אם אתה רואה את התאורה האחורית של התצוגה דולקת הכל הלך כשורה. זה יאתחל את התצוגה בכל פעם שה- Pi יתחיל, אולם הוא יציג רק מסך שחור כעת. כדי להציג את תוכן ה- Pi בתצוגה, עלינו להעתיק את תוכן המסך הראשי אל ה- LCD הקטן. לשם כך נשתמש בשירות שנקרא 'fbcp'.

התקנת שירות fbcp

sudo apt-get להתקין cmake

שיבוט git

cd rpi-fbcp

mkdir build

בניית תקליטורים/

cmake..

עשה

sudo התקן fbcp/usr/local/bin/fbcp

כעת התקנו את השירות. עם זאת, מכיוון שאנו משתמשים ב- Pi ללא ראש, אין מסך זמין להעתקת תוכן ממנו. כדי לאלץ את ה- Pi להוציא תוכן מסך, ערוך /boot/config.txt

sudo nano /boot/config.txt

מצא את הערות אלה או הוסף אותן או הוסף אותן לקובץ זה:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

הפעל מחדש את ה- RPi ובדוק את שירות fbcp על ידי הקלדת fbcp במסוף. עכשיו אתה אמור לראות את תוכן המסך על ה- LCD.

מפעיל fbcp בעת ההפעלה

ערוך /etc/rc.local והוסף את השורה הבאה בין כתובת ה- ip לבין קו היציאה

fbcp &

כעת התצוגה אמורה להידלק בכל פעם שה- RPi מופעל

שלב 3: מסד נתונים

מאגר מידע
מאגר מידע

כדי להיכנס ולשמור sensordata עיצבתי מסד נתונים משלי המכיל 4 טבלאות. תרשים EER מוצג בתמונה למעלה.

1. מכשירים

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

2. פעולות

טבלה זו מאחסנת פעולות עבור חיישן שונה. פעולה אחת תמיד מקושרת לחיישן מסוים. לדוגמה: הפעולה 'TEMP' מקושרת למכשיר המודד טמפרטורה. זה יהיה חיישן הטמפרטורה של 1 חוטים.

3. היסטוריה

טבלה זו מכילה את כל יומני החיישנים. לכל יומן יש מזהה פעולה, ערך, חותמת זמן ו- rideid

4. טרמפים

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

כדי לקבל מסד נתונים זה ב- Raspberry Pi שלך, עבור אל GitHub שלי ושכפל/הורד את המאגר. מתחת למסד הנתונים תמצאו 2 קבצי.sql. הפעל את אלה ב- PhpMyAdmin או MySQL workbench. כעת מסד הנתונים צריך להיות ב- RPi שלך.

שלב 4: סוף אחורי

אם עדיין לא עשית זאת, עבור אל GitHub שלי ושכפל/הורד את המאגר. מתחת לתיקייה Backend תמצא את ה- backend המלא לפרויקט.

התיקייה מכילה שיעורים לקריאת חיישני תחת /עוזרים, קבצים לתקשורת עם מסד הנתונים תחת /מאגרים, והיישום הראשי ממוקם בשורש בשם app.py.

התקנת חבילות Python

לפני שננסה להריץ משהו, עלינו להתקין תחילה כמה חבילות לפייתון. היכנס למסוף ה- RPi שלך והקלד את הפקודות הבאות:

pip3 התקן את mysql-connector-python

pip3 התקן flask-socketio

pip3 התקן בקבוקונים

pip3 התקן gevent

pip3 התקן gevent-websocket

הערה חשובה: אם שינית את סיסמת Mariadb/Mysql שלך, שנה את הסיסמה ב- config.py!

בדוק את הקצה האחורי

הפעל את app.py באמצעות מתורגמן python3 (/usr/bin/python3). וודא שאין טעויות.

הפעלת ה- backend על האתחול

ערוך את motoDash_backend.service ושנה את YOURFILEPATH לנתיב שבו המאגר נשמר.

כעת העתק קובץ זה אל/etc/systemd/system/

sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.

עכשיו ה backend יתחיל אוטומטית בכל פעם שה- RPi יתחיל.

שלב 5: חזית

חזיתי
חזיתי
חזיתי
חזיתי

כנסו ל Repo GitHub. העתק את התוכן של ספריית Frontend אל/var/www/html.

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

הערה: האתר מגיב, כך שתוכל להשתמש בו גם בנייד וגם בשולחן העבודה

שלב 6: הצגת לוח המחוונים בתצוגה

הצגת לוח המחוונים בתצוגה
הצגת לוח המחוונים בתצוגה

לחזית יש דף אינטרנט מוסתר משלו המשמש רק לתצוגה הקטנה. אנו נעשה את האתחול של Pi באופן אוטומטי לאתר זה במצב מסך מלא.

וודא שה- RPi מוגדר כ- autologin בשולחן העבודה ב- raspi-config תחת אפשרויות אתחול

sudo raspi-config

כעת היכנס לתיקיית התצורה הנסתרת וצור שם קובץ חדש

cd.config

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/הפעלה אוטומטית

הוסף את השורות הבאות בקובץ זה ושמור

@xscarver -no -splash

@xset s כבוי

@xset -dpms

@xset s noblank

@כרום-דפדפן-שגיאות-הפעלה-מושבת-התרסקות-בועה-השבתת-infobars-קיוסק-אינקוגניטו

עכשיו ה- Pi אמור לאתחל לדף אינטרנט זה בכל פעם

שלב 7: הלחמת האלקטרוניקה

הלחמת האלקטרוניקה
הלחמת האלקטרוניקה
הלחמת האלקטרוניקה
הלחמת האלקטרוניקה
הלחמת האלקטרוניקה
הלחמת האלקטרוניקה
הלחמת האלקטרוניקה
הלחמת האלקטרוניקה

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

כמה טיפים בזמן הלחמה:

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

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

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

שלב 8: ספק כוח

כדי להפעיל את ה- Raspberry Pi אנו הולכים להשתמש במתאם USB של 12V-5V. מתאם זה יתחבר לסוללת האופנוע. כדי לוודא שה- RPi מופעל כאשר מתג ההצתה מופעל, אנו הולכים להשתמש בממסר. הממסר יסגור את מעגל הכוח RPi כאשר הוא מזהה מתח מהפנס האחורי (הפנס האחורי תמיד נדלק בעת הפעלת ההצתה).

לקבלת הדרכה מפורטת יותר בנושא זה, עיין בדף זה: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -בקרים.1621/

שלב 9: דיור

דיור
דיור
דיור
דיור
דיור
דיור

דיור לתצוגה

לתצוגה, קח לעצמך קופסת פלסטיק קשיחה מסביב לגודל התצוגה. חותכים בו חור מרובע בגודל התצוגה וחורים תואמים כדי לדפוק את המסך. בחזית אתה צריך לקדוח 2 חורים נוספים עבור ה- RGB LED ו- LDR.

הרמתי את הקופסה הזו על גבי מחזיק סמארטפון באמצעות בורג.

חיישן טמפרטורה

לדיור חיישן הטמפרטורה, הדפסתי בתלת מימד מד מד המתאים לאופנוע שלי.

פאי פטל

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

מד תאוצה

הרכיב את מד התאוצה במקום מאובטח, רצוי על מסגרת האופנוע עצמה.

הערה:

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

מוּמלָץ: