Sadržaj:
- Korak 1: Potrošni materijal
- Korak 2: Shema i ožičenje
- Korak 3: Dizajn baze podataka
- Korak 4: Priprema Raspberry Pi
- Korak 5: Proslijedite inženjering naše baze podataka na 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
- Korak 10: Neki problemi koje sam imao na putu stvaranja zvučnika Slimbox …
Video: Slimbox - pametni Bluetooth zvučnik!: 10 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Zdravo!
Za svoj školski projekt u MCT Howest Kortrijk napravio sam pametni Bluetooth zvučnik s različitim senzorima, uključujući LCD i RGB NeoPixel prsten. Sve radi na Raspberry Pi -u (baza podataka, web -poslužitelj, pozadina).
Dakle, u ovom uputstvu ću vam pokazati kako sam napravio ovaj projekat u 3 sedmice, korak po korak, pa ako neko od vas želi da rekreira moj projekat, to možete lako učiniti!
Ovo je ujedno i moje prvo uputstvo, ako imate pitanja, pokušat ću odgovoriti na njih što je brže moguće!
Moj GitHub:
Korak 1: Potrošni materijal
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:
Senzor potenciometra
Potenciometar je otpornik s tri stezaljke koji se ručno podešava jednostavnim okretanjem gornjeg dijela senzora. Položaj gornjeg dijela određuje izlazni napon potenciometra.
LSM303 Akcelerometar + Kompas
LSM303 probojna ploča kombinacija je troosnog akcelerometra i magnetometra / kompasa, proizvođača Adafruit. Koristi se sa I2C interfejsom Raspberry Pi.
Pregled:
Tehnički list:
MCP3008
Za čitanje podataka s mog potenciometra 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:
Zvučnik - 3”prečnik - 8 Ohm 1 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 NeoPixel prsten povezan s Arduinom i tamo radi, dok sve ostale stvari rade na Raspberry Pi.
RGB NeoPixel prsten
Ovo je mali prsten ispunjen sa 12 RGB LED dioda (ako želite, možete kupiti veće prstenove s 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.
Pregled:
LCD ekran 16x2
Koristio sam osnovni LCD ekran za štampanje temperature, zapremine i IP adrese.
Tehnički list:
Raspberry Pi 3B+ i 16GB SD kartica
Cijeli moj projekt radi na mom Raspberry Pi 3B+ sa konfiguriranom slikom, koju ću vam kasnije pomoći u konfiguriranju u mojim uputama.
GPIO T-dio, 2 oglasne ploče i puno premosnika
Za povezivanje svega što mi je potrebno za matične ploče i kratkospojnike upotrijebio sam GPIO T-dio tako da imam više prostora i jasno je koji je pin koji.
Korak 2: Shema i ožičenje
Za svoju shemu koristio sam Fritzing, to je program koji možete instalirati koji vam omogućuje da kreirate shemu vrlo jednostavno u različitim vrstama prikaza.
Preuzmite Fritzing:
Zato pazite da sve povežete na pravi način! U mom slučaju boje žica nisu iste kao na shemi.
Korak 3: Dizajn baze podataka
Prikupljamo mnogo podataka sa 3 povezana senzora, pa nam je potrebna baza podataka za pohranu podataka i senzora. Kasnije ćemo vidjeti kako konfigurirati bazu podataka na Raspberry Pi -u i kako joj dodati podatke. Ali prvo je potrebno napraviti dizajn baze podataka ili ERD (Entity Relationship Diagram), a moj je također normaliziran sa 3NF. Zato smo senzore podijelili u drugu tablicu i radili s ID -ovima.
Sve u svemu, ovo je zaista jednostavan i jednostavan dizajn baze podataka za daljnji rad.
Korak 4: Priprema Raspberry Pi
Dakle, sada kada smo završili neke osnove projekta. Započnimo s Raspberry Pi!
Konfiguracija SD kartice
Prvo vam je potrebna SD kartica od 16 GB na koju možete staviti svoju sliku i program za postavljanje početne slike na SD karticu.
Softver:
Početna slika:
Dakle, nakon što se preuzmu:
- Stavite SD karticu u računar.
- Otvorite Win32 koji ste upravo preuzeli.
- Odaberite datoteku slike Raspbian koju ste upravo preuzeli.
- Pritisnite 'upiši' na lokaciju svoje SD kartice.
To može potrajati, ovisno o vašem hardveru. Kada se to učini, 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.
- Napravite datoteku pod nazivom 'ssh' bez ekstenzije ili sadržaja.
Sada možete SIGURNO izbaciti SD karticu iz računara i staviti je u Raspberry Pi BEZ 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.
Sada želimo kontrolirati 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.
Raspi-config
sudo raspi-config
Ono što je zaista važno za ovaj projekt je odjeljak sučelja, moramo omogućiti mnogo različitih sučelja, omogućiti sva sljedeća sučelja:
- Jednožilni
- SPI
- I2C
- Serial
Sada kada smo završili s raspi-config, pokušajmo uspostaviti vezu s internetom.
Wi-Fi veza
Prvo morate biti root za sljedeće naredbe
sudo -i
Nakon što ste root, koristite sljedeću naredbu. SSID je naziv vaše mreže, a lozinka je očito lozinka.
wpa_passphrase "ssid" "lozinka" >> /etc/wpa_supplicant/wpa_supplicant.conf
U slučaju da ste pogriješili, možete provjeriti, ažurirati ili izbrisati ovu mrežu jednostavnim unosom te datoteke:
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
Ažuriraj i nadogradi
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
MariaDB baza podataka
Instalirajte server baze podataka MariaDB:
sudo apt-get install mariadb-server
Apache2 Web server
Instalirajte web server Apache2:
sudo apt instalirajte apache2
Python
Instalirajte Python:
nadogradnje-alternative --install/usr/bin/python python /usr/bin/python2.7 1
update-alternative --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
- Zahtjevi
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- Wsaccel
Biblioteka zvučnika
Instalirajte biblioteku zvučnika s Adafruit -a:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Vrijeme je za ponovno pokretanje
sudo reboot
Korak 5: Proslijedite inženjering naše baze podataka na RPi
Sada kada smo instalirali sve što nam je potrebno, stavimo našu bazu podataka koju smo dizajnirali na naš Raspberry Pi!
Dakle, prvo moramo proslijediti inženjering naše baze podataka na radnom stolu MySql, dok to radimo, kopirajte cijeli kôd baze podataka i izbrišite sve 'vidljive' riječi u njoj. Pa kad se to kopira, ponovo otvorimo kit, prijavite se i upišite:
sudo mysql
i sada ste u mysql sučelju, kopirajte kôd baze podataka u njega i pritisnite enter.
Sada samo trebamo stvoriti korisnika
CREATE USER 'user' IDENTIFIED BY 'user';
OSTVARITE SVE PRIVILEGIJE NA *. * 'Korisniku';
Sada ponovo pokrenite sistem.
Dakle, sada bi sve trebalo biti postavljeno, možete uspostaviti vezu i sa svojim Pi i MySql radnim stolom, tako da je lakše provjeriti sve podatke u vašim tablicama.
Korak 6: Konfiguriranje Bluetootha na našim RPi
Stvaramo Bluetooth zvučnik, pa to znači da se mediji šalju s našeg izvora na Raspberry Pi, a to se može učiniti prilično jednostavno, prijeđimo na to!
Moj izvor Bluetooth veze:
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čeno
Postavite agenta za uparivanje
agent uključen
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 potpuno povezan s našom malinom i trebali biste moći reproducirati medije s izvornog uređaja na Pi zvučniku.
Korak 7: Pisanje kompletne pozadine
Dakle, sada je postavljanje završeno, konačno možemo početi pisati naš pozadinski program!
Koristio sam PyCharm za cijeli svoj backkend, samo trebate provjeriti je li vaš PyCharm projekt povezan s vašim Raspberry Pi, to znači da je vaša putanja postavljanja postavljena u vašim postavkama i da ste instalirali sve potrebne pakete, što bi trebalo biti učinjeno već u koraku 4.
Koristio sam vlastite časove i svi su oni također uključeni u moj GitHub. Link je u uvodu u slučaju da ste propustili;)
U pozadinskoj datoteci koristio sam klase threadinga, tako da sve može raditi u isto vrijeme i neće se međusobno prekidati. 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 bili prilično jednostavni, pokušali smo raditi na mobilnom uređaju što je više moguće, budući da se najčešće povezujemo putem Bluetootha s mobilnog uređaja, bilo bi 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!
A Javascript nije bio tako težak, radio je s nekoliko GET -ova sa mojih pozadinskih ruta, tonama slušalaca događaja i nekim socketio strukturama.
Korak 9: Izgradite svoj slučaj i spojite ga zajedno
Prvo sam počeo s nekim skicama 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 imamo veliki krug za umetanje u kućište.
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 futrole za vinske boce i tek počeo pilati 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: P) i staviti nekoliko čavala u njega, to je zaista osnovni kovčeg, ali izgleda super i savršeno pristaje.
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.
Korak 10: Neki problemi koje sam imao na putu stvaranja zvučnika Slimbox …
Greške Bluetootha i bluealse
Svaki put kad sam htio puštati muziku ili se povezati sa bluetoothom, dobivao sam greške od bluetootha i bluealse. Istraživao sam o tome i to je bilo rješenje za moj problem. Tako je iz nekog razloga moj bluetooth bio softblokiran, nisam siguran je li ovo standardni soft soft blokiran. Možete provjeriti je li tako da upišete sljedeću naredbu u svoj Putty.
rfkill lista
Dakle, ako je softblokirano, samo upotrijebite ovo:
rfkill deblokirajte bluetooth
Možda biste htjeli ponovno pokrenuti sustav nakon ovoga, moj izvor:
Problemi sa serijskim povezivanjem
Još jedan veliki problem koji sam imao je taj što nisam mogao uspostaviti nikakvu vezu sa svojim Arduinom putem prebacivača nivoa, nakon nekog pretraživanja otkrio sam da je moj '/dev/ttyS0' nestao i da je to možda zbog ažuriranja vašeg RPi -ja. Našao sam rješenje i po ovom pitanju
Morat ćete ponovo omogućiti serijsku konzolu s raspi-config, ponovo pokrenuti sistem, a zatim ručno ukloniti bit "console = serial0, 115200" iz '/boot/cmdline.txt'. Potvrdite da je "enable_uart = 1" u' /boot/config.txt ', i ponovo pokrenite sistem. To bi trebalo vratiti vaš ttyS0 port, kao i'/dev/serial0 'soft vezu do njega.
Izvor:
Preporučuje se:
Zvučnik raspoloženja- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: 9 koraka
Mood Speaker- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: Zdravo! Za moj školski projekt u MCT Howest Kortrijk, napravio sam Mood Speaker, ovo je pametni Bluetooth zvučnik s različitim senzorima, LCD-om i WS2812b LED traka uključena. Zvučnik pušta muziku u pozadini na osnovu temperature, ali može
Uradi sam: Mikro Bluetooth zvučnik / PC USB zvučnik: 8 koraka
Uradi sam: Mikro Bluetooth zvučnik/PC Usb Soundbar zvučnika: Provjerite video iznad da vidite kako se reproducira. Mali Bluetooth zvučnik i USB "zvučna kartica" 1 inčni zvučnici: http://bit.ly/2N5Jro3 2000mah Baterija: http: // bit .ly/2XuVRtG Audio modul: http://bit.ly/2XuVRtG Koračna burgija:
DIY zvučnik sa manje distorzije LIFI Zvučnik: 6 koraka
DIY distortion Less LIFI zvučnik: Danas ću vam u ovom uputstvu pokazati kako napraviti LiFi zvučnik, tj. Koristi svjetlo za prijenos podataka. U manje od 30 minuta. Ovo uputstvo sadrži cijeli detalj poput procedure projektiranja, dijagrama kruga i opisa
Kako pretvoriti bilo koji zvučnik u BLUETOOTH ZVUČNIK: 5 koraka
Kako pretvoriti bilo koji zvučnik u BLUETOOTH ZVUČNIK: Ako imate stari sistem kućnog kina poput mene, otkrili ste da na vašem sistemu nedostaje vrlo popularna opcija povezivanja, nazvana Bluetooth. Bez ove mogućnosti morate se suočiti s žičanim neredom normalne AUX veze i, naravno, ako
Pretvorite bilo koji zvučnik u Bluetooth zvučnik: 4 koraka
Pretvorite bilo koji zvučnik u Bluetooth zvučnik: Prije nekoliko godina bilo je uobičajeno da prijenosni zvučnici imaju priključak od 3,5 mm i da se napajaju AA baterijama. Po današnjim standardima, to je pomalo zastarjelo, posebno baterija, jer svaki gadget danas ima punjivu bateriju. Audio priključak je st