Sadržaj:
- Korak 1: Opskrba
- Korak 2: Shema i ožičenje
- Korak 3: Dizajn baze podataka
- Korak 4: Postavljanje Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Korak 6: Konfiguriranje Bluetootha na našim RPi -ima
- Korak 7: Pisanje potpune pozadine
- Korak 8: Pisanje sučelja (HTML, CSS i JavaScript)
- Korak 9: Izgradite svoj slučaj i spojite ga zajedno
Video: Zvučnik raspoloženja- snažan zvučnik za reprodukciju glazbe raspoloženja na temelju temperature okoline: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Hej tamo!
Za svoj školski projekt u MCT Howest Kortrijk, napravio sam Mood Speaker, ovo je pametni Bluetooth zvučnički uređaj s različitim senzorima, uključenim LCD i WS2812b LED trakom. Zvučnik pušta glazbu u pozadini ovisno o temperaturi, ali se može koristiti i kao obični bluetooth zvučnik. Sve radi na Raspberry Pi -u (baza podataka, web -poslužitelj, pozadina).
Stoga je ovo uputstvo korak po korak proces kako sam ovaj projekt realizirao u 3 tjedna. Dakle, ako želite ponovno stvoriti moj projekt, možete slijediti vodič
Ovo uputstvo je moje prvo što sam napisao pa ću, ako bude bilo kakvih pitanja, pokušati odgovoriti što je brže moguće!
Moj GitHub:
Korak 1: Opskrba
Raspberry Pi 3B i 16 GB SD kartica
Cijeli moj projekt radi na mom Raspberry Pi 3B sa konfiguriranom slikom, što ću objasniti u kasnijem koraku (4. korak: Postavljanje Raspberry Pi)
LCD zaslon 16x2
Koristio sam osnovni LCD zaslon za ispis temperature, svjetline i IP adrese.
Tehnički list:
Senzor temperature DS18B20
DS18B20 je jednožični senzor koji mjeri temperaturu, proizveo Maxim Integrated. Postoje dvije vrste senzora DS18B20, samo komponenta (koju sam koristio) i vodootporna verzija, koja je mnogo veća, ali to nije ono što mi je trebalo za moj projekt, pa sam koristio samo komponentu. Senzor može mjeriti temperaturu u rasponu od -55 ° C do +125 ° C (-67 ° F do +257 ° F) i ima točnost od 0,5 ° C od -10 ° C do +85 ° C. Također ima programibilnu rezoluciju od 9 bita do 12 bita.
Tehnički list:
MCP3008
Za čitanje podataka s LDR i PIR senzora upotrijebio sam MCP3008 koji je 8-kanalni 10-bitni analogno-digitalni pretvarač sa SPI sučeljem i prilično ga je lako programirati.
Tehnički list:
PIR senzor pokreta
Da bih otkrio kada netko ulazi i izlazi iz moje sobe, upotrijebio sam pasivni infracrveni senzor jer su laki za korištenje i mali su.
Tehnički list:
LDR
Koristio sam fotootpornik ili LDR (otpor koji smanjuje svjetlost, ili otpornik ovisan o svjetlu) da otkrijem razinu osvjetljenja prostorije u kojoj se nalazi. I da uključim LED traku kad padne mrak.
Zvučnik - 3”Promjer - 4 Ohm 3 Watt
Ovo je konus zvučnika koji sam odabrao nakon što sam izračunao napon i ampere koji su mu potrebni, a ovo je savršeno odgovaralo mom projektu Raspberry Pi, proizvođača Adafruit.
Pregled:
MAX98357 I2S Class-D mono pojačalo
Ovo je pojačalo koje dolazi sa zvučnikom, ne samo da je pojačalo, već je i I2S digitalno -analogni pretvarač, tako da je i savršeno odgovara za moj zvučnik i audio sustav.
Pregled:
Tehnički list:
Arduino Uno
Arduino Uno je ploča otvorenog koda za mikrokontroler zasnovana na mikrokontroleru Microchip ATmega328P, proizvođača Arduino.cc. Uno ploča ima 14 digitalnih pinova, 6 analognih pinova i potpuno je programabilna s Arduino IDE softverom
Pregled:
Promjenjivač razina
Ovo je mala ploča koja se brine za komunikaciju između Arduino Uno i Raspberry Pi i različitih napona, Arduino: 5V i Raspberry Pi: 3.3V. To je potrebno jer je LED traka povezana s Arduinom i tamo radi, dok sve ostale stvari rade na Raspberry Pi.
WS2812B - Ledstrip
Ovo je LED traka sa 60 RGB LED dioda (ako želite, možete kupiti duže trake s više RGB LED dioda). Što je u mom slučaju povezano s Arduino Uno, ali također se može povezati s mnogim drugim uređajima i stvarno je jednostavno za korištenje.
Tehnički list:
GPIO T-Part, 1 Breadboard i puno premosnika
Za povezivanje svega što mi je potrebno za matične ploče i spojne žice, nisam koristio GPIO T-dio, ali pomoću njega možete jasno znati koja kanta kamo ide.
Korak 2: Shema i ožičenje
Za izradu svoje sheme koristio sam Fritzing, to je program koji možete instalirati koji vam omogućuje da stvorite shemu vrlo jednostavno u različitim vrstama pogleda. Koristio sam matičnu ploču i shematski prikaz.
Preuzmite Fritzing:
Provjerite je li sve ispravno povezano. Koristio sam boje kako bih malo jasnije znao gdje spojiti žice. U mom slučaju koristio sam različite boje za žice
Korak 3: Dizajn baze podataka
Prikupljamo mnogo podataka s 3 senzora (temperatura iz DS18B20, svjetlina iz LDR-a i status s PIR-senzora). Zato je najbolje da sve te podatke čuvate u bazi podataka. Objasnit ću u kasnijem koraku kako konfigurirati bazu podataka (Korak 5: Proslijedi inženjering naše baze podataka na RPi!) No prvo se mora napraviti dizajn ili ERD (Entity Relationship Diagram). Moj je normaliziran s 3NF -om, zato smo komponente i povijest komponenti podijelili u drugu tablicu. Koristimo bazu glazbe za praćenje pjesama koje su slušane.
Sve u svemu, ovo je zaista osnovni i jednostavan dizajn baze podataka za daljnji rad.
Korak 4: Postavljanje Raspberry Pi
Dakle, sada kada smo napravili neke osnove projekta. Počnimo s postavljanjem Raspberry Pi!
1. dio: Konfiguriranje SD kartice
1) Preuzmite potrebni softver i datoteke
Za ovaj potpuni proces morate preuzeti 2 softvera i 1 OS, tj. Raspbian. 1. softver: Prvi softver je Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2. softver: Drugi softver je SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Ovo je glavni operativni sustav Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Izdvojite sve datoteke na radnu površinu.
2) Nabavite SD karticu i čitač kartica
Nabavite najmanje 8 GB SD kartice razreda 10 s čitačem kartica. Umetnite tu karticu u čitač kartica i priključite je u USB priključak.
3) Formatirajte SD karticu
Otvorite SD Card Formatter i odaberite pogon.
Pritisnite format i ne mijenjajte druge opcije.
Kad je formatiranje dovršeno, kliknite U redu.
4) Napišite OS na SD karticu
Otvorite win32diskimager.
Pregledajte.img datoteku Raspbian OS -a koja je izdvojena iz preuzete datoteke.
Pritisnite na open, a zatim na Write.
Ako se pojavi upozorenje, zanemarite ga klikom na U redu. Pričekajte da se pisanje dovrši i može potrajati nekoliko minuta. Zato budite strpljivi.
n
5) Nakon što to učinimo, spremni smo za konačne prilagodbe prije stavljanja slike u RPi.
Idite u direktorij svoje SD kartice, potražite datoteku pod nazivom 'cmdline.txt' i otvorite je.
Sada dodajte 'ip = 169.254.10.1' u isti redak.
Spremite datoteku.
Izradite datoteku pod nazivom 'ssh' bez proširenja ili sadržaja. (Najjednostavniji način je stvoriti txt datoteku i nakon toga ukloniti.txt)
Sada kada je sve instalirano na SD kartici, možete je SIGURNO izbaciti iz računala i staviti u Raspberry Pi BEZ povezivanja napajanja. Nakon što SD kartica uđe u RPI, spojite LAN kabel s računala na RPi LAN priključak, nakon što je ovo spojeno, možete spojiti napajanje na RPi.
2. dio: Konfiguriranje RPi -ja
Kit
Sada želimo konfigurirati naš Raspberry Pi, to se radi putem Puttyja.
Softver za kit:
Nakon preuzimanja otvorite Putty i umetnite IP '169.254.10.1' i Port '22' te vrstu veze: SSH.
Sada konačno možemo otvoriti sučelje naredbenog retka i prijaviti se s podacima za prijavu za početak -> Korisnik: pi & Lozinka: malina. (Preporučuje se da ga promijenite što je prije moguće. Evo vodiča kako:
Raspi-config
Morat ćemo omogućiti različita sučelja, a da bismo to učinili, prvo moramo upisati sljedeći kod:
sudo raspi-config
Stvari koje moramo omogućiti su u odjeljku sučelja. Moramo omogućiti sljedeća sučelja:
- Jednožilni
- Serijski
- I2C
- SPI
To je bilo sve što smo trebali učiniti s raspi-config
Dodavanje WIFI -ja
Prvo morate biti root da bi sljedeća naredba postala root
sudo -i
Nakon što ste root, upotrijebite sljedeću naredbu: (Zamijenite SSID mrežnim imenom i zaporkom mrežnom lozinkom)
wpa_passphrase "ssid" "lozinka" >> /etc/wpa_supplicant/wpa_supplicant.conf
U slučaju da ste učinili nešto pogrešno, možete provjeriti, ažurirati ili izbrisati ovu mrežu jednostavnim unosom sljedeće naredbe:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Dakle, nakon što smo ušli u našu mrežu, uđimo u WPA klijentsko sučelje
wpa_cli
Odaberite svoje sučelje
sučelje wlan0
Ponovno učitajte datoteku
ponovno konfigurirati
I na kraju možete vidjeti jeste li dobro povezani:
ip a
3. dio: Ažuriranje softvera RPi + za instaliranje
Sada kada smo spojeni na internet, ažuriranje već instaliranih paketa bio bi pametan potez, pa učinimo to prije instaliranja drugih paketa.
sudo apt-get ažuriranje
sudo apt-get nadogradnja
Nakon ažuriranja RPi -a morat ćemo instalirati sljedeći softver:
Baza podataka MariaDB
sudo apt-get install mariadb-server
Apache2 web poslužitelj
sudo apt instalirajte apache2
Piton
update-alternative --install/usr/bin/python python /usr/bin/python3.7 1 alternative-update --install/usr/bin/python python/usr/bin/python3 2
Python paket
Morat ćete instalirati sve ove pakete kako bi pozadina radila savršeno:
- Boca
- Flask-Cors
- Flask-MySql
- Utičnica za utičnicuIO
- PyMySQL zahtjevi
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Biblioteka zvučnika
Za korištenje zvučnika s pojačalom morat ćemo za njega instalirati biblioteku
uvijati -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
Sada kada smo instalirali sve što nam je potrebno, stavimo našu bazu podataka koju smo dizajnirali na naš Raspberry Pi!
Za postavljanje baze podataka morat ćemo povezati MySql i RPi. Za to ćemo otvoriti MySQLWorkbench i uspostaviti novu vezu. Kada gledate sliku, morat ćete promijeniti podatke kako biste ih promijenili u svoje.
Ako još niste ništa promijenili, možete koristiti za SSH pi i malinu, za MySQL mysql i mysql.
Kad vam nešto nije jasno, možete slijediti i ovaj vodič:
Da biste izvezli bazu podataka, bilo bi lakše koristiti PHPmyAdmin jer možete učiniti mnogo grešaka radeći to s MySql -om
Korak 6: Konfiguriranje Bluetootha na našim RPi -ima
Stvaramo Mood zvučnik koji možemo koristiti i s vlastitom glazbom pa je to lakše kada je RPi
spojen na bluetooth slijedio sam vodič za njega koji možete pronaći ovdje:
scribles.net/streaming-bluetooth-audio-fr…
Ovdje sam zapisao i sve za sve koji to žele ponovno stvoriti
Uklanjanje već pokrenute bluealse
sudo rm/var/run/bluealsa/*
Dodajte ulogu sudopera A2DP profila
sudo bluealsa -p a2dp -umivaonik &
Otvorite bluetooth sučelje i uključite bluetooth
bluetoothctl uključen
Postavite agenta za uparivanje
agent na default-agent
Neka vaš RPi bude otkriven
otkriven na
- Sada sa svog bluetooth uređaja potražite RPi i povežite se s njim.
- Potvrdite uparivanje na oba uređaja, upišite "da" u svoj kit.
- Ovlastite A2DP uslugu, ponovno upišite 'da'.
- Nakon što to učinimo, možemo vjerovati svom uređaju pa ne moramo sve ovo prolaziti svaki put kad se želimo povezati
povjerenje XX: XX: XX: XX: XX: XX (Vaša bluetooth mac adresa s našeg izvornog uređaja)
Ako želite da vaš RPi i dalje bude otkriven, to je vaš vlastiti izbor, ali radije bih ga ponovno isključio, tako da se ljudi ne mogu pokušati povezati s vašim kutijom
otkriven off
Tada možemo izaći iz našeg bluetooth sučelja
Izlaz
I na kraju naše usmjeravanje zvuka: izvorni uređaj koji prosljeđuje na naš RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Sada je naš uređaj povezan s našom malinom putem Bluetootha i trebali biste ga moći testirati reprodukcijom bilo kojeg medija, na primjer Spotify, itd.
Korak 7: Pisanje potpune pozadine
Dakle, sada je postavljanje završeno, konačno možemo početi pisati naš pozadinski program!
Koristio sam Visual Studio Code za cijeli svoj backkend, samo trebate provjeriti je li vaš Visual Studio projekt povezan s vašim Raspberry Pi, to znači da vaš LAN kabel mora biti spojen na vaš RPi i uspostaviti SSH vezu. (informacije o tome kako stvoriti udaljenu vezu možete pronaći ovdje:
Koristio sam vlastite tečajeve i svi su oni također uključeni u moj GitHub.
U svojoj pozadinskoj datoteci koristio sam različite klase, tako da se sve može koristiti zasebno i tako da moj glavni kôd nije nered sa svim različitim nitima. Koristio sam threading za pokretanje svih različitih klasa odjednom. A pri dnu imate sve rute tako da možemo lako doći do podataka na našem sučelju.
Korak 8: Pisanje sučelja (HTML, CSS i JavaScript)
Sada kada je pozadina gotova, možemo početi pisati cijeli front-end.
HTML i CSS su mi bili prilično teški, dao sam sve od sebe da ga prvo napravim mobilnim jer se mogu povezati s njim putem Bluetootha kako bih promijenio pjesme sa Spotifyjem. Tako bi bilo lakše kontrolirati s mobilne nadzorne ploče
Svoju nadzornu ploču možete dizajnirati na bilo koji način, samo ću ostaviti svoj kôd i dizajn ovdje, možete raditi što god želite!
Javascript mi nije bio lakši, radio sam s nekoliko GET -ova s mojih pozadinskih ruta, tona slušatelja događaja i nekim socketio strukturama kako bih dobio podatke od mojih senzora.
Korak 9: Izgradite svoj slučaj i spojite ga zajedno
Prvo sam počeo skicirati kako želim da kućište izgleda, nešto važno je bilo da mora biti dovoljno veliko da se sve uklopi, budući da smo dobili veliki krug za umetanje u kućište, ali morali smo ostati kompaktni kako ne bi ' ne zauzimaju puno prostora
Napravio sam kućište od drveta, mislim da je s njim najlakše raditi kad nemate toliko iskustva u izgradnji kućišta, a imate i puno toga što možete učiniti s njim.
Počeo sam od stare daske koju sam polagao i tek sam počeo piljeti drvo. Nakon što sam imao svoj osnovni kovčeg, samo sam morao izbušiti rupe u njemu (puno na prednjoj strani kućišta, kao što možete vidjeti na slikama i staviti nekoliko čavala u njega, to je stvarno osnovni kovčeg, ali izgleda prilično cool i savršeno pristaje. Odlučila sam ga i obojati u bijelo kako bi dobro izgledao.
A kad je slučaj gotov, došlo je vrijeme da sve to spojite, kao što vidite na posljednjoj slici! Unutar kutije je nered, ali sve funkcionira i nisam imao toliko prostora, pa vam savjetujem da možda stvorite veći slučaj ako ponovno stvarate moj projekt.
Preporučeni:
Stroj za podsjetnik na svjetlinu okoline: 3 koraka
Stroj za podsjetnik okolne svjetline: O ovom stroju: Ako je vaše okruženje previše mračno što bi moglo naštetiti vašim očima, oglasit će se zvuk
PWM regulirani ventilator na temelju temperature procesora za Raspberry Pi: 4 koraka (sa slikama)
PWM regulirani ventilator na temelju temperature procesora za Raspberry Pi: Mnogi slučajevi za Raspberry Pi dolaze s malim 5V ventilatorom kako bi pomogli hlađenju CPU -a. Međutim, ti su ventilatori obično prilično bučni i mnogi ih ljudi priključuju na utičnicu 3V3 kako bi smanjili buku. Ovi ventilatori obično su ocijenjeni za 200mA što je prilično h
Albumi s oznakama NFC za automatsku reprodukciju glazbe Spotify na Chromecastu: 5 koraka
Albumi s NFC oznakama za automatsko reproduciranje Spotify glazbe na Chromecastu: Ovaj je projekt započeo s idejom da napravim kolaž albuma mojih najizvođenijih izvođača na Spotifyju. Nakon malo igranja sa Spotify API -jem u Pythonu, pomislio sam da bi bilo lijepo povezati ove omote albuma sa njihovim Spotify URI -jem i početi svirati
Najveće dionice: Hakirao sam stari telefon za reprodukciju najveće glazbe na čekanju .: 13 koraka (sa slikama)
Najveće dionice: Hakirao sam stari telefon za reprodukciju najveće glazbe na čekanju .: https: //youtu.be/Ma4QnfQ7DxoPa postoji bezbroj drugih uzbudljivih projekata koje možete napraviti s ovim vrlo jednostavnim hakiranjem ovih lako dostupnih "stola" telefoni
Bluetooth zvučnik s vizualizatorom glazbe: 10 koraka (sa slikama)
Bluetooth zvučnik s glazbenim vizualizatorom: U ovom uputstvu pokazat ću vam kako izrađujem ovaj Bluetooth zvučnik koji ima vizualizator glazbe na vrhu. Izgleda stvarno super i čini trenutak slušanja vaše pjesme sjajnijim. Možete odlučiti želite li uključiti vizualizator ili ne