Sommario:
- Passaggio 1: materiali di consumo
- Passaggio 2: schema e cablaggio
- Passaggio 3: progettazione del database
- Passaggio 4: configurare Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Passaggio 6: configurazione del Bluetooth sul nostro RPi
- Passaggio 7: scrivere il backend completo
- Passaggio 8: scrittura del frontend (HTML, CSS e JavaScript)
- Passaggio 9: costruire il mio caso e mettere tutto insieme
Video: Mood Speaker: un potente altoparlante per riprodurre musica d'atmosfera in base alla temperatura ambiente: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Ehilà!
Per il mio progetto scolastico all'MCT Howest Kortrijk, ho realizzato un Mood Speaker, un dispositivo altoparlante Bluetooth intelligente con diversi sensori, un LCD e una striscia led WS2812b inclusi. L'altoparlante riproduce musica di sottofondo in base alla temperatura ma può anche essere utilizzato come un normale bluetooth altoparlante. Tutto gira sul Raspberry Pi (Database, Webserver, Backend).
Quindi questo tutorial è un processo passo passo di come ho realizzato questo progetto in 3 settimane. Quindi se volete ricreare il mio progetto potete seguire la guida
Questo istruibile è il primo che ho scritto, quindi se ci sono domande, proverò a rispondere il più velocemente possibile!
Il mio GitHub:
Passaggio 1: materiali di consumo
Scheda SD Raspberry Pi 3B e 16 GB
Il mio intero progetto viene eseguito sul mio Raspberry Pi 3B con un'immagine configurata, che spiegherò in un passaggio successivo (Passaggio 4: configurazione del Raspberry Pi)
Display LCD 16x2
Ho usato un display LCD di base per stampare la mia temperatura, luminosità e indirizzo IP.
Scheda tecnica:
Sensore di temperatura DS18B20
Il DS18B20 è un sensore a un filo che misura la temperatura, prodotto da Maxim Integrated. Ci sono 2 tipi di sensori DS18B20, il solo componente (che ho usato io) e la versione impermeabile, che è molto più grande, ma non è quello che mi serviva per il mio progetto, quindi ho usato solo il componente. Il sensore può misurare la temperatura in un intervallo da -55°C a +125°C (da -67°F a +257°F) e ha una precisione di 0,5°C da -10°C a +85°C. Ha anche una risoluzione programmabile da 9 bit a 12 bit.
Scheda tecnica:
MCP3008
Per leggere i dati dal mio sensore LDR e PIR ho usato un MCP3008, che è un convertitore da analogico a digitale a 8 canali a 10 bit con interfaccia SPI ed è abbastanza facile da programmare.
Scheda tecnica:
Sensore di movimento PIR
Per rilevare quando c'è qualcuno che entra ed esce dalla mia stanza, ho usato un sensore a infrarossi passivo perché sono facili da usare e sono piccoli.
Scheda tecnica:
LDR
Ho usato una fotoresistenza o LDR (Light Decreasing Resistance, o resistore dipendente dalla luce) per rilevare il livello di luminosità della stanza in cui si trova. E anche per accendere il mio Ledstrip quando è buio.
Altoparlante – Diametro 3” – 4 Ohm 3 Watt
Questo è il cono dell'altoparlante che ho scelto dopo aver calcolato la tensione e gli ampere di cui avrebbe avuto bisogno e questo era perfetto per il mio progetto Raspberry Pi, prodotto da Adafruit.
Panoramica:
MAX98357 Amplificatore mono in classe D I2S
Questo è l'amplificatore che viene fornito con l'altoparlante, non solo è un amplificatore, è anche un convertitore da digitale ad analogico I2S, quindi è anche perfetto per il mio sistema di altoparlanti e audio.
Panoramica:
Scheda tecnica:
Arduino Uno
Arduino Uno è una scheda microcontrollore open source basata sul microcontrollore Microchip ATmega328P, prodotta da Arduino.cc. La scheda Uno ha 14 pin digitali, 6 pin analogici ed è completamente programmabile con il software Arduino IDE
Panoramica:
Traslatore di livello
Questa è una piccola scheda che si occupa della comunicazione tra Arduino Uno e Raspberry Pi e le diverse tensioni, Arduino: 5V e Raspberry Pi: 3.3V. Questo è necessario perché il ledstrip è collegato ad Arduino e gira lì, mentre tutte le altre cose girano sul Raspberry Pi.
WS2812B - Striscia led
Questa è una striscia led con 60 led RGB (puoi acquistare strisce più lunghe con più led RGB, se lo desideri). Che nel mio caso è collegato all'Arduino Uno, ma può essere collegato anche a molti altri dispositivi ed è davvero semplice da usare.
Scheda tecnica:
GPIO T-Part, 1 breadboard e molti jumperwires
Per collegare tutto ciò di cui avevo bisogno breadboard e jumperwire, non ho usato la parte T GPIO ma puoi usarla per sapere chiaramente quale contenitore va dove.
Passaggio 2: schema e cablaggio
Per realizzare il mio schema ho usato Fritzing, è un programma che puoi installare che ti permette di creare uno schema molto facilmente in diversi tipi di viste. Ho usato la breadboard e la vista schematica.
Scarica Fritzing:
Assicurati che tutto sia collegato correttamente. Ho usato i colori per rendere un po' più chiaro sapere dove collegare i fili. Nel mio caso ho usato colori diversi per i fili
Passaggio 3: progettazione del database
Stiamo raccogliendo molti dati dai 3 sensori (temperatura da DS18B20, luminosità da LDR e stato da sensore PIR). Quindi è meglio conservare tutti questi dati in un database. Spiegherò in un passaggio successivo come configurare il database (Fase 5: Forward Engineering Our Database to the RPi!) Ma prima deve essere realizzato il design o ERD (Entity Relationship Diagram). Il mio è stato normalizzato con 3NF, ecco perché abbiamo diviso i componenti e la cronologia dei componenti in un'altra tabella. Usiamo il database Musica per tenere traccia delle canzoni che sono state ascoltate.
Nel complesso, questo è un progetto di database davvero semplice e semplice con cui lavorare ulteriormente.
Passaggio 4: configurare Raspberry Pi
Quindi ora che abbiamo fatto alcune basi del progetto. Iniziamo con la configurazione del Raspberry Pi!
Parte 1: Configurazione della scheda SD
1) Scarica il software e i file richiesti
È necessario scaricare 2 software e 1 sistema operativo, ad esempio Raspbian per questo processo completo. Primo software: il primo software è Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2° software: il secondo software è SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Sistema operativo Raspbian: questo è il sistema operativo principale del Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Estrai tutti i file sul desktop.
2) Prendi la scheda SD e il lettore di schede
Ottieni una scheda SD di classe 10 da almeno 8 GB con un lettore di schede. Inserisci quella scheda nel lettore di schede e collegala alla porta USB.
3) Formattare la scheda SD
Apri SD Card Formatter e seleziona l'unità.
Fare clic su formato e non modificare altre opzioni.
Al termine della formattazione, fare clic su OK.
4) Scrivi il sistema operativo sulla scheda SD
Apri win32diskimager.
Sfoglia il file.img del sistema operativo Raspbian che è stato estratto dal file scaricato.
Fare clic su Apri e quindi su Scrivi.
Se vengono visualizzati avvisi, ignorali facendo clic su OK. Attendi il completamento della scrittura e potrebbero volerci alcuni minuti. Quindi sii paziente.
n
5) Fatto ciò, siamo pronti per apportare alcune modifiche finali prima di inserire l'immagine nel nostro RPi.
Vai alla directory della tua scheda SD, cerca il file chiamato "cmdline.txt" e aprilo.
Ora aggiungi 'ip=169.254.10.1' sulla stessa riga.
Salva il file.
Crea un file chiamato 'ssh' senza estensione o contenuto (il modo più semplice è creare un file txt e rimuovere il.txt in seguito)
Ora che tutto è installato sulla scheda SD puoi espellerlo SICURAMENTE dal tuo computer e inserirlo nel Raspberry Pi SENZA collegare l'alimentazione. Una volta che la scheda SD è nell'RPI, collegare un cavo LAN dal computer alla porta LAN dell'RPi, una volta collegata è possibile collegare l'alimentazione all'RPi.
Parte 2: Configurazione di RPi
mastice
Ora vogliamo configurare il nostro Raspberry Pi, questo viene fatto tramite Putty.
Software Putty:
Una volta scaricato, apri Putty e inserisci l'IP '169.254.10.1' e la porta '22' e il tipo di connessione: SSH.
Ora possiamo finalmente aprire la nostra interfaccia a riga di comando e accedere con le informazioni di accesso di avvio -> Utente: pi e Password: raspberry. (Si consiglia di cambiarlo il più rapidamente possibile. Ecco una guida come:
Raspi-config
Dovremo abilitare diverse interfacce e per farlo dobbiamo prima digitare il seguente codice:
sudo raspi-config
Le cose che dobbiamo abilitare sono nella sezione interfacciamento. Dobbiamo abilitare le seguenti interfacce:
- Un filo
- Seriale
- I2C
- SPI
Questo era tutto ciò che dovevamo fare con raspi-config
Aggiungere il tuo WIFI
Innanzitutto, devi essere root affinché il seguente comando diventi root
sudo -i
Una volta che sei root, usa il seguente comando: (Sostituisci SSID con il tuo nome di rete e password con la tua password di rete)
wpa_passphrase "ssid" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf
Nel caso in cui tu abbia fatto qualcosa di sbagliato, puoi controllare, aggiornare o eliminare questa rete semplicemente inserendo il seguente comando:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Quindi, dopo essere entrati nella nostra rete, entriamo nell'interfaccia client WPA
wpa_cli
Seleziona la tua interfaccia
interfaccia wlan0
Ricarica il file
riconfigurare
E finalmente puoi vedere se sei connesso bene:
ip a
Parte 3: Aggiornamento dell'RPi + installazione del software
Ora che siamo connessi a Internet, aggiornare i pacchetti già installati sarebbe una mossa intelligente, quindi facciamolo prima di installare altri pacchetti.
sudo apt-get update
sudo apt-get upgrade
Dopo aver aggiornato l'RPi dovremo installare il seguente software:
Database MariaDB
sudo apt-get install mariadb-server
Server Web Apache2
sudo apt install apache2
Pitone
update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1 update-alternatives --install /usr/bin/python python /usr/bin/python3 2
Pacchetto Python
Dovrai installare tutti questi pacchetti per far funzionare perfettamente il backend:
- Borraccia
- Flask-Cors
- Flask-MySql
- Flask-SocketIO
- Richieste PyMySQL
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Libreria dei relatori
Per utilizzare l'altoparlante con l'amplificatore dovremo installare una libreria per esso
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
Ora che abbiamo installato tutto ciò di cui avevamo bisogno, mettiamo il nostro database che abbiamo progettato sul nostro Raspberry Pi!
Per configurare il database dovremo connettere MySql e RPi. Per questo apriremo MySQLWorkbench e creeremo una nuova connessione. Quando guardi l'immagine dovrai cambiare per cambiare le informazioni con le tue.
Se non hai ancora cambiato nulla puoi usare per SSH pi e raspberry, per MySQL mysql e mysql.
Quando qualcosa non è chiaro puoi anche seguire questo tutorial:
Per esportare il tuo database dovrebbe essere più semplice usare PHPmyAdmin perché puoi ottenere molti errori facendolo con MySql
Passaggio 6: configurazione del Bluetooth sul nostro RPi
Stiamo creando un altoparlante Mood, che possiamo usare anche con la nostra musica, quindi è più facile quando l'RPi è
connesso al bluetooth ho seguito un tutorial per questo che puoi trovare qui:
scribles.net/streaming-bluetooth-audio-fr…
Ho scritto tutto anche qui per tutti coloro che vogliono ricrearlo
Rimozione del bluealsa già in esecuzione
sudo rm /var/run/bluealsa/*
Aggiungi profilo A2DP Ruolo sink
sudo bluealsa -p a2dp-sink &
Apri l'interfaccia bluetooth e accendi il bluetooth
bluetoothctl accensione
Configura un agente di associazione
agente su default-agent
Rendi rilevabile il tuo RPi
rilevabile su
- Ora dal tuo dispositivo bluetooth, cerca l'RPi e connettiti con esso.
- Conferma l'associazione su entrambi i dispositivi, digita "sì" nel tuo mastice.
- Autorizza il servizio A2DP, digita di nuovo "sì".
- Una volta fatto questo, possiamo fidarci del nostro dispositivo, quindi non dobbiamo fare tutto questo ogni volta che vogliamo connetterci
fidati di XX:XX:XX:XX:XX:XX (il tuo indirizzo mac bluetooth dal nostro dispositivo di origine)
Se vuoi che il tuo RPi continui a essere rilevabile, è una tua scelta, ma preferisco disattivarlo di nuovo, in modo che le persone non possano provare a connettersi con la tua scatola
rilevabile spento
Quindi possiamo uscire dalla nostra interfaccia bluetooth
Uscita
E infine il nostro routing audio: il nostro dispositivo sorgente che inoltra al nostro RPi
bluealsa-aplay 00:00:00:00:00:00
Ora il nostro dispositivo è connesso al nostro Raspberry con bluetooth e dovresti essere in grado di testarlo riproducendo qualsiasi media, ad esempio Spotify, ecc.
Passaggio 7: scrivere il backend completo
Quindi ora che l'installazione è terminata, possiamo finalmente iniziare a scrivere il nostro programma di backend!
Ho usato Visual Studio Code per tutto il mio backend, devi solo assicurarti che il tuo progetto Visual Studio sia connesso al tuo Raspberry Pi, questo significa che il tuo cavo LAN deve essere connesso al tuo RPi e per creare una connessione SSH. (le informazioni su come creare una connessione remota sono disponibili qui:
Ho usato le mie classi e anche queste sono tutte incluse nel mio GitHub.
Nel mio file di backend ho usato classi diverse, quindi tutto può essere usato separatamente e in modo che il mio codice principale non sia un pasticcio con tutti i diversi thread. Ho usato il threading per eseguire tutte le diverse classi contemporaneamente. E in fondo hai tutti i percorsi in modo che possiamo facilmente ottenere i dati nel nostro frontend.
Passaggio 8: scrittura del frontend (HTML, CSS e JavaScript)
Ora che il backend è terminato, possiamo iniziare a scrivere il front-end completo.
HTML e CSS sono stati piuttosto difficili per me, ho fatto del mio meglio per renderlo mobile prima perché posso connettermi con il bluetooth per cambiare le canzoni con Spotify. Quindi sarebbe più facile controllare da una dashboard mobile
Puoi progettare la tua dashboard in qualsiasi modo tu voglia, lascerò solo il mio codice e il mio design qui, puoi fare quello che vuoi!
E Javascript non è stato più facile per me, ha funzionato con alcuni GET dai miei percorsi di backend, tonnellate di ascoltatori di eventi e alcune strutture socketio per ottenere i dati dai miei sensori.
Passaggio 9: costruire il mio caso e mettere tutto insieme
Per prima cosa ho iniziato a fare uno schizzo di come volevo che fosse il case, qualcosa di importante era che doveva essere abbastanza grande da contenere tutto, dato che avevamo un grande circuito da inserire nel case ma dovevamo rimanere compatto in modo che non fosse non occupa molto spazio
Ho realizzato la custodia in legno, penso che sia il modo più semplice con cui lavorare quando non hai molta esperienza con la costruzione di custodie e hai anche molte cose che puoi fare con essa.
Sono partito da una vecchia tavola che avevo in giro e ho appena iniziato a segare il legno. Una volta che ho avuto la mia custodia di base, ho dovuto solo praticare dei fori (molti sulla parte anteriore della custodia, come puoi vedere nelle foto e mettere dei chiodi, è una custodia davvero semplice, ma sembra piuttosto bella e si adatta perfettamente Ho anche deciso di dipingerlo di bianco per farlo sembrare bello.
E una volta che il caso è stato fatto, è arrivato il momento di mettere tutto insieme, come puoi vedere nell'ultima foto! È un po' un casino all'interno della scatola, ma funziona tutto e non avevo molto più spazio, quindi ti consiglio di creare una custodia più grande se stai ricreando il mio progetto.
Consigliato:
Utilizzo di uno stereo per auto per riprodurre Mp3 su un vecchio stereo di casa: 7 passaggi
Utilizzo di uno stereo per auto per riprodurre Mp3 su un vecchio stereo di casa: Riproduzione di file mp3 sullo stereo di casa Negli ultimi due decenni ho scaricato o copiato circa 5000 brani rock classici e avevo bisogno di un modo semplice per riprodurre file di musica digitale su un vecchio stereo di casa. Ho un computer home theater (HTC) collegato
Album con tag NFC per riprodurre automaticamente Spotify Music su Chromecast: 5 passaggi
Album con tag NFC per riprodurre automaticamente Spotify Music su Chromecast: questo progetto è iniziato con l'idea di creare un collage di album dei miei artisti più ascoltati su Spotify. Dopo aver giocato con l'API di Spotify in Python, ho pensato che sarebbe stato bello collegare queste copertine di album ai loro URI di Spotify e iniziare a riprodurre il
Greatest Holdies: ho hackerato un vecchio telefono per riprodurre la migliore musica d'attesa.: 13 passaggi (con immagini)
Greatest Holdies: ho hackerato un vecchio telefono per riprodurre la migliore musica d'attesa.: https://youtu.be/Ma4QnfQ7DxoWell… Sono abbastanza sicuro che tu non voglia un telefono che riproduca solo musica d'attesa… Ma ci sono innumerevoli altri progetti entusiasmanti che puoi realizzare con questo hack molto semplice di questi "scrivania" facilmente disponibili. telefoni
Altoparlante Bluetooth con matrice LED reattiva alla musica: 12 passaggi (con immagini)
Altoparlante Bluetooth con matrice LED reattiva alla musica: questo progetto è stato inserito nel Wireless Contest e nel LED Contest -- se ti piace, apprezzerei molto il tuo voto. Grazie! Ho progettato e costruito un altoparlante Bluetooth fai da te con una matrice LED integrata. La matrice LED include una serie di dif
Come riprodurre musica tramite un amplificatore per chitarra: 4 passaggi
Come riprodurre musica tramite un amplificatore per chitarra: questo è un tutorial che ti mostrerà come riprodurre musica tramite un amplificatore per chitarra Divertiti