Mundarija:
- 1 -qadam: materiallar
- 2 -qadam: sxemalar va simlar
- 3 -qadam: ma'lumotlar bazasini loyihalash
- 4 -qadam: Raspberry Pi -ni o'rnating
- Step 5: Setting Up the Database to the RPi
- 6 -qadam: Bluetooth -ni RPi -da sozlash
- 7 -qadam: To'liq orqa qismini yozish
- 8 -qadam: Frontendni yozish (HTML, CSS va JavaScript)
- 9 -qadam: Mening ishimni tuzish va barchasini birlashtirish
Video: Kayfiyat dinamikasi- Atrof muhit haroratiga qarab kayfiyatli musiqani ijro etadigan kuchli dinamik: 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Salom!
MCT Howest Kortrijk -dagi maktab loyihasi uchun men Mood dinamikini yaratdim, bu turli xil sensorli, LCD va WS2812b lentali, aqlli Bluetooth dinamikli qurilma. Karnay haroratga qarab fon musiqasini ijro etadi, lekin uni oddiy bluetooth sifatida ham ishlatish mumkin. ma'ruzachi Hammasi Raspberry Pi -da ishlaydi (ma'lumotlar bazasi, veb -server, Backend).
Shunday qilib, men bu loyihani 3 hafta ichida qanday amalga oshirganimning bosqichma -bosqich ko'rsatmasi. Shunday qilib, agar siz mening loyihamni qayta tiklamoqchi bo'lsangiz, ko'rsatmaga amal qilishingiz mumkin
Bu ko'rsatma - bu mening birinchi yozganim, shuning uchun agar biron bir muammo bo'lsa, men ularga iloji boricha tezroq javob berishga harakat qilaman!
Mening GitHub:
1 -qadam: materiallar
Raspberry Pi 3B va 16 Gb SD -karta
Mening butun loyiham Raspberry Pi 3B -da sozlangan tasvir bilan ishlaydi, men buni keyingi bosqichda tushuntiraman (4 -qadam: Raspberry Pi -ni sozlash)
LCD displey 16x2
Men harorat, nashrida va IP manzilimni chop etish uchun asosiy LCD displeydan foydalandim.
Ma'lumotlar jadvali:
DS18B20 harorat sensori
DS18B20-haroratni o'lchaydigan bitta simli sensor, Maxim Integrated tomonidan ishlab chiqarilgan. DS18B20 datchiklarining 2 turi mavjud, faqat komponenti (men ishlatganman) va suv o'tkazmaydigan versiya, bu ancha katta, lekin bu mening loyiham uchun kerak bo'lgan narsa emas, shuning uchun men faqat komponentdan foydalandim. Sensor haroratni -55 ° C dan +125 ° C gacha (-67 ° F dan +257 ° F gacha) o'lchashi mumkin va aniqligi -10 ° C dan +85 ° C gacha 0,5 ° S gacha. Bundan tashqari, 9 bitdan 12 bitgacha programlanadigan piksellar soniga ega.
Ma'lumotlar jadvali:
MCP3008
LDR va PIR sensori ma'lumotlarini o'qish uchun men MCP3008-dan foydalandim, u 8 kanalli 10-bitli SPI interfeysli raqamli konvertor va dasturlash uchun juda oson.
Ma'lumotlar jadvali:
PIR harakat sensori
Kimdir mening xonamga kirayotganini yoki chiqayotganini aniqlash uchun men passiv infraqizil sensorni ishlatardim, chunki ulardan foydalanish oson va kichik.
Ma'lumotlar jadvali:
LDR
Xonaning yorug'lik darajasini aniqlash uchun men fotorezistor yoki LDR (Yorug'likni pasaytiruvchi qarshilik yoki nurga bog'liq qarshilik) dan foydalanardim. Ledstripni qorong'i bo'lganda yoqish uchun.
Karnay - 3 "diametri - 4 Ohm 3 Vatt
Bu men kerak bo'ladigan kuchlanish va amperlarni hisoblagandan so'ng tanlagan karnay konusidir va bu mening Adafruit tomonidan ishlab chiqarilgan Raspberry Pi loyihamga juda mos keladi.
Umumiy ma'lumot:
MAX98357 I2S Class-D mono kuchaytirgich
Bu karnay bilan birga keladigan kuchaytirgich, bu nafaqat kuchaytirgich, balki I2S raqamli -analogli konvertor, shuning uchun u karnay va audio tizimim uchun juda mos keladi.
Umumiy nuqtai:
Ma'lumotlar jadvali:
Arduino Uno
Arduino Uno-bu Arduino.cc tomonidan ishlab chiqarilgan Microchip ATmega328P mikrokontrolleriga asoslangan ochiq manbali mikrokontroller taxtasi. Uno taxtasida 14 ta raqamli pin, 6 ta analog pin bor va Arduino IDE dasturi bilan to'liq dasturlashtirilgan.
Umumiy ma'lumot:
Darajani o'zgartirish
Bu Arduino Uno va Raspberry Pi o'rtasidagi aloqa va Arduino: 5V va Raspberry Pi: 3.3V turli xil kuchlanishlari bilan shug'ullanadigan kichik taxta. Bu kerak, chunki LED chizig'i Arduino -ga ulangan va u erda ishlaydi, qolganlari esa Raspberry Pi -da ishlaydi.
WS2812B - Led chizig'i
Bu 60 RGB svetodiodli chiziqli chiziq (agar xohlasangiz, ko'proq RGB svetodiodli uzunroq chiziqlar sotib olishingiz mumkin). Bu mening holatimda Arduino Uno -ga ulangan, lekin uni boshqa ko'plab qurilmalarga ulash mumkin va ulardan foydalanish juda oddiy.
Ma'lumotlar jadvali:
GPIO T-qismi, 1 ta taxtali va ko'plab o'tish simlari
Menga kerak bo'lgan hamma narsani ulash paneli va o'tish simlari uchun men GPIO T-qismini ishlatmadim, lekin siz uni qaysi quti qayerga ketishini aniq bilib olishingiz mumkin.
2 -qadam: sxemalar va simlar
Men sxemani tuzish uchun Fritzing -dan foydalandim, bu siz o'rnatishingiz mumkin bo'lgan dastur bo'lib, u sizga har xil ko'rinishda juda oson sxemani yaratishga imkon beradi.
Fritzing -ni yuklab oling:
Hamma narsa to'g'ri ulanganligiga ishonch hosil qiling. Men simlarni qaerga ulash kerakligini bilish uchun ranglardan foydalanardim. Mening holatimda simlar uchun turli xil ranglardan foydalanardim
3 -qadam: ma'lumotlar bazasini loyihalash
Biz 3 ta sensordan (DS18B20 dan harorat, LDR-dan yorqinlik va PIR-sensordan holat) juda ko'p ma'lumotlarni to'playapmiz. Shunday qilib, barcha ma'lumotlarni ma'lumotlar bazasida saqlash yaxshidir. Ma'lumotlar bazasini qanday sozlash kerakligini keyingi bosqichda tushuntiraman (5 -qadam: Ma'lumotlar bazamizni RPi -ga yo'naltirish!) Lekin avval dizayn yoki ERD (shaxslar bilan munosabatlar diagrammasi) tuzilishi kerak. Meniki 3NF bilan normallashdi, shuning uchun biz komponentlar va komponentalar tarixini boshqa jadvalga ajratdik. Biz Musiqa ma'lumotlar bazasidan tinglangan qo'shiqlarni kuzatib borish uchun foydalanamiz.
Umuman olganda, bu ma'lumotlar bazasi dizayni bilan ishlash uchun juda oddiy.
4 -qadam: Raspberry Pi -ni o'rnating
Shunday qilib, endi biz loyihaning ba'zi asoslarini tayyorladik. Raspberry Pi -ni o'rnatishni boshlaylik!
1 -qism: SD -kartani sozlash
1) Kerakli dastur va fayllarni yuklab oling
Bu to'liq jarayon uchun 2 ta dasturiy ta'minot va 1 ta operatsion tizimni, ya'ni Raspbian -ni yuklab olishingiz kerak.1 -dasturiy ta'minot: Birinchi dastur - Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
Ikkinchi dasturiy ta'minot: Ikkinchi dasturiy ta'minot - SD -kartani formatlash.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Bu Pi -ning asosiy operatsion tizimi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Barcha fayllarni ish stoliga chiqarib oling.
2) SD -kartani va o'qish kartasini oling
Kartani o'qish moslamasi bilan kamida 8 Gb sinf 10 SD -kartani oling. Kartani o'quvchiga joylashtiring va USB portiga ulang.
3) SD -kartani formatlash
SD -kartani formatlashni oching va drayverni tanlang.
Formatni bosing va boshqa variantlarni o'zgartirmang.
Formatlashtirish tugallangach, OK ni bosing.
4) SD -kartaga OS yozing
Win32diskimager -ni oching.
Yuklangan fayldan olingan Raspbian OS.img faylini ko'rib chiqing.
Ochish -ni bosing va keyin Yozish -ni bosing.
Agar biron bir ogohlantirish paydo bo'lsa, "OK" tugmasini bosish orqali ularni e'tiborsiz qoldiring. Yozish tugashini kuting va bir necha daqiqa o'tishi mumkin. Shuning uchun sabr qiling.
n
5) Bu bajarilgandan so'ng, biz tasvirni RPi -ga joylashtirishdan oldin ba'zi yakuniy o'zgartirishlar kiritishga tayyormiz.
SD -kartangiz katalogiga o'ting, "cmdline.txt" nomli faylni toping va oching.
Endi bitta qatorga 'ip = 169.254.10.1' qo'shing.
Faylni saqlang.
"Ssh" nomli faylni kengaytma va kontentsiz yarating. (Eng oson yo'li - txt faylini yaratish va keyin.txtni olib tashlash)
Hamma narsa SD -kartaga o'rnatilgandan so'ng, siz uni kompyuterdan XAVFSIZLIK bilan chiqarib olishingiz va Raspberry Pi -ga quvvatni ulamasdan qo'yishingiz mumkin. SD -karta RPI -ga kirgandan so'ng, kompyuterdan LAN kabelini RPi -LAN portiga ulang, ulangandan so'ng siz quvvatni RPi -ga ulashingiz mumkin.
2 -qism: RPi -ni sozlash
Macun
Endi biz Raspberry Pi -ni sozlamoqchimiz, bu Putty orqali amalga oshiriladi.
Putty dasturi:
Yuklab olingandan so'ng, Putty -ni oching va "169.254.10.1" IP va "22" portini va ulanish turini kiriting: SSH.
Endi biz nihoyat buyruq satri interfeysini ochib, boshlang'ich login ma'lumotlari -> Foydalanuvchi: pi va Parol: malina bilan kirishimiz mumkin. (Uni iloji boricha tezroq o'zgartirishni tavsiya qiladi. Mana ko'rsatma:
Raspi-config
Biz turli xil interfeyslarni yoqishimiz kerak va buning uchun avval quyidagi kodni kiritishimiz kerak bo'ladi:
sudo raspi-config
Biz yoqishimiz kerak bo'lgan narsalar interfeys bo'limida. Biz quyidagi interfeyslarni yoqishimiz kerak:
- Bir simli
- Seriyali
- I2C
- SPI
Bu raspi-config bilan qilishimiz kerak bo'lgan hamma narsa edi
Wi -Fi tarmog'ingiz qo'shilmoqda
Birinchidan, quyidagi buyruq ildiz bo'lishi uchun siz root bo'lishingiz kerak
sudo -i
Siz ildiz otganingizdan so'ng, quyidagi buyruqdan foydalaning: (SSID -ni tarmoq nomi va parolni tarmoq parolingiz bilan almashtiring)
wpa_passphrase "ssid" "parol" >> /etc/wpa_supplicant/wpa_supplicant.conf
Agar siz noto'g'ri ish qilgan bo'lsangiz, quyidagi buyruqni kiritish orqali ushbu tarmoqni tekshirishingiz, yangilashingiz yoki o'chirishingiz mumkin:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Shunday qilib, biz tarmoqqa kirganimizdan so'ng, keling, WPA mijoz interfeysiga kiraylik
wpa_cli
O'zingizning interfeysingizni tanlang
wlan0 interfeysi
Faylni qayta yuklang
qayta sozlamoq
Va nihoyat, siz yaxshi aloqada ekanligingizni ko'rishingiz mumkin:
ip a
3 -qism: RPi + dasturini o'rnatish
Endi biz Internetga ulangan bo'lsak, allaqachon o'rnatilgan paketlarni yangilash aqlli harakat bo'ladi, shuning uchun boshqa paketlarni o'rnatishdan oldin buni qilaylik.
sudo apt-get yangilanishi
sudo apt-get upgrade
RPi yangilanganidan so'ng biz quyidagi dasturlarni o'rnatishimiz kerak bo'ladi:
MariaDB ma'lumotlar bazasi
sudo apt-get o'rnatish mariadb-server
Apache2 veb -server
sudo apt install apache2
Python
update-alternatives-install/usr/bin/python python /usr/bin/python3.7 1 update-alternatives --install/usr/bin/python python/usr/bin/python3 2
Python to'plami
Orqa fonni mukammal ishlashi uchun siz ushbu paketlarning barchasini o'rnatishingiz kerak bo'ladi:
- Shisha
- Flask-Cors
- Flask-MySql
- Shisha-rozetka
- PyMySQL so'rovlari
- Python-soket
- RPi. GPIO
- Gevent
- Gevent-veb-rozetkasi
Karnay kutubxonasi
Karnayni kuchaytirgich bilan ishlatish uchun biz unga kutubxona o'rnatishimiz kerak bo'ladi
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
Endi biz kerakli hamma narsani o'rnatganimizdan so'ng, Raspberry Pi -ga o'z ma'lumotlar bazamizni joylashtiraylik!
Ma'lumotlar bazasini o'rnatish uchun biz MySql va RPi -ni ulashimiz kerak bo'ladi. Buning uchun biz MySQLWorkbench -ni ochamiz va yangi ulanishni o'rnatamiz. Rasmga qaraganingizda, ma'lumotni o'zingiznikiga o'zgartirish uchun o'zgartirishingiz kerak bo'ladi.
Agar siz hali biror narsani o'zgartirmagan bo'lsangiz, SSH pi va malina uchun MySQL mysql va mysql uchun foydalanishingiz mumkin.
Agar biror narsa aniq bo'lmasa, siz ham ushbu qo'llanmani bajarishingiz mumkin:
Ma'lumotlar bazasini eksport qilish PHPmyAdmin -dan foydalanish osonroq bo'lishi kerak, chunki siz MySql -da ko'p xatolarga yo'l qo'yishingiz mumkin.
6 -qadam: Bluetooth -ni RPi -da sozlash
Biz Mood dinamikini yaratmoqdamiz, uni biz o'z musiqamiz bilan ham ishlata olamiz, shuning uchun RPi bo'lganda bu osonroq bo'ladi
bluetooth -ga ulanganman, buning uchun qo'llanmani bu erda topishingiz mumkin:
scribles.net/streaming-bluetooth-audio-fr…
Men bu erda hamma narsani qayta yozmoqchi bo'lganlar uchun yozdim
Allaqachon ishlayotgan bluealsani olib tashlash
sudo rm/var/run/bluealsa/*
A2DP profilini cho'ktirish rolini qo'shing
sudo bluealsa -p a2dp -sink va
Bluetooth interfeysini oching va bluetooth -ni yoqing
bluetoothctl yoqilgan
Birlashtiruvchi agentni o'rnating
standart agentda agent
RPi -ni kashf qilinadigan qilib qo'ying
aniqlanishi mumkin
- Endi bluetooth qurilmangizdan RPi -ni qidiring va unga ulaning.
- Ikkala qurilmada ham ulanishni tasdiqlang, macuningizga "ha" yozing.
- A2DP xizmatiga ruxsat bering, yana "ha" yozing.
- Bu amalga oshgandan so'ng, biz o'z qurilmamizga ishonishimiz mumkin, shuning uchun har safar ulanishni xohlaganimizda hammasini o'tkazib yubormasligimiz kerak
ishonch XX: XX: XX: XX: XX: XX (Sizning bluetooth mac manzilingiz manba qurilmamizdan)
Agar siz RPI -ni kashf etishni davom ettirishni xohlasangiz, bu sizning shaxsiy tanlovingiz, lekin men uni o'chirib qo'yishni afzal ko'raman, shunda odamlar sizning qutingizga ulanishga harakat qila olmaydi
aniqlanishi mumkin
Keyin biz bluetooth interfeysidan chiqishimiz mumkin
Chiqish
Va nihoyat, bizning audio marshrutizatsiyamiz: manba qurilmamiz RPi -ga yo'naltiriladi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Endi bizning qurilmamiz bluetooth bilan Raspberry -ga ulangan va siz uni har qanday ommaviy axborot vositalarida, masalan Spotify va boshqalarda sinab ko'rishingiz kerak.
7 -qadam: To'liq orqa qismini yozish
Shunday qilib, endi sozlash tugadi, biz nihoyat orqa dasturimizni yozishni boshlashimiz mumkin!
Men Visual Studio kodini butun orqa tomonim uchun ishlatardim, faqat sizning Visual Studio loyihangiz Raspberry Pi -ga ulanganligiga ishonch hosil qilishingiz kerak, bu sizning LAN kabeli sizning RPi -ga ulangan va SSH ulanishi kerak degan ma'noni anglatadi. (masofadan ulanishni yaratish haqida ma'lumotni bu erda topishingiz mumkin:
Men o'z darslarimdan foydalandim va ularning hammasi GitHub -ga kiritilgan.
Mening arxiv faylimda men turli xil sinflarni ishlatardim, shuning uchun hamma narsani alohida ishlatish mumkin va mening asosiy kodim har xil mavzular bilan aralashmasligi uchun. Men bir vaqtning o'zida har xil sinflarni ishga tushirish uchun ishlatardim. Va pastki qismida siz barcha yo'nalishlarga egasiz, shuning uchun biz ma'lumotni old tomondan osongina olishimiz mumkin.
8 -qadam: Frontendni yozish (HTML, CSS va JavaScript)
Endi orqa qism tugagach, biz to'liq oldingi qismini yozishni boshlashimiz mumkin.
HTML va CSS men uchun juda qiyin edi, men birinchi navbatda uni mobil qilish uchun qo'limdan kelganini qildim, chunki bluetooth orqali qo'shiqlarni Spotify yordamida o'zgartirish mumkin. Shunday qilib, mobil boshqaruv panelidan boshqarish osonroq bo'ladi
Siz xohlagan usulda asboblar panelini loyihalashtirishingiz mumkin, men o'z kodimni va dizaynimni shu erda qoldiraman, siz xohlagan narsani qilishingiz mumkin!
Va men uchun Javascript oson emas edi, men sensorlarimdan ma'lumotlarni olish uchun bir nechta GET -lar bilan ishladim, ko'plab tinglovchilar va ba'zi soket tuzilmalari bilan ishladim.
9 -qadam: Mening ishimni tuzish va barchasini birlashtirish
Men birinchi marta ishning qanday ko'rinishini xohlaganimni chizishni boshladim, muhim narsa shundaki, u hamma narsaga mos bo'lishi uchun etarlicha katta bo'lishi kerak edi, chunki bizda sumkani qo'yish uchun katta zanjir bor edi, lekin u ixcham qolishi kerak edi. ko'p joy egallamang
Men korpusni yog'ochdan yasadim, menimcha, agar sizda korpus qurishda unchalik tajribangiz bo'lmasa va sizda ko'p narsalar bo'lsa, u bilan ishlash eng oson.
Men eski taxtadan yotardim va o'tinni ko'rishni boshladim. Menda asosiy korpusim bo'lganida, men shunchaki teshiklarni burishim kerak edi (korpusning old tomonida, rasmlarda ko'rib turganingizdek, unga mixlar solingan, bu juda oddiy korpus, lekin juda zo'r ko'rinadi) Men uni oq rangda bo'yashga qaror qildim.
Va ish tugagach, oxirgi rasmda ko'rib turganingizdek, hammasini yig'ish vaqti keldi! Bu qutida qandaydir tartibsizlik, lekin hamma narsa ishlaydi va menda unchalik bo'sh joy yo'q edi, shuning uchun sizga maslahat beraman, agar siz mening loyihamni qayta yaratayotgan bo'lsangiz, kattaroq sumka yarating.
Tavsiya:
Raspberry Pi uchun CPU haroratiga asoslangan PWM tomonidan boshqariladigan fan: 4 qadam (rasmlar bilan)
Raspberry Pi uchun protsessor haroratiga asoslangan PWM bilan boshqariladigan fanat: Raspberry Pi uchun ko'p holatlar protsessorni sovutishga yordam berish uchun 5Vli fan bilan birga keladi. Biroq, bu muxlislar odatda juda shovqinli va ko'p odamlar shovqinni kamaytirish uchun 3V3 piniga ulashadi. Bu fanatlar odatda 200 mA uchun baholanadi, bu juda h
Gapirish Arduino - Hech qanday modulsiz Arduino bilan MP3 ijro etish - PC fayllari yordamida Arduino -dan Mp3 faylini ijro etish: 6 qadam
Gapirish Arduino | Hech qanday modulsiz Arduino bilan MP3 ijro etish | PC faylini ishlatib, Arduino -dan Mp3 faylini ijro etish: Bu erda biz audio faylni ishlatmasdan mp3 faylini arduino -da qanday ijro etishni bilib olamiz, bu erda biz Arduino uchun 8 -gigagertsli chastotali 16 -bitli PCM -ni o'ynaydigan PCM kutubxonasidan foydalanamiz
Eng zo'r xoldinglar: Men eng zo'r musiqani ijro etish uchun eski telefonni buzdim: 13 qadam (rasmlar bilan)
Eng zo'r xoldinglar: Men eng zo'r musiqani ijro etish uchun eski telefonni buzdim: https: //youtu.be/Ma4QnfQ7DxoWell … Ishonchim komilki, siz shunchaki musiqani ushlab turadigan telefonni xohlamaysiz … Lekin "Ish stoli" ning eng oddiy hacki bilan boshqa ko'plab qiziqarli loyihalarni amalga oshirish mumkin. telefonlar.
Xuddi shu musiqani bir nechta xonalarda ijro eting: 3 qadam
Ko'p xonalarda bir xil musiqani ijro eting: Hammaga salom, men siz haqingizda bilmayman, lekin men butun kvartiramda bir xil musiqani eshitishni yoqtiraman. Shunday qilib, bu muammo haqida bir oz tadqiqot olib borganimdan so'ng, men bir xil Wi -Fi tarmog'iga ulangan bir nechta dinamiklarni qurishga qaror qildim
Yog'ochdan yasalgan kuchli va kuchli qo'ltiqni yig'ish uchun bir necha bo'lak yog'ochdan qanday foydalanish kerak: 10 qadam
Yog'ochdan yasalgan bir nechta bo'laklarni qanday qilib yoqimli va kuchli yog'ochdan yasalgan qo'llarga yig'ish mumkin: Robot qo'lining nomi - WoodenArm. Bu juda yoqimli ko'rinadi! Agar siz WoodenArm haqida batafsilroq ma'lumotga ega bo'lishni istasangiz, www.lewansoul.com saytiga murojaat qiling. Endi biz WoodenArm haqida tanishtiruv qilishimiz mumkin, keling, davom etamiz