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

רמקול מצב רוח- רמקול רב עוצמה לנגינת מצב רוח על סמך טמפרטורת הסביבה: 9 שלבים
רמקול מצב רוח- רמקול רב עוצמה לנגינת מצב רוח על סמך טמפרטורת הסביבה: 9 שלבים

וִידֵאוֹ: רמקול מצב רוח- רמקול רב עוצמה לנגינת מצב רוח על סמך טמפרטורת הסביבה: 9 שלבים

וִידֵאוֹ: רמקול מצב רוח- רמקול רב עוצמה לנגינת מצב רוח על סמך טמפרטורת הסביבה: 9 שלבים
וִידֵאוֹ: כשמפתיעים אותך בקניון🕺 2024, יוני
Anonim
רמקול מצב הרוח- רמקול רב עוצמה למוזיקת מצב רוח שישמיעו אותו על בסיס טמפרטורת הסביבה
רמקול מצב הרוח- רמקול רב עוצמה למוזיקת מצב רוח שישמיעו אותו על בסיס טמפרטורת הסביבה

שלום!

עבור פרויקט בית הספר שלי ב- MCT Howest Kortrijk, הכנתי רמקול מצב רוח זהו מכשיר רמקול Bluetooth חכם עם חיישנים שונים, מצלמת LCD ו- WS2812b כלול. רַמקוֹל. הכל פועל ב- Raspberry Pi (מסד נתונים, שרת אינטרנט, Backend).

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

ההנחיה הזו היא הראשונה שלי שכתבתי אז אם יש שאלות, אנסה לענות עליהן כמה שיותר מהר!

GitHub שלי:

שלב 1: אספקה

Raspberry Pi 3B ו- 16GB כרטיס SD

כל הפרויקט שלי פועל על ה- Raspberry Pi 3B שלי עם תמונה מוגדרת, אותה אסביר בשלב מאוחר יותר (שלב 4: הגדרת Raspberry Pi)

צג LCD 16X2

השתמשתי בתצוגת LCD בסיסית להדפסת הטמפרטורה, הבהירות וכתובת ה- IP שלי.

גליון נתונים:

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

ה- DS18B20 הוא חיישן בעל חוט אחד המודד את הטמפרטורה, המיוצר על ידי Maxim Integrated. ישנם 2 סוגים של חיישני DS18B20, הרכיב בלבד (בו השתמשתי) והגרסה העמידה למים, שהיא הרבה יותר גדולה, אבל זה לא מה שהייתי צריך לפרויקט שלי, אז השתמשתי ברכיב בלבד. החיישן יכול למדוד את הטמפרטורה בטווח של -55 ° C עד +125 ° C (-67 ° F עד +257 ° F) ויש לו דיוק של 0.5 ° C מ -10 ° C עד +85 ° C. יש לו גם רזולוציה הניתנת לתכנות בין 9 סיביות ל -12 סיביות.

גליון נתונים:

MCP3008

כדי לקרוא את הנתונים מחיישן LDR ו- PIR שלי השתמשתי ב- MCP3008, שהוא ממיר אנלוגי לדיגיטלי בן 8 ערוצים עם ממשק SPI והוא די קל לתכנת.

גליון נתונים:

חיישן תנועה PIR

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

גליון נתונים:

LDR

השתמשתי בפוטורזיסטור או ב- LDR (התנגדות ירידה באור, או נגד תלוי אור) כדי לזהות את רמת הבהירות של החדר שבו הוא נמצא. וכדי להפעיל גם את ה- Ledstrip שלי כשהוא כהה.

רמקול - קוטר 3” - 4 אוהם 3 ואט

זהו חרוט הרמקולים שבחרתי לאחר חישוב המתח והאמפר שהוא יזדקק לו והתאמה מושלמת לפרויקט 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. זה נחוץ כי רצועת הלד מחוברת ל- Arduino ופועלת שם, בעוד כל שאר הדברים פועלים ב- Raspberry Pi.

WS2812B - רצועת לד

זהו פס עם 60 נוריות RGB (אתה יכול לקנות רצועות ארוכות יותר עם יותר נוריות RGB, אם אתה רוצה). אשר במקרה שלי מחובר ל- Arduino Uno, אך יכול גם להיות מחובר למכשירים רבים אחרים והוא ממש פשוט לשימוש.

גליון נתונים:

GPIO T-Part, לוח אחד והרבה חוטים

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

שלב 2: סכמטי וחיווט

סכמטי וחיווט
סכמטי וחיווט
סכמטי וחיווט
סכמטי וחיווט

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

הורד את Fritzing:

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

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

עיצוב מסדי נתונים
עיצוב מסדי נתונים

אנו אוספים נתונים רבים מ -3 החיישנים (טמפרטורה מ- DS18B20, בהירות מ- LDR וסטטוס מחיישן PIR). אז הכי טוב לשמור את כל הנתונים האלה במסד נתונים. אסביר בשלב מאוחר יותר כיצד להגדיר את מסד הנתונים (שלב 5: העבר הנדסה של מסד הנתונים שלנו ל- RPi!) אך תחילה יש לבצע את התכנון או ה- ERD (Diagram Relationship Diagram). שלי היה מנורמל עם 3NF ולכן פיצלנו את הרכיבים ואת ההיסטוריה של הרכיבים לטבלה אחרת. אנו משתמשים במאגר המוסיקה כדי לעקוב אחר השירים שהאזינו להם.

בסך הכל זהו עיצוב בסיסי וקל ממש לעבודה איתו.

שלב 4: הגדרת פטל פטל

אז עכשיו כשיש לנו כמה יסודות של הפרויקט. בואו נתחיל בהגדרת ה- Raspberry Pi!

חלק 1: הגדרת כרטיס ה- SD

1) הורד את התוכנות והקבצים הנדרשים

עליך להוריד 2 תוכנות ומערכת הפעלה אחת כלומר Raspbian לתהליך השלם הזה. תוכנה ראשונה: התוכנה הראשונה היא Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

תוכנה שנייה: התוכנה השנייה היא פורמט כרטיס SD.

www.sdcard.org/downloads/formatter_4/

מערכת הפעלה Raspbian: זוהי מערכת ההפעלה העיקרית של ה- Pi.

www.raspberrypi.org/downloads/raspberry-pi-os/

חלץ את כל הקבצים לשולחן העבודה.

2) השג את כרטיס ה- SD ואת קורא הכרטיסים

קבל כרטיס SD מסוג 8GB לכל הפחות עם קורא כרטיסים. הכנס את הכרטיס לקורא הכרטיסים וחבר אותו ליציאת ה- USB.

3) פרמט את כרטיס ה- SD

פתח את עיצוב כרטיס ה- SD ובחר את הכונן.

לחץ על פורמט ואל תשנה אפשרויות אחרות.

בסיום העיצוב לחץ על אישור.

4) כתוב את מערכת ההפעלה על כרטיס ה- SD

פתח את win32diskimager.

עיון בקובץ.img של מערכת ההפעלה Raspbian שחולץ מהקובץ שהורד.

לחץ על פתח ולאחר מכן לחץ על כתיבה.

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

נ

5) ברגע שזה נעשה, אנו מוכנים לבצע כמה התאמות אחרונות לפני הכנסת התמונה ל- RPi שלנו.

עבור לספריית כרטיס ה- SD שלך, חפש את הקובץ בשם 'cmdline.txt' ופתח אותו.

כעת הוסף 'ip = 169.254.10.1' באותה שורה אחת.

שמור את הקובץ.

צור קובץ בשם 'ssh' ללא סיומת או תוכן. (הדרך הקלה ביותר היא ליצור קובץ txt ולהסיר את ה- txt לאחר מכן)

עכשיו כשהכל מותקן על כרטיס ה- SD אתה יכול להוציא אותו בבטחה מהמחשב שלך ולהכניס אותו ל- Raspberry Pi בלי לחבר את הכוח. לאחר שכרטיס ה- SD נכנס ל- RPI, חבר כבל LAN מהמחשב שלך ליציאת ה- RPi LAN, לאחר חיבור זה תוכל לחבר את הכוח ל- RPi.

חלק 2: הגדרת ה- RPi

מֶרֶק

עכשיו אנחנו רוצים להגדיר את ה- Raspberry Pi שלנו, זה נעשה באמצעות מרק.

תוכנת מרק:

לאחר ההורדה, פתח את Putty והכנס את ה- IP '169.254.10.1' והיציאה '22' וסוג החיבור: SSH.

כעת נוכל סוף סוף לפתוח את ממשק שורת הפקודה שלנו ולהתחבר באמצעות פרטי ההתחברות של המתנע -> משתמש: pi וסיסמה: פטל. (מומלץ לשנות אותו במהירות האפשרית. להלן מדריך כיצד:

Raspi-config

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

sudo raspi-config

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

  • חוט אחד
  • סידורי
  • I2C
  • SPI

זה היה כל מה שהיינו צריכים לעשות עם raspi-config

הוספת ה- WIFI שלך

ראשית, עליך להיות שורש כדי שהפקודה הבאה תהפוך לשורש

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 א

חלק 3: עדכון תוכנת התקנת RPi +

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

עדכון sudo apt-get

sudo apt-get upgrade

לאחר עדכון ה- RPi נצטרך להתקין את התוכנות הבאות:

מאגר הנתונים של MariaDB

sudo apt-get להתקין mariadb-server

שרת האינטרנט Apache2

sudo apt להתקין apache2

פִּיתוֹן

עדכון-חלופות-התקן/usr/bin/python python /usr/bin/python3.7 1 עדכון-חלופות-install/usr/bin/python python/usr/bin/python3 2

חבילת פייתון

יהיה עליך להתקין את כל החבילות האלה כדי שהמשקוף יפעל בצורה מושלמת:

  • בקבוק
  • בקבוקי-קורס
  • Flask-MySql
  • Flask-SocketIO
  • בקשות PyMySQL
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • שקע Gevent-webs

ספריית רמקולים

לשימוש ברמקול עם המגבר נצטרך להתקין ספרייה עבורו

תלתל -sS > | bash

Step 4: Reboot

After everything has been installed we will have to reboot the pi to make sure everything works correctly

sudo reboot

Step 5: Setting Up the Database to the RPi

הגדרת מסד הנתונים ל- RPi!
הגדרת מסד הנתונים ל- RPi!

עכשיו לאחר שהתקנו את כל מה שהיינו צריכים, בואו נשים את מסד הנתונים שעיצבנו על ה- Raspberry Pi שלנו!

לצורך הגדרת מסד הנתונים נצטרך לחבר את MySql ו- RPi. לשם כך נפתח את MySQLWorkbench ונעשה חיבור חדש. כשאתה מסתכל על התמונה תצטרך לשנות כדי לשנות את המידע שלך.

אם עדיין לא שינית כלום תוכל להשתמש ב- SSH pi ופטל, עבור mysql mysql ו- mysql.

כאשר משהו לא ברור תוכל לעקוב אחר הדרכה זו:

כדי לייצא את מסד הנתונים שלך זה צריך להיות קל יותר באמצעות PHPmyAdmin מכיוון שאתה יכול לקבל הרבה שגיאות בעת ביצוע זה עם MySql

שלב 6: הגדרת Bluetooth ב- RPi שלנו

אנו יוצרים רמקול מצב רוח, שנוכל להשתמש בו גם עם המוסיקה שלנו כך שזה יהיה קל יותר כאשר ה- RPi הוא

התחברתי ל- bluetooth עקבתי אחר הדרכה לכך שתוכל למצוא כאן:

scribles.net/streaming-bluetooth-audio-fr…

כתבתי כאן הכל גם לכל מי שרוצה לשחזר אותו

מסיר את ה- 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

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

שלב 7: כתיבת ה- backend המלא

אז עכשיו ההתקנה הסתיימה, סוף סוף אנחנו יכולים להתחיל לכתוב את תוכנית backend שלנו!

השתמשתי בקוד Visual Studio לכל התמיכה האחורית שלי, אתה רק צריך לוודא שפרויקט Visual Studio שלך מחובר ל- Raspberry Pi שלך, המשמעות היא שכבל ה- LAN שלך חייב להיות מחובר ל- RPi שלך ולחיבור SSH. (מידע על יצירת חיבור מרחוק ניתן למצוא כאן:

השתמשתי בשיעורים שלי וכל אלה כלולים ב- GitHub שלי.

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

שלב 8: כתיבת חזית (HTML, CSS ו- JavaScript)

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

HTML ו- CSS היו די קשים בשבילי. עשיתי כמיטב יכולתי להפוך אותו לנייד קודם כי אני יכול להתחבר אליו באמצעות בלוטות 'כדי לשנות את השירים באמצעות Spotify. כך שיהיה קל יותר לשלוט בלוח מחוונים נייד

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

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

שלב 9: בניית התיק שלי והרכבת הכל ביחד

בונים את התיק שלי ומרכיבים הכל ביחד
בונים את התיק שלי ומרכיבים הכל ביחד
בונים את התיק שלי ומרכיבים הכל ביחד
בונים את התיק שלי ומרכיבים הכל ביחד
בונים את התיק שלי ומרכיבים הכל ביחד
בונים את התיק שלי ומרכיבים הכל ביחד
בונים את התיק שלי ומרכיבים הכל ביחד
בונים את התיק שלי ומרכיבים הכל ביחד

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

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

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

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

מוּמלָץ: