תוכן עניינים:
- שלב 1: אספקה
- שלב 2: סכמטי וחיווט
- שלב 3: עיצוב מסד נתונים
- שלב 4: הכנת ה- Raspberry Pi
- שלב 5: העבר את הנדסת מסד הנתונים שלנו ל- RPi
- שלב 6: הגדרת Bluetooth ב- RPi שלנו
- שלב 7: כתיבת ה- backend המלא
- שלב 8: כתיבת חזית (HTML, CSS ו- JavaScript)
- שלב 9: בניית התיק שלי והרכבת הכל ביחד
- שלב 10: כמה בעיות שהיו לי בדרך ליצירת רמקול ה- Slimbox …
וִידֵאוֹ: Slimbox - רמקול Bluetooth חכם !: 10 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
שלום!
עבור פרויקט בית הספר שלי ב- MCT Howest Kortrijk, הכנתי מכשיר רמקול Bluetooth חכם עם חיישנים שונים, כולל LCD וטבעת NeoPixel RGB. הכל פועל ב- Raspberry Pi (מסד נתונים, שרת אינטרנט, Backend).
אז במדריך הזה אני אראה לכם איך הכנתי את הפרויקט הזה תוך 3 שבועות, שלב אחר שלב, אז אם מישהו מכם רוצה לשחזר את הפרויקט שלי, תוכלו לעשות זאת בקלות!
זו גם ההנחיה הראשונה שלי, אם יש לך שאלות, אנסה לענות עליהן במהירות האפשרית!
GitHub שלי:
שלב 1: אספקה
חיישן טמפרטורה DS18B20
ה- DS18B20 הוא חיישן בעל חוט אחד המודד את הטמפרטורה, המיוצר על ידי Maxim Integrated. ישנם 2 סוגים של חיישני DS18B20, הרכיב בלבד (בו השתמשתי) והגרסה העמידה למים, שהיא הרבה יותר גדולה, אבל זה לא מה שהייתי צריך לפרויקט שלי, אז השתמשתי ברכיב בלבד. החיישן יכול למדוד את הטמפרטורה בטווח של -55 ° C עד +125 ° C (-67 ° F עד +257 ° F) ויש לו דיוק של 0.5 ° C מ -10 ° C עד +85 ° C. יש לו גם רזולוציה הניתנת לתכנות בין 9 סיביות ל -12 סיביות.
גליון נתונים:
חיישן פוטנציומטר
פוטנציומטר הוא נגד בעל שלושה מסופים הניתן לכוונון ידני על ידי סיבוב החלק העליון של החיישן. מיקומו של החלק העליון קובע את מתח המוצא של הפוטנטיומטר.
מד תאוצה LSM303 + פריצת מצפן
לוח הפריצה LSM303 הוא שילוב של מד תאוצה משולש ציר ומגנטומטר / מצפן, המיוצר על ידי Adafruit. הוא משמש עם ממשק I2C של ה- Raspberry Pi.
סקירה כללית:
גליון נתונים:
MCP3008
כדי לקרוא את הנתונים מהפוטנציומטר שלי השתמשתי ב- MCP3008, שהוא ממיר אנלוגי לדיגיטלי בן 8 ערוצים עם ממשק SPI והוא די קל לתכנת.
גליון נתונים:
רמקול - קוטר 3” - 8 אוהם 1 ואט
זהו חרוט הרמקולים שבחרתי לאחר חישוב המתח והאמפר שהוא יזדקק לו והתאמה מושלמת לפרויקט Raspberry Pi שלי, המיוצר על ידי Adafruit.
סקירה כללית:
מגבר מונו מסוג MA298357 I2S Class-D
זהו המגבר שמגיע עם הרמקול, לא רק שהוא מגבר, הוא גם ממיר דיגיטלי לאנלוגי I2S, כך שהוא גם מתאים באופן מושלם למערכת הרמקולים והאודיו שלי.
סקירה כללית:
גליון נתונים:
ארדואינו אונו
ה- Arduino Uno הוא לוח מיקרו-בקר בעל קוד פתוח המבוסס על הבקר Microchip ATmega328P, המיוצר על ידי Arduino.cc. ללוח Uno יש 14 סיכות דיגיטליות, 6 סיכות אנלוגיות וניתן לתכנות במלואן עם תוכנת Arduino IDE
סקירה כללית:
שינוי רמות
זהו לוח קטן הדואג לתקשורת בין ה- Arduino Uno ו- Raspberry Pi לבין המתחים השונים, Arduino: 5V ו- Raspberry Pi: 3.3V. זה נחוץ מכיוון שטבעת NeoPixel מחוברת ל- Arduino ופועלת שם, בעוד שכל שאר הדברים פועלים ב- Raspberry Pi.
טבעת RGB NeoPixel
זוהי טבעת קטנה מלאה 12 נוריות RGB (אתה יכול לקנות טבעות גדולות יותר עם יותר נוריות RGB, אם אתה רוצה). אשר במקרה שלי מחובר ל- Arduino Uno, אך יכול גם להיות מחובר למכשירים רבים אחרים והוא ממש פשוט לשימוש.
סקירה כללית:
צג LCD 16X2
השתמשתי בתצוגת LCD בסיסית להדפסת הטמפרטורה, הנפח וכתובת ה- IP שלי.
גליון נתונים:
Raspberry Pi 3B+ ו -16 GB כרטיס SD
כל הפרויקט שלי פועל ב- Raspberry Pi 3B+ שלי עם תמונה מוגדרת, שאעזור לך להגדיר אותה מאוחר יותר בהוראה שלי.
GPIO T-Part, 2 לוחות לחם והרבה חוטים
כדי לחבר את כל מה שהייתי צריך לוחות לחם וגופנים, השתמשתי ב- GPIO T-part כך שיהיה לי יותר מקום וברור איזה סיכה הוא איזה.
שלב 2: סכמטי וחיווט
עבור סכמטי שלי השתמשתי Fritzing, זוהי תוכנה שאתה יכול להתקין אשר מאפשר לך ליצור סכמטי ממש קל בסוגים שונים של תצוגות.
הורד את Fritzing:
אז הקפד לחבר הכל בצורה הנכונה! במקרה שלי צבעי החוטים אינם זהים לסכימה.
שלב 3: עיצוב מסד נתונים
אנו אוספים הרבה נתונים משלושת החיישנים המחוברים, ולכן אנו זקוקים למאגר מידע בו ניתן לאחסן את הנתונים והחיישנים. בהמשך נראה כיצד להגדיר את מסד הנתונים ב- Raspberry Pi וכיצד להוסיף לו נתונים. אבל קודם כל יש ליצור את עיצוב מסד הנתונים או ERD (Diagram Relationship Diagram) וגם שלי היה מנורמל עם 3NF. לכן פיצלנו את החיישנים לשולחן אחר ועובדים עם תעודות זהות.
בסך הכל זהו עיצוב בסיסי וקל ממש לעבודה איתו.
שלב 4: הכנת ה- Raspberry Pi
אז עכשיו כשיש לנו כמה יסודות של הפרויקט. בואו נתחיל עם ה- Raspberry Pi!
תצורת כרטיס SD
ראשית, אתה צריך כרטיס SD בנפח 16 ג'יגה בו תוכל לשים את התמונה שלך ותוכנית להעלות תמונת התחלה לכרטיס ה- SD.
תוכנה:
תמונת התחלה:
אז ברגע שהורדות אלו:
- הכנס את כרטיס ה- SD שלך למחשב.
- פתח את Win32 שהורדת זה עתה.
- בחר את קובץ התמונה Raspbian שהורדת גם זה עתה.
- לחץ על 'כתוב' למיקום כרטיס ה- SD שלך.
הדבר עשוי להימשך זמן מה, תלוי בחומרה שלך. ברגע שזה נעשה, אנו מוכנים לבצע כמה התאמות אחרונות לפני הכנסת התמונה ל- RPi שלנו.
- עבור לספריית כרטיס ה- SD שלך, חפש את הקובץ בשם 'cmdline.txt' ופתח אותו.
- כעת הוסף 'ip = 169.254.10.1' באותה שורה אחת.
- שמור את הקובץ.
- צור קובץ בשם 'ssh' ללא סיומת או תוכן.
עכשיו אתה יכול להוציא בבטחה את כרטיס ה- SD מהמחשב שלך ולהכניס אותו ל- Raspberry Pi ללא חשמל. לאחר שכרטיס ה- SD נכנס ל- RPI, חבר כבל LAN מהמחשב שלך ליציאת ה- RPi LAN, לאחר חיבור זה תוכל לחבר את הכוח ל- RPi.
עכשיו אנחנו רוצים לשלוט ב- Raspberry Pi שלנו, זה נעשה באמצעות מרק.
תוכנת מרק:
לאחר ההורדה, פתח את Putty והכנס את ה- IP '169.254.10.1' והיציאה '22' וסוג החיבור: SSH. כעת נוכל סוף סוף לפתוח את ממשק שורת הפקודה שלנו ולהתחבר באמצעות פרטי ההתחברות של המתנע -> משתמש: pi וסיסמה: פטל.
Raspi-config
sudo raspi-config
מה שבאמת חשוב לפרויקט זה הוא סעיף הממשקים, עלינו לאפשר הרבה ממשקים שונים, לאפשר את כל הממשקים הבאים:
- חוט אחד
- SPI
- I2C
- סידורי
כעת, לאחר שסיימנו עם raspi-config, בואו ננסה ליצור חיבור לאינטרנט.
חיבור אינטרנט אלחוטי
ראשית, עליך להיות הבסיס לפקודות הבאות
sudo -i
ברגע שאתה שורש, השתמש בפקודה הבאה. SSID הוא שם הרשת והסיסמה שלך היא ללא ספק הסיסמה.
wpa_passphrase "ssid" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf
במקרה שעשית טעות, תוכל לבדוק, לעדכן או למחוק רשת זו על ידי הזנת קובץ זה:
nano /etc/wpa_supplicant/wpa_supplicant.conf
אז לאחר שנכנסנו לרשת שלנו, בואו להיכנס לממשק לקוח WPA
wpa_cli
בחר את הממשק שלך
ממשק wlan0
טען מחדש את הקובץ
להגדיר מחדש
ולבסוף אתה יכול לראות אם אתה מחובר היטב:
ip א
עדכון ושדרוג
כעת, לאחר שאנו מחוברים לאינטרנט, עדכון החבילות שכבר מותקנות יהיה צעד חכם, אז בואו נעשה זאת תחילה לפני התקנת חבילות אחרות.
עדכון sudo apt-get
sudo apt-get upgrade
מאגר הנתונים של MariaDB
התקן את שרת מסד הנתונים של MariaDB:
sudo apt-get להתקין mariadb-server
שרת האינטרנט Apache2
התקן את שרת האינטרנט Apache2:
sudo apt להתקין apache2
פִּיתוֹן
התקן את פייתון:
עדכון-חלופות-התקן/usr/bin/python python /usr/bin/python2.7 1
עדכון-חלופות-התקן/usr/bin/python python/usr/bin/python3 2
חבילת פייתון
יהיה עליך להתקין את כל החבילות האלה כדי שהמשקוף יפעל בצורה מושלמת:
- בקבוק
- בקבוקי-קורס
- Flask-MySql
- Flask-SocketIO
- PyMySQL
- בקשות
- Python-socketio
- RPi. GPIO
- Gevent
- שקע Gevent-webs
- אוג'סון
- Wsaccel
ספריית רמקולים
התקן את ספריית הרמקולים מ- Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | לַחֲבוֹט
הגיע הזמן לאתחל מחדש
sudo אתחול מחדש
שלב 5: העבר את הנדסת מסד הנתונים שלנו ל- RPi
עכשיו לאחר שהתקנו את כל מה שהיינו צריכים, בואו נשים את מסד הנתונים שעיצבנו על ה- Raspberry Pi שלנו!
אז קודם כל עלינו להעביר קדימה את מהנדס הנתונים שלנו בספסל העבודה של MySql, תוך כדי כך, העתק את קוד הנתונים המלא שלך ומחק את כל המילים 'הנראות' בו. אז ברגע שזה מועתק, אפשר לפתוח שוב מרק, להיכנס ולהקליד:
sudo mysql
ועכשיו אתה בממשק mysql, העתק בו את קוד מסד הנתונים שלך והקש enter.
עכשיו רק צריך ליצור משתמש
צור משתמש 'משתמש' המזוהה על ידי 'משתמש';
להעניק את כל ההפרשות על *. * ל'משתמש ';
עכשיו אתחל מחדש.
אז הכל צריך להיות מוגדר עכשיו, אתה יכול גם ליצור חיבור עם Pi ו- MySql Workbench שלך, כך שקל יותר לבדוק את כל הנתונים בטבלאות שלך.
שלב 6: הגדרת Bluetooth ב- RPi שלנו
אנו יוצרים רמקול בלוטות ', אז זה אומר שהתקשורת נשלחת מהמקור שלנו ל- Raspberry Pi ואפשר לעשות את זה די קל, בואו ניכנס לזה!
המקור שלי לחיבור ה- Bluetooth:
מסיר את ה- bluealsa שכבר פועל
sudo rm/var/run/bluealsa/*
הוסף תפקיד כיור פרופיל A2DP
סודו bluealsa -p a2dp -כיור &
פתח את ממשק ה- Bluetooth והפעל את ה- Bluetooth שלך
bluetoothctl
פועל
הגדר סוכן זיווג
סוכן על
סוכן ברירת מחדל
הפוך את ה- RPi שלך לגילוי
ניתן לגלות ב-
- עכשיו ממכשיר ה- Bluetooth שלך, חפש את ה- RPi והתחבר אליו.
- אשר את ההתאמה בשני המכשירים, הקלד 'כן' במרק שלך.
- אשר שירות A2DP, הקלד שוב 'כן'.
- ברגע שזה נעשה, אנו יכולים לסמוך על המכשיר שלנו, כך שלא נצטרך לעבור את כל זה בכל פעם שאנו רוצים להתחבר
אמון XX: XX: XX: XX: XX: XX (כתובת ה- bluetooth שלך ממכשיר המקור שלנו)
אם אתה רוצה שה- RPi שלך ימשיך להיות גלוי, זו בחירה שלך, אבל אני מעדיף לכבות אותו שוב, כך שאנשים לא יוכלו להתחבר לתיבה שלך
ניתן לגלות
אז נוכל לצאת ממשק ה- Bluetooth שלנו
יְצִיאָה
ולבסוף ניתוב השמע שלנו: העברת מכשיר המקור שלנו ל- RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
כעת המכשיר שלנו מחובר במלואו לפטל שלנו ואתה אמור להיות מסוגל לנגן מדיה ממכשיר המקור שלך ברמקול ה- Pi.
שלב 7: כתיבת ה- backend המלא
אז עכשיו ההתקנה הסתיימה, סוף סוף אנחנו יכולים להתחיל לכתוב את תוכנית backend שלנו!
השתמשתי ב- PyCharm לכל התמיכה האחורית שלי, אתה רק צריך לוודא שפרויקט PyCharm שלך מחובר ל- Raspberry Pi שלך, פירוש הדבר שנתיב הפריסה שלך מוגדר בהגדרות שלך והתקנת את כל החבילות הדרושות לנו, אמור כבר להתבצע בשלב 4.
השתמשתי בשיעורים שלי וכל אלה כלולים ב- GitHub שלי. הקישור נמצא בהקדמה למקרה שפיספסת;)
בקובץ ה- backend שלי השתמשתי בשיעורי שרשור, כך שהכל יכול לפעול בו זמנית וזה לא יפריע אחד לשני. ובתחתית קיבלת את כל המסלולים כדי שנוכל בקלות לקבל נתונים בחזית שלנו.
שלב 8: כתיבת חזית (HTML, CSS ו- JavaScript)
כעת, כשהסיום מסתיים, נוכל להתחיל לכתוב את מלוא הפרונט-אנד.
HTML & CSS נעשה די קל, ניסיתי קודם כל לעבוד בנייד כמה שאפשר, מכיוון שלרוב הפעמים אנו מתחברים ל- Bluetooth ממכשיר נייד, יהיה קל יותר לשלוט בלוח המחוונים הנייד.
אתה יכול לעצב את לוח המחוונים שלך בכל דרך שתרצה, אני פשוט אשאיר את הקוד והעיצוב שלי כאן, אתה יכול לעשות מה שאתה רוצה!
וג'אווסקריפט לא היה כל כך קשה, עבד עם כמה GET ממסלולי הגב שלי, המון מאזיני אירועים וכמה מבני שקע.
שלב 9: בניית התיק שלי והרכבת הכל ביחד
התחלתי עם כמה סקיצות של איך אני רוצה שהתיק יראה, משהו חשוב הוא שהוא צריך להיות גדול מספיק כדי שהכל יתאים, מכיוון שיש לנו מעגל גדול להכניס למארז.
הכנתי את המארז מעץ, אני חושב שזה הכי קל לעבוד איתו כשאין לך כל כך הרבה ניסיון בבניית מארזים ויש לך גם הרבה דברים שאתה יכול לעשות איתו.
התחלתי ממארז לבקבוקי יין ופשוט התחלתי לנסר את העץ. ברגע שהיה לי את המארז הבסיסי שלי, הייתי רק צריך לקדוח בו חורים (הרבה בחזית המארז, כפי שאתה יכול לראות בתמונות: P) ולשים בו כמה מסמרים, זה ממש מקרה בסיסי, אבל זה נראה די מגניב ומתאים מושלם.
וברגע שהתיק נעשה, הגיע הזמן לחבר את הכל, כפי שניתן לראות בתמונה האחרונה! זה די בלגן בתוך הקופסה, אבל הכל עובד ולא היה לי הרבה יותר מקום, אז אני ממליץ לך אולי ליצור מארז גדול יותר אם אתה משחזר את הפרויקט שלי.
שלב 10: כמה בעיות שהיו לי בדרך ליצירת רמקול ה- Slimbox …
שגיאות Bluetooth ו- bluealsa
בכל פעם שרציתי לנגן מוזיקה או להתחבר ל- bluetooth, קיבלתי שגיאות מ- bluetooth ו- bluealsa. עשיתי מחקר בנושא וזה היה הפתרון לבעיה שלי. אז מסיבה כלשהי ה- bluetooth שלי נחסם ברכות, לא בטוח אם זה חסום רך סטנדרטי. אתה יכול לראות אם זה על ידי הקלדת הפקודה הבאה במרק שלך.
רשימת rfkill
אז אם הוא חסום רך, פשוט השתמש בזה:
rfkill בטל חסימת Bluetooth
ואולי תרצה לאתחל לאחר מכן, המקור שלי:
בעיות בחיבור סדרתי
אז עוד בעיה גדולה שהייתה לי היא שאני לא יכול ליצור שום קשר עם הארדואינו שלי באמצעות מחליק הרמות, לאחר חיפושים כלשהם גיליתי שה- '/dev/ttyS0' שלי נעלם וזה יכול להיות בגלל עדכון ה- RPi שלך. מצאתי גם פתרון בנושא
יהיה עליך להפעיל מחדש את המסוף הטורי באמצעות raspi-config, לאתחל מחדש ולאחר מכן להסיר באופן ידני את הסיביות "console = serial0, 115200" מ- '/boot/cmdline.txt'. אשר כי 'enable_uart = 1' נמצא ב- ' /boot/config.txt 'והפעל מחדש. זה אמור להחזיר את יציאת ttyS0 שלך, כמו גם את הקישור הרך'/dev/serial0 'אליו.
מקור:
מוּמלָץ:
בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)
בית חכם של Raspberry Pi: יש כבר כמה מוצרים שהופכים את הדירה שלך לחכמה יותר, אך רובם פתרונות קנייניים. אבל למה אתה צריך חיבור לאינטרנט כדי להחליף אור עם הסמארטפון שלך? זו הייתה סיבה אחת בשבילי לבנות סמאר משלי
מטריקס LED חכם (INTERAFT CONTROLLED LED MARTRIX) (ADAFRUIT + ESP8266 + WS2812): 8 שלבים (עם תמונות)
DIY INTERNET CONTROLLED SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): להלן ההתקדמות השנייה שלי לפרויקט שאני נרגש מאוד להראות לכם. מדובר על מטריקס LED חכם DIY שיאפשר לך להציג עליו נתונים, כגון סטטיסטיקות YouTube, סטטיסטיקות הבית החכם שלך, שכן טמפרטורה, לחות, יכולים להיות שעון פשוט, או פשוט להראות
טלפון חכם Verander Een Ongebruikte בתצוגה דקה: 6 שלבים (עם תמונות)
Verander Een Ongebruikte סמארטפון בתצוגה דקה: הדרכה זו היא בהולנדית, עיין כאן לגרסה האנגלית. צור אחד דגמי תצוגה דקים עם גיליונות אלקטרוניים של Google ובנייר דף זה פשוט הדרכה פשוטה
שעון מעורר חכם: שעון מעורר חכם המיוצר עם פטל פי: 10 שלבים (עם תמונות)
שעון מעורר חכם: שעון מעורר חכם המיוצר עם פטל פאי: האם אי פעם רצית שעון חכם? אם כן, זה הפתרון בשבילך! הכנתי שעון מעורר חכם, זהו שעון שתוכל לשנות את זמן ההתראה בהתאם לאתר. כאשר האזעקה תיגמר, ישמע צליל (זמזם) ושתי נורות יעיפו
חיוג חכם - טלפון חכם מסורתי לתיקון אוטומטי: 8 שלבים
חיוג חכם-טלפון חכם מסורתי לתיקון אוטומטי: חיוג חכם הוא טלפון חכם המתקן אוטומטית שנוצר לקשישים בעלי צרכים מיוחדים, והוא מאפשר לקשישים לחייג ישירות מהטלפונים המסורתיים שהם רגילים אליהם. רק בהתנדבות במרכז לגיל הזהב המקומי אני