Sadržaj:
- Korak 1: Potrošni materijal
- Korak 2: Shema i ožičenje
- Korak 3: Dizajn baze podataka
- Korak 4: Postavite Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Korak 6: Konfiguriranje Bluetootha na našim RPi
- Korak 7: Pisanje kompletne 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 muzike raspoloženja na osnovu temperature okoline: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Zdravo!
Za svoj školski projekt u MCT Howest Kortrijk, napravio sam Mood Speaker, ovo je pametan Bluetooth zvučnički uređaj s različitim senzorima, uključen LCD i WS2812b LED traka. Zvučnik pušta muziku 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).
Dakle, ovo uputstvo je korak po korak proces kako sam realizirao ovaj projekt u 3 sedmice. Dakle, ako želite rekreirati moj projekt, možete slijediti vodič
Ovo uputstvo je moje prvo koje sam napisao pa ako bude bilo kakvih pitanja, pokušat ću odgovoriti na njih što je brže moguće!
Moj GitHub:
Korak 1: Potrošni materijal
Raspberry Pi 3B i 16GB 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 ekran 16x2
Koristio sam osnovni LCD ekran za štampanje svoje temperature, svjetline i IP adrese.
Tehnički list:
DS18B20 Senzor temperature
DS18B20 je jednožični senzor koji mjeri temperaturu, proizveden od strane Maxim Integrated. Postoje dvije vrste senzora DS18B20, samo komponentna (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 tačnost od 0,5 ° C od -10 ° C do +85 ° C. Takođe ima programibilnu rezoluciju od 9 bita do 12 bita.
Tehnički list:
MCP3008
Za čitanje podataka s LDR i PIR senzora koristio 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 kada padne mrak.
Zvučnik - 3”prečnik - 4 Ohm 3 Watt
Ovo je konus zvučnika koji sam odabrao nakon izračunavanja napona i ampera koji su mu potrebni, a ovo je savršeno odgovaralo mom projektu Raspberry Pi, koji je proizveo 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 se savršeno uklapa i u moj zvučnik i audio sistem.
Pregled:
Tehnički list:
Arduino Uno
Arduino Uno je ploča mikrokontrolera otvorenog koda zasnovana na mikrokontroleru Microchip ATmega328P, proizvođača Arduino.cc. Uno ploča ima 14 digitalnih pinova, 6 analognih pinova i potpuno je programabilna sa Arduino IDE softverom
Pregled:
Levelshifter
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 sa više RGB LED dioda). Što je u mom slučaju povezano s Arduino Uno, ali se može povezati i sa mnogim drugim uređajima i zaista je jednostavno za korištenje.
Tehnički list:
GPIO T-Part, 1 Breadboard i puno kratkospojnika
Za povezivanje svega što mi je potrebno za matične ploče i kratkospojnike, nisam koristio GPIO T-dio, ali pomoću njega možete jasno znati koja kanta gdje 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 kreirate shemu vrlo jednostavno u različitim vrstama prikaza. 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 sa 3 senzora (temperatura iz DS18B20, svjetlina iz LDR-a i status sa PIR-senzora). Zato je najbolje da sve te podatke držite u bazi podataka. Objasnit ću u kasnijem koraku kako konfigurirati bazu podataka (Korak 5: Inženjering naše baze podataka na RPi!) Ali prvo se mora napraviti dizajn ili ERD (Entity Relationship Diagram). Moj je normaliziran s 3NF -om, zato smo podijelili komponente i povijest komponenti u drugu tablicu. Koristimo muzičku bazu podataka da bismo pratili pjesme koje su slušane.
Sve u svemu, ovo je zaista jednostavan i jednostavan dizajn baze podataka za daljnji rad.
Korak 4: Postavite Raspberry Pi
Dakle, sada kada smo završili neke osnove projekta. Započnimo s postavljanjem Raspberry Pi!
1. dio: Konfiguriranje SD kartice
1) Preuzmite potreban softver i datoteke
Za ovaj kompletan proces trebate 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 sistem Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Izvucite sve datoteke na radnu površinu.
2) Nabavite SD karticu i čitač kartica
Nabavite najmanje 8 GB SD kartice razreda 10 sa čitačem kartica. Umetnite tu karticu u čitač kartica i priključite je na USB priključak.
3) Formatirajte SD karticu
Otvorite SD Card Formatter i odaberite pogon.
Kliknite na format i ne mijenjajte druge opcije.
Kada je formatiranje dovršeno, kliknite na OK.
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. Sačekajte da se pisanje završi i može potrajati nekoliko minuta. Zato budite strpljivi.
n
5) Nakon što to učinimo, spremni smo za konačna prilagođavanja prije stavljanja slike u RPi.
Idite u direktorij vaše SD kartice, potražite datoteku pod nazivom 'cmdline.txt' i otvorite je.
Sada dodajte 'ip = 169.254.10.1' u isti red.
Sačuvajte datoteku.
Kreirajte datoteku pod nazivom 'ssh' bez ekstenzije 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čunara i staviti u Raspberry Pi BEZ priključivanja napajanja. Nakon što SD kartica uđe u RPI, povežite LAN kabel s računara na RPi LAN port. Nakon što je ovo spojeno, možete priključiti napajanje na RPi.
Dio 2: Konfiguriranje RPi -ja
Git
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 naredbene linije 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 povezivanja. Moramo omogućiti sljedeće interfejse:
- Jednožilni
- Serial
- I2C
- SPI
To je bilo sve što smo trebali učiniti s raspi-config
Dodavanje WIFI -ja
Prvo morate biti root da bi naredna naredba postala root
sudo -i
Nakon što ste root, upotrijebite sljedeću naredbu: (Zamijenite SSID mrežnim imenom i lozinku lozinkom mreže)
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
interfejs wlan0
Ponovo učitajte datoteku
ponovo konfigurirati
I na kraju možete vidjeti jeste li dobro povezani:
ip a
Dio 3: 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 update
sudo apt-get nadogradnja
Nakon ažuriranja RPi -a morat ćemo instalirati sljedeći softver:
MariaDB baza podataka
sudo apt-get install mariadb-server
Apache2 Web server
sudo apt instalirajte apache2
Python
nadogradnja-alternative --install/usr/bin/python python /usr/bin/python3.7 1 alternative-nadogradnja --install/usr/bin/python python/usr/bin/python3 2
Python paket
Morat ćete instalirati sve ove pakete da bi pozadina radila savršeno:
- Flask
- Flask-Cors
- Flask-MySql
- Flask-SocketIO
- PyMySQL Zahtevi
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Biblioteka zvučnika
Za korištenje zvučnika s pojačalom morat ćemo za njega instalirati biblioteku
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
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 da promijenite podatke 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, trebalo bi biti 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
Kreiramo Mood zvučnik koji možemo koristiti i sa vlastitom muzikom, tako da je 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…
Zapisao sam ovdje i sve za sve koji to žele ponovo 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, unesite kit u svoj kit.
- Ovlastite A2DP uslugu, ponovo upišite 'da'.
- Nakon što to učinimo, možemo vjerovati svom uređaju, pa ne moramo sve ovo prolaziti svaki put kada 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 ga isključujem ponovo, tako da se ljudi ne mogu pokušati povezati s vašim kutijom
otkriveno isključeno
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 kompletne 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 daljinsku vezu možete pronaći ovdje:
Koristio sam vlastite časove 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 na 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 da promijenim pjesme sa Spotifyjem. Tako bi bilo lakše kontrolirati s mobilne nadzorne ploče
Možete dizajnirati svoju nadzornu ploču 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 sa mojih pozadinskih ruta, tonama 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 da ne bi ' ne zauzimaju puno prostora
Napravio sam kućište od drveta, mislim da je s njim najlakše raditi kada nemate toliko iskustva u izgradnji kućišta, a imate i puno stvari koje možete s njim učiniti.
Počeo sam od stare daske koju sam ležao i tek sam počeo da piljem drvo. Jednom kada sam imao svoj osnovni kovčeg, morao sam samo 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 zaista osnovni kovčeg, ali izgleda prilično cool Odlučio sam i da ga ofarbam u bijelo kako bi izgledao dobro.
I kad je slučaj završen, došlo je vrijeme da se sve spoji, kao što vidite na posljednjoj slici! U kutiji je nekakav 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čuje se:
Visinomer (mjerač visine) Na osnovu atmosferskog pritiska: 7 koraka (sa slikama)
Visinomer (mjerač nadmorske visine) na osnovu atmosferskog pritiska: [uredi]; Pogledajte verziju 2 u koraku 6 s ručnim unošenjem osnovne visine. Ovo je opis zgrade visinomjera (mjerača nadmorske visine) zasnovanog na Arduino Nano i Bosch BMP180 senzoru atmosferskog tlaka. Dizajn je jednostavan, ali mjerenja
Mašina za podsjetnik na svjetlinu okoline: 3 koraka
Mašina za podsjetnik na svjetlinu okoline: O ovoj mašini: Ako je vaše okruženje previše tamno što bi moglo naštetiti vašim očima, oglasit će se zvuk koji će vas podsjetiti
PWM regulirani ventilator na osnovu 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 se pomoglo hlađenje CPU -a. Međutim, ovi ventilatori su obično prilično bučni i mnogi ih ljudi priključuju na 3V3 iglu kako bi smanjili buku. Ovi ventilatori su obično ocijenjeni na 200mA, što je prilično h
4 kola sa LED diodama za reakciju muzike -- MIC/AUX kabl/zvučnik: 3 koraka
4 kola sa LED diodama za reakciju muzike || MIC/AUX kabel/zvučnik: Ovo je sklop koji reagira na ambijentalnu muziku i osvjetljava LED diode uz ritmove muzike. Ovdje ću vam pokazati četiri različita načina za stvaranje kola sa LED-om za reakciju na muziku koristeći: -1. Pojedinačni tranzistor 2. Dva tranzistora3. AUX kabel 4. Zvučnik
Najveće dionice: Hakirao sam stari telefon za reprodukciju muzike najvećeg zadržavanja .: 13 koraka (sa slikama)
Najveće dionice: Hakirao sam stari telefon za reprodukciju najveće muzike na čekanju .: https: //youtu.be/Ma4QnfQ7DxoPa postoji bezbroj drugih uzbudljivih projekata koje možete napraviti s ovim osnovnim hakiranjem ovih lako dostupnih "stolova" telefoni