فهرست مطالب:
- مرحله 1: لوازم
- مرحله 2: شماتیک و سیم کشی
- مرحله 3: طراحی پایگاه داده
- مرحله 4: رزبری پای را راه اندازی کنید
- Step 5: Setting Up the Database to the RPi
- مرحله 6: پیکربندی بلوتوث در RPi ما
- مرحله 7: نوشتن پشتیبان کامل
- مرحله 8: نوشتن Frontend (HTML ، CSS و JavaScript)
- مرحله 9: ساختن پرونده من و کنار هم قرار دادن آن
تصویری: Mood Speaker- یک بلندگوی قدرتمند برای پخش موسیقی Mood بر اساس دمای محیط: 9 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
سلام!
برای پروژه مدرسه من در MCT Howest Kortrijk ، من یک بلندگوی Mood تهیه کردم ، این یک بلندگوی بلوتوث هوشمند با سنسورهای مختلف ، یک LCD و WS2812b ledstrip است. بلندگو موسیقی را بر اساس دما پخش می کند ، اما می تواند به عنوان یک بلوتوث معمولی نیز استفاده شود گوینده. همه چیز بر روی Raspberry Pi (پایگاه داده ، وب سرور ، Backend) اجرا می شود.
بنابراین این دستورالعمل مرحله به مرحله است که چگونه این پروژه را در 3 هفته تحقق بخشیدم. بنابراین اگر می خواهید پروژه من را دوباره بسازید ، می توانید از راهنمای زیر پیروی کنید
این اولین موردی است که من نوشتم ، بنابراین اگر سوءاستفاده ای وجود داشته باشد ، سعی می کنم تا آنجا که می توانم به آنها پاسخ دهم!
GitHub من:
مرحله 1: لوازم
کارت SD رزبری پای 3B و 16 گیگابایت
کل پروژه من روی Raspberry Pi 3B با یک تصویر پیکربندی شده اجرا می شود ، که در مرحله بعد توضیح خواهم داد (مرحله 4: راه اندازی رزبری پای)
صفحه نمایش LCD 16x2
من از صفحه نمایش LCD اصلی برای چاپ دما ، روشنایی و آدرس IP خود استفاده کردم.
برگه اطلاعات:
سنسور دما DS18B20
DS18B20 یک سنسور تک سیم است که دما را اندازه گیری می کند و توسط Maxim Integrated تولید شده است. 2 نوع سنسور DS18B20 وجود دارد ، فقط جزء (که من از آن استفاده کردم) و نسخه ضد آب ، که بسیار بزرگتر است ، اما این چیزی نیست که من برای پروژه خود نیاز داشتم ، بنابراین من فقط از قطعه استفاده کردم. این سنسور می تواند دما را در محدوده 55- تا 125+ درجه سانتی گراد (67- درجه فارنهایت تا 257 درجه فارنهایت) اندازه گیری کند و دقت آن 0.5 درجه سانتی گراد از -10 تا 85 درجه سانتی گراد است. همچنین دارای وضوح قابل برنامه ریزی از 9 بیت تا 12 بیت است.
برگه اطلاعات:
MCP3008
برای خواندن اطلاعات LDR و PIR-sensor من از MCP3008 استفاده کردم که مبدل آنالوگ به دیجیتال 8 کانالی 8 بیتی با رابط SPI است و برنامه ریزی آن بسیار آسان است.
برگه اطلاعات:
سنسور حرکت PIR
برای تشخیص زمان ورود و خروج شخصی به اتاق من ، از سنسور مادون قرمز غیرفعال استفاده کردم زیرا استفاده از آنها آسان است و کوچک هستند.
برگه اطلاعات:
LDR
من از یک مقاومت نوری یا LDR (مقاومت کاهش نور ، یا مقاومت وابسته به نور) برای تشخیص سطح روشنایی اتاق استفاده کردم. و همچنین برای روشن کردن Ledstrip هنگام تاریک شدن اتاق.
بلندگو - قطر 3 اینچ - 4 اهم 3 وات
این مخروط بلندگو است که من بعد از محاسبه ولتاژ و آمپر مورد نیاز آن را انتخاب کردم و این برای پروژه Raspberry Pi من ، تولید شده توسط Adafruit ، مناسب بود.
نمای کلی:
MAX98357 I2S Class-D Mono Amplifier
این تقویت کننده همراه اسپیکر است ، نه تنها تقویت کننده نیست ، بلکه مبدل دیجیتال به آنالوگ I2S است ، بنابراین برای اسپیکر و سیستم صوتی من نیز مناسب است.
نمای کلی:
برگه اطلاعات:
آردوینو اونو
Arduino Uno یک برد میکروکنترلر منبع باز است که بر اساس میکروکنترلر Microchip ATmega328P ساخته شده توسط Arduino.cc. برد Uno دارای 14 پین دیجیتال ، 6 پین آنالوگ است و با نرم افزار Arduino IDE کاملاً قابل برنامه ریزی است
مرور کلی:
تغییر دهنده سطح
این یک برد کوچک است که از ارتباط بین Arduino Uno و Raspberry Pi و ولتاژهای مختلف ، Arduino: 5V و Raspberry Pi: 3.3V مراقبت می کند. این مورد نیاز است زیرا نوار led به آردوینو متصل شده و در آنجا کار می کند ، در حالی که سایر موارد با رزبری پای اجرا می شوند.
WS2812B - Ledstrip
این یک نوار LED با 60 عدد رهبری RGB است (در صورت تمایل می توانید نوارهای بلندتر با LED های RGB بیشتری خریداری کنید). که در مورد من به Arduino Uno متصل است ، اما می تواند به بسیاری از دستگاه های دیگر متصل شود و واقعاً ساده است.
برگه اطلاعات:
GPIO T-Part ، 1 Breadboard و تعداد زیادی jumperwires
برای اتصال همه چیزهایی که به نان بردها و jumperwires نیاز داشتم ، از قسمت GPIO T استفاده نکردم ، اما شما می توانید از آن برای مشخص کردن اینکه سطل کجا می رود استفاده کنید.
مرحله 2: شماتیک و سیم کشی
برای ساختن شماتیک من از Fritzing استفاده کردم ، این برنامه ای است که می توانید نصب کنید و به شما امکان می دهد یک طرح کلی واقعاً آسان در انواع مختلف دید ایجاد کنید. من از breadboard و نمای شماتیک استفاده کردم.
دانلود Fritzing:
مطمئن شوید که همه چیز به درستی وصل شده است. من از رنگ ها استفاده کردم تا کمی واضح تر بدانم که کجا سیم ها را وصل کنم. در مورد من از رنگ های مختلف برای سیم استفاده کردم
مرحله 3: طراحی پایگاه داده
ما داده های زیادی از 3 سنسور (دما از DS18B20 ، روشنایی از LDR و وضعیت از حسگر PIR) جمع آوری می کنیم. بنابراین بهترین کار این است که همه این داده ها در یک پایگاه داده نگهداری شوند. در مرحله بعد نحوه پیکربندی پایگاه داده را توضیح خواهم داد (مرحله 5: مهندسی پیشرو پایگاه داده ما به RPi!) اما ابتدا باید طراحی یا ERD (نمودار روابط نهاد) انجام شود. مال من با 3NF عادی شد به همین دلیل ما قطعات و تاریخچه قطعات را به جدولی دیگر تقسیم می کنیم. ما از پایگاه داده Music برای پیگیری آهنگ هایی که گوش داده شده اند استفاده می کنیم.
به طور کلی ، این یک پایگاه داده واقعاً ساده و آسان برای کار بیشتر است.
مرحله 4: رزبری پای را راه اندازی کنید
بنابراین اکنون که ما اصول اولیه پروژه را انجام داده ایم. بیایید با راه اندازی رزبری پای شروع کنیم!
قسمت 1: پیکربندی کارت SD
1) نرم افزار و فایل های مورد نیاز را بارگیری کنید
برای این فرایند کامل باید 2 نرم افزار و 1 سیستم عامل یعنی Raspbian را بارگیری کنید. 1 نرم افزار: اولین نرم افزار Win32 Disk Imager است.
sourceforge.net/projects/win32diskimager/
نرم افزار دوم: نرم افزار دوم SD Card Formatter است.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: این سیستم عامل اصلی Pi است.
www.raspberrypi.org/downloads/raspberry-pi-os/
همه فایلها را روی دسکتاپ استخراج کنید.
2) کارت SD و کارت خوان را دریافت کنید
حداقل یک کارت SD 8 گیگابایتی کلاس 10 با کارت خوان دریافت کنید. آن کارت را به کارت خوان وارد کرده و آن را به پورت USB وصل کنید.
3) کارت SD را فرمت کنید
SD Card Formatter را باز کرده و درایو را انتخاب کنید.
روی قالب کلیک کنید و هیچ گزینه دیگری را تغییر ندهید.
پس از اتمام قالب بندی ، روی OK کلیک کنید.
4) سیستم عامل را روی کارت SD بنویسید
win32diskimager را باز کنید.
فایل.img سیستم عامل Raspbian را که از فایل بارگیری شده استخراج شده است مرور کنید.
روی open و سپس روی Write کلیک کنید.
اگر هشداری ظاهر شد ، با کلیک روی OK ، آن ها را نادیده بگیرید. منتظر بمانید تا نوشتن کامل شود و ممکن است چند دقیقه طول بکشد. پس صبور باشید.
n
5) هنگامی که این کار انجام شد ، ما آماده ایم تا قبل از قرار دادن تصویر در RPi خود تعدیل نهایی را انجام دهیم.
به فهرست SD کارت خود بروید ، فایلی با نام 'cmdline.txt' را جستجو کرده و آن را باز کنید.
اکنون 'ip = 169.254.10.1' را در همان خط اضافه کنید.
فایل را ذخیره کنید.
فایلی با نام 'ssh' بدون پسوند یا محتوا ایجاد کنید. (ساده ترین راه این است که یک فایل txt ایجاد کرده و پس از آن.txt را حذف کنید)
اکنون که همه چیز بر روی کارت SD نصب شده است ، می توانید آن را به طور ایمن از رایانه خود خارج کرده و بدون اتصال برق به Raspberry Pi قرار دهید. هنگامی که کارت SD وارد RPI می شود ، یک کابل LAN را از رایانه خود به پورت RPi LAN وصل کنید ، پس از اتصال به این سیم می توانید برق را به RPi وصل کنید.
قسمت 2: پیکربندی RPi
بتونه
اکنون می خواهیم رزبری پای خود را پیکربندی کنیم ، این کار از طریق Putty انجام می شود.
نرم افزار بتونه:
پس از بارگیری ، Putty را باز کرده و IP '169.254.10.1' و Port '22' و نوع اتصال: SSH را وارد کنید.
اکنون می توانیم سرانجام رابط خط فرمان خود را باز کرده و با اطلاعات ورود به سیستم شروع به کار کنیم -> User: pi & Password: raspberry. (توصیه می شود که آن را در اسرع وقت تغییر دهید. در اینجا راهنمای نحوه استفاده است:
Raspi-config
ما باید رابط های مختلف را فعال کنیم و برای این کار ابتدا باید کد زیر را تایپ کنیم:
sudo raspi-config
مواردی که ما باید آنها را فعال کنیم در قسمت واسط قرار دارد. ما باید رابط های زیر را فعال کنیم:
- تک سیم
- سریال
- I2C
- SPI
این همه کاری بود که ما باید با raspi-config انجام دهیم
افزودن WIFI شما
ابتدا باید root شوید تا دستور زیر ریشه دار شود
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 a
قسمت 3: به روز رسانی نرم افزار نصب RPi +
اکنون که به اینترنت متصل هستیم ، به روز رسانی بسته های نصب شده یک حرکت هوشمندانه خواهد بود ، بنابراین اجازه دهید این کار را قبل از نصب بسته های دیگر انجام دهیم.
sudo apt-get update
sudo apt-get upgrade
پس از به روز رسانی RPi باید نرم افزارهای زیر را نصب کنیم:
پایگاه داده MariaDB
sudo apt-get نصب mariadb-server
سرور وب Apache2
sudo apt install apache2
پایتون
Update-alternatives --install/usr/bin/python python /usr/bin/python3.7 1 Update-alternatives --install/usr/bin/python python/usr/bin/python3 2
بسته پایتون
شما باید تمام این بسته ها را نصب کنید تا سیستم پشتیبان کاملاً کار کند:
- فلاسک
- Flask-Cors
- Flask-MySql
- Flask-SocketIO
- درخواست PyMySQL
- Python-socketio
- RPi. GPIO
- گئونت
- Gevent-websocket
کتابخانه بلندگو
برای استفاده از بلندگو با تقویت کننده ، باید کتابخانه ای برای آن نصب کنیم
curl -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
اکنون که همه چیز مورد نیاز خود را نصب کرده ایم ، بیایید پایگاه داده ای را که طراحی کرده ایم روی رزبری پای خود قرار دهیم!
برای راه اندازی پایگاه داده باید MySql و RPi را متصل کنیم. برای این کار ما MySQLWorkbench را باز کرده و یک اتصال جدید ایجاد می کنیم. هنگام مشاهده تصویر ، باید تغییر دهید تا اطلاعات به تصویر شما تغییر کند.
اگر هنوز چیزی را تغییر نداده اید می توانید برای SSH pi و تمشک ، برای MySQL mysql و mysql استفاده کنید.
وقتی چیزی مشخص نیست ، می توانید این آموزش را نیز دنبال کنید:
برای صادرات پایگاه داده خود استفاده از PHPmyAdmin باید آسان تر باشد زیرا با MySql می توانید خطاهای زیادی را دریافت کنید
مرحله 6: پیکربندی بلوتوث در RPi ما
ما در حال ایجاد یک بلندگوی Mood هستیم که می توانیم با موسیقی خودمان نیز از آن استفاده کنیم ، بنابراین وقتی RPi باشد ، این کار آسان تر می شود
متصل به bluetooth من یک آموزش را برای آن دنبال کردم که می توانید در اینجا پیدا کنید:
scribles.net/streaming-bluetooth-audio-fr…
من همه چیز را در اینجا برای همه کسانی که مایل به بازسازی آن هستند نوشتم
حذف bluealsa در حال اجرا
sudo rm/var/run/bluealsa/*
اضافه کردن نمای A2DP نقش سینک
sudo bluealsa -p a2dp -sink &
رابط بلوتوث را باز کرده و بلوتوث خود را روشن کنید
bluetoothctl روشن است
یک عامل جفت سازی راه اندازی کنید
agent on default-agent
RPi خود را قابل کشف کنید
قابل کشف در
- اکنون از طریق دستگاه بلوتوث خود ، RPi را جستجو کرده و با آن ارتباط برقرار کنید.
- جفت شدن را در هر دو دستگاه تأیید کنید ، در بتونه خود "بله" را تایپ کنید.
- سرویس A2DP را تأیید کنید ، دوباره "بله" را تایپ کنید.
- پس از انجام این کار ، می توانیم به دستگاه خود اعتماد کنیم ، بنابراین لازم نیست هر بار که می خواهیم متصل شویم این کار را انجام دهیم
اعتماد XX: XX: XX: XX: XX: XX (آدرس مک بلوتوث شما از دستگاه منبع ما)
اگر می خواهید RPi شما همچنان قابل کشف باشد ، این انتخاب خود شماست ، اما من ترجیح می دهم آن را دوباره خاموش کنم تا مردم نتوانند با جعبه شما ارتباط برقرار کنند
قابل کشف
سپس می توانیم از رابط بلوتوث خود خارج شویم
خروج
و سرانجام مسیریابی صوتی ما: دستگاه منبع ما به RPi ما ارسال می شود
bluealsa-aplay 00: 00: 00: 00: 00: 00: 00
اکنون دستگاه ما با بلوتوث به تمشک ما متصل شده است و شما باید بتوانید با پخش هر رسانه ای مانند Spotify و غیره آن را آزمایش کنید.
مرحله 7: نوشتن پشتیبان کامل
بنابراین اکنون تنظیمات به پایان رسیده است ، ما می توانیم سرانجام نوشتن برنامه پشتیبان خود را شروع کنیم!
من برای کل پشتیبانم از Visual Studio Code استفاده کردم ، فقط باید مطمئن شوید که پروژه Visual Studio شما به Raspberry Pi شما متصل است ، این بدان معناست که کابل LAN شما باید به RPi شما متصل شده و یک اتصال SSH ایجاد کند. (اطلاعات مربوط به نحوه ایجاد اتصال از راه دور را می توانید در اینجا پیدا کنید:
من از کلاسهای خودم استفاده کردم و اینها همگی در GitHub من گنجانده شده است.
در فایل پشتیبان من از کلاس های مختلف استفاده کردم ، بنابراین همه چیز را می توان به طور جداگانه استفاده کرد و به این ترتیب کد اصلی من با همه موضوعات مختلف خراب نشود. من از threading برای اجرای همزمان همه کلاس های مختلف استفاده کردم. و در انتها همه مسیرها را دریافت کرده اید تا ما بتوانیم به راحتی داده ها را در نمای جلو خود دریافت کنیم.
مرحله 8: نوشتن Frontend (HTML ، CSS و JavaScript)
اکنون که پس زمینه به پایان رسیده است ، می توانیم شروع به نوشتن جلد کامل کنیم.
HTML و CSS برای من بسیار سخت بود. من تمام تلاش خود را کردم تا ابتدا موبایل شود زیرا می توانم با بلوتوث به آن متصل شوم تا آهنگ ها را با Spotify تغییر دهم. بنابراین کنترل آن از طریق داشبورد تلفن همراه آسان تر خواهد بود
شما می توانید داشبورد خود را به هر شکلی که می خواهید طراحی کنید ، من فقط کد و طراحی خود را در اینجا می گذارم ، شما می توانید هر کاری که دوست دارید انجام دهید!
و جاوا اسکریپت برای من آسان نبود ، با چند GET از مسیرهای پشتیبان من ، هزاران شنونده رویداد و برخی ساختارهای socketio کار کردم تا داده ها را از سنسورهایم دریافت کنم.
مرحله 9: ساختن پرونده من و کنار هم قرار دادن آن
من ابتدا ترسیم نمودم که چگونه می خواهم کیس به نظر برسد ، نکته مهم این بود که باید به اندازه کافی بزرگ باشد تا همه چیز جا بیفتد ، زیرا ما یک مدار بزرگ برای قرار دادن کیس در اختیار داشتیم اما باید فشرده بمانیم تا اینطور نباشد. زیاد فضا نگیرید
من قاب را از چوب ساخته ام ، فکر می کنم راحت ترین کار با آن زمانی است که شما تجربه چندانی در زمینه ساخت کیس ها ندارید و همچنین کارهای زیادی دارید که می توانید با آن انجام دهید.
من از یک تخته قدیمی شروع به کار کردم و تازه شروع به اره کردن چوب کردم. هنگامی که من کیف اصلی خود را داشتم ، فقط مجبور شدم سوراخ هایی را در آن ایجاد کنم (در قسمت جلوی بدنه زیاد ، همانطور که در تصاویر مشاهده می کنید و چند میخ در آن قرار داده اید ، این یک مورد واقعاً اساسی است ، اما به نظر می رسد بسیار جالب است) من همچنین تصمیم گرفتم آن را سفید رنگ کنم تا خوب به نظر برسد.
و هنگامی که پرونده به پایان رسید ، زمان آن رسیده بود که همه چیز را با هم ترکیب کنید ، همانطور که در تصویر آخر مشاهده می کنید! داخل جعبه به هم ریخته است ، اما همه چیز کار می کند و من فضای بیشتری ندارم ، بنابراین به شما توصیه می کنم اگر در حال بازآفرینی پروژه من هستید ، یک مورد بزرگتر بسازید.
توصیه شده:
Juuke - پخش کننده موسیقی RFID برای سالمندان و کودکان: 10 مرحله (همراه با تصاویر)
Juuke - پخش کننده موسیقی RFID برای سالمندان و کودکان: این جعبه Juuke است. جعبه Juuke دوست موسیقی خود شماست ، به گونه ای که استفاده از آن تا حد امکان آسان است. این دستگاه مخصوصاً برای افراد مسن و کودکان طراحی شده است ، اما البته برای همه سنین دیگر نیز قابل استفاده است. دلیل ایجاد ما این است ، به دلیل
فن تنظیم شده PWM بر اساس دمای پردازنده برای رزبری پای: 4 مرحله (همراه با تصاویر)
فن تنظیم شده PWM بر اساس دمای پردازنده برای رزبری پای: بسیاری از موارد برای رزبری پای دارای کمی فن 5 ولت هستند تا به خنک شدن پردازنده کمک کنند. با این حال ، این فن ها معمولاً پر سر و صدا هستند و بسیاری از مردم آن را به پین 3V3 وصل می کنند تا نویز را کاهش دهند. این فن ها معمولاً برای 200mA درجه بندی می شوند که بسیار خوب است
کنترل دمای اتاق بر اساس IOT: 5 مرحله
کنترل دمای اتاق بر اساس IOT: این در پروژه کنترل دمای اتاق مبتنی بر IOT قابل آموزش است. ویژگی ها: -1. به طور خودکار فن را در بالای دمای اتاق مشخص کنید. به طور خودکار فن را زیر دمای اتاق مشخص شده خاموش کنید. کنترل دستی در هر نقطه از زمان
سیستم نظارت بر محیط زیست بر اساس ماژول OBLOQ-IoT: 4 مرحله
سیستم نظارت بر محیط زیست بر اساس ماژول OBLOQ-IoT: این محصول عمدتا در آزمایشگاه الکترونیکی برای نظارت و کنترل شاخص هایی مانند دما ، رطوبت ، نور و گرد و غبار و بارگذاری به موقع آنها در فضای داده ابر برای دستیابی به نظارت و کنترل از راه دور رطوبت گیر استفاده می شود. ، تصفیه هوا
نحوه جمع آوری یک دسته ساده و قدرتمند دسته- بر اساس میکرو: بیت: 10 مرحله (همراه با تصاویر)
نحوه جمع آوری یک دسته ساده و قدرتمند- بر اساس Micro: Bit: نام دسته Handlebit است. شکل یک دسته است و بسیار جالب به نظر می رسد! اکنون می توانیم مقدمه ای در مورد Handlebit ارائه دهیم ، بگذارید روی آن حرکت کنیم