Sadržaj:
- Korak 1: Opskrba
- 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 -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
- 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 promjena: 2024-01-30 09:35
Hej tamo!
Za svoj školski projekt u MCT Howest Kortrijk izradio 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 projekt u 3 tjedna, korak po korak, pa ako netko od vas želi ponovno stvoriti moj projekt, to možete učiniti jednostavno!
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: Opskrba
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:
Senzor potenciometra
Potenciometar je otpornik s tri priključka 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 s I2C sučeljem 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”promjer - 8 Ohm 1 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 NeoPixel prsten povezan s Arduinom i tamo radi, dok sve ostale stvari rade na Raspberry Pi.
RGB NeoPixel prsten
Ovo je mali prsten ispunjen s 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 također se može povezati s mnogim drugim uređajima i stvarno je jednostavno za korištenje.
Pregled:
LCD zaslon 16x2
Koristio sam osnovni LCD zaslon za ispis temperature, volumena i IP adrese.
Tehnički list:
Raspberry Pi 3B+ i 16 GB SD kartica
Cijeli moj projekt radi na mom Raspberry Pi 3B+ s 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 moju shemu koristio sam Fritzing, to je program koji možete instalirati koji vam omogućuje da stvorite shemu jako jednostavno u različitim vrstama prikaza.
Preuzmite Fritzing:
Stoga 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 spojena 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 se mora napraviti dizajn baze podataka ili ERD (Entity Relationship Diagram), a moj je također normaliziran s 3NF. Zato smo senzore podijelili u drugu tablicu i radili s identifikacijskim oznakama.
Sve u svemu, ovo je zaista osnovni i jednostavan dizajn baze podataka za daljnji rad.
Korak 4: Priprema Raspberry Pi
Dakle, sada kada smo napravili neke osnove projekta. Poč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čunalo.
- Otvorite Win32 koji ste upravo preuzeli.
- Odaberite datoteku slike Raspbian koju ste također upravo preuzeli.
- Pritisnite "zapiši" na mjesto svoje SD kartice.
To može potrajati, ovisno o hardveru. Nakon što to učinimo, spremni smo napraviti neke posljednje prilagodbe prije stavljanja slike u naš 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.
- Napravite datoteku pod nazivom 'ssh' bez proširenja ili sadržaja.
Sada možete SIGURNO izbaciti SD karticu iz računala i staviti je u Raspberry Pi BEZ 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.
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 naredbenog retka 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 puno različitih sučelja, omogućiti sva sljedeća sučelja:
- Jednožilni
- SPI
- I2C
- Serijski
Sada kada smo završili s raspi-configom, pokušajmo uspostaviti vezu s internetom.
Wi-Fi veza
Prvo morate biti root za sljedeće naredbe
sudo -i
Nakon što ste root, upotrijebite 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
sučelje wlan0
Ponovno učitajte datoteku
ponovno 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 ažuriranje
sudo apt-get nadogradnja
Baza podataka MariaDB
Instalirajte poslužitelj baze podataka MariaDB:
sudo apt-get install mariadb-server
Apache2 web poslužitelj
Instalirajte web poslužitelj Apache2:
sudo apt instalirajte apache2
Piton
Instalirajte Python:
nadogradnje-alternative --install/usr/bin/python python /usr/bin/python2.7 1
nadogradnje-alternative --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
- Ujson
- Wsaccel
Biblioteka zvučnika
Instalirajte biblioteku zvučnika s tvrtke Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Vrijeme je za ponovno pokretanje
sudo ponovno podizanje sustava
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, ponovno otvorimo kit, prijavite se i upišite:
sudo mysql
i sada ste na sučelju mysql, 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 ponovno pokrenite.
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 -ima
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 odmah 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, 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 potpuno povezan s našom malinom i trebali biste moći reproducirati medije s izvornog uređaja na zvučniku Pi.
Korak 7: Pisanje potpune 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š put implementacije postavljen u vašim postavkama i da ste instalirali sve potrebne pakete, što bi trebalo biti učinjeno već u koraku 4.
Koristio sam vlastite tečajeve i svi su oni također uključeni u moj GitHub. Link je u uvodu u slučaju da ste propustili;)
U svojoj pozadinskoj datoteci koristio sam klase threadinga, tako da sve može raditi u isto vrijeme i neće se međusobno prekidati. 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 učinjeni su prilično jednostavno, pokušali smo raditi na mobilnom uređaju što je više moguće, budući da se najčešće povezujemo s Bluetoothom s mobilnog uređaja, bilo bi lakše upravljati 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!
A Javascript nije bio tako težak, radio je s nekoliko GET -ova s mojih pozadinskih ruta, tonama slušatelja 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 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 futrole za boce vina 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: P) i staviti nekoliko čavala u njega, to je doista osnovni slučaj, ali izgleda super i savršeno pristaje.
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.
Korak 10: Neki problemi koje sam imao na putu stvaranja zvučnika Slimbox …
Pogreške Bluetootha i bluealse
Svaki put kad sam htio pustiti glazbu ili se povezati s bluetoothom, dobivao sam greške od bluetootha i bluealse. Istražio sam to i to je bilo rješenje za moj problem. Pa mi je iz nekog razloga 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 popis
Dakle, ako je softblocked, samo upotrijebite ovo:
rfkill deblokiraj bluetooth
Možda biste htjeli ponovno pokrenuti sustav nakon ovoga, moj izvor:
Problemi sa serijskim povezivanjem
Drugi veliki problem koji sam imao bio je taj što nisam mogao uspostaviti nikakvu vezu sa svojim Arduinom putem prebacivača razina, nakon nekog pretraživanja otkrio sam da je moj '/dev/ttyS0' nestao, a to bi moglo biti zbog ažuriranja vašeg RPi -ja. I za to sam pronašao rješenje
Morat ćete ponovno omogućiti serijsku konzolu s raspi-config, ponovno 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 ponovno pokrenite sustav. To bi trebalo vratiti vaš ttyS0 port, kao i"/dev/serial0 "meku vezu do njega.
Izvor:
Preporučeni:
Zvučnik raspoloženja- snažan zvučnik za reprodukciju glazbe raspoloženja na temelju temperature okoline: 9 koraka
Mood Speaker- snažan zvučnik za reprodukciju glazbe raspoloženja na temelju 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 glazbu u pozadini ovisno o temperaturi, ali može
Gospodin zvučnik - 3D ispisani DSP prijenosni zvučnik: 9 koraka (sa slikama)
Gospodin zvučnik - 3D tiskani DSP prijenosni zvučnik: Moje ime je Simon Ashton i godinama sam izgradio mnogo zvučnika, obično od drveta. Prošle sam godine dobio 3D pisač i htio sam stvoriti nešto što predstavlja jedinstvenu slobodu dizajna koju 3D ispis dopušta. Počeo sam se igrati sa
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 kako biste vidjeli 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 bušilica:
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 sustav kućnog kina poput mene, otkrili ste da na vašem sustavu nedostaje vrlo popularna mogućnost 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čnicu od 3,5 mm i da se napajaju AA baterijama. Prema današnjim standardima, pomalo je zastarjela, posebno baterija jer svaki gadget danas ima punjivu bateriju. Audio priključak je st