MP3 player su esp8266 (Tasmota) - come integrarlo in Home Assistant
di Luigi Duchi
08 Dicembre 2021
Domotica
Ogni volta che mi capita tra le mani un esp8266 immagino sempre un nuovo progetto. Un chip veramente versatile, solo di recente sostituito con il più performante chip ESP32.
Abbiamo visto in passato molti progetti sul nostro Blog che facevano proprio uso dell'esp8266.
Ne indico alcuni qui sotto tra i più interessanti:
Home Assistant e climatizzatori - D1 Mini per clonare la centralina di un Mitsubishi
Costruiamo un anemometro con un D1 mini e integriamolo in Home Assistant
Come rendere Smart le Strip Led digitali grazie al firmware WLED
Nel progetto di oggi vedremo come trasformare un ESP8266 in un vero mp3 player grazie al firmware tasmota e come poterlo integrare in Home Assistant.
Il progetto si basa su un dispositivo molto interessante da accoppiare al nodeMCU.
DFRobot DFPlayer Mini MP3 Player
Questo piccolo chip munito di lettore di schede microSD, permette, una volta opportunamente connesso ad un nodeMCU (o ad un d1 mini), di riprodurre file musicali, grazie anche all'uscita speaker alla quale si potranno collegare 2 piccole casse direttamente amplificate dal df player. In alternativa sarà possibile usare un'uscita dac alla quale poter connettere delle casse pre-amplificate.
Vi starete chiedendo a cosa possa servire questa soluzione, apparentemente banale, e che qualsiasi smartphone fa decisamente meglio!
Più in la nell'articolo mostreremo come, tramite protocollo MQTT, sarà possibile far dialogare questo semplicissimo sistema con Home Assistant.
Immaginare dunque per esempio di far partire frasi pre-campionate personalizzate per la vostra domotica. Il risultato vi assicuro che non è affatto male!
Prima di andare avanti nella guida guardiamo cosa serve per realizzare il progetto.
La maggior parte di voi (se vi piace smanettare con queste cose) avrà già a casa parte del materiale, ma per agevolare chi si avvicina per la prima volta a progetti del genere inserisco tutto il materiale necessario.
LISTA DELLA SPESA:
1 NodeMCU che potrete acquistare QUI (in realtà è il kit da 3 ma è molto conveniente).
1 DFPlayer mini, vi consiglio di acquistare questo QUI in quanto include i due piccoli speaker.
2 resistenze d 1kohm ma, perchè no, acquistate un set completo, fanno sempre comodo per vari progetti. Disponibili QUI
Se vorrete provare il vostro progetto prima di saldarlo su una basetta mille fori, l'accessorio che non deve mancare mai nella casa del perfetto smanettone è la breadbord con i rispettivi jumper. Vi consiglio questo kit QUI
Eventualmente se non vorrete usare le casse incluse (non vi aspettate miracoli da quelle) potrete usare un uscita jack a 3 pin acquistabile QUI
Partiamo con il progetto:
La prima cosa che dovrete fare è andare alla pagni di tasmota che riguarda il DFPlayer: la troverete QUI
Vi accorgerete che per questo dispositivo servirà la versione sensor di tasmota, la potrete scaricare dalla pagina ufficiale QUI
Una volta scaricata dovrete procurarvi un programma per flashare il nodeMCU.
Ce ne sono tantissimi, io utilizzo spesso ESPHome-Flasher, lo potrete reperire gratuitamente dalla pagina ufficiale github che trovate QUI
Collegate il vostro nodeMCU tramite usb al computer (se è la prima volta che lo fate dovrete reperire i driver gratuitamente sul web)
Aprite il programma ESPHome-Flasher.
Alla voce serial port dovrete selezionare la usb alla quale è collegato il vostro nodeMCU.
Mentre cliccando su Browse andrete a cercare il vostro file tasmota-sensor.bin
Una volta effettuato queste operazioni cliccate su Flash ESP
Attendete la fine della procedura e vi ritroverete tasmota sul dispositivo.
Adesso aprite le impostazioni wifi del vostro smartphone e cercate una rete wifi chiamata tasmota.
Connettetevi a quella rete che, per ovvie ragioni, non avrà connessione internet. Vi dovrebbe portare ad una pagina sulla quale potrete selezionare la vostra rete wifi con la vostra password. Se cosi non fosse andate sul browser e digitate l'indirizzo 192.168.4.1
Una volta inseriti i vostri dati attendete che il nodeMCU si connetta alla vostra rete e attendete che vi mostri quale indirizzo ip il vostro router gli abbia assegnato.
nel mio caso 192.168.1.111
Recatevi a quell'indirizzo dal vostro browser (ovviamente dovrete essere connessi alla stessa rete wifi alla quale avete collegato il nodeMCU).
Questa sarà la pagina che vi si presenterà:
Cliccate su configuration e successivamente configure module
Dal menù a tendina selezionate generic (18), in genere è l'ultimo della lista.
Cliccate su save e attendete che il nodeMCUsi riavvii.
Vi ritroverete a questa schermata.
Tornate nuovamente su configuration e successivamente configure module
Questa volta però troverete questa schermata.
Dovrete modificare come unico parametro quello che vedete nella foto sottostante e cliccare su save.
Adesso dovrete configurare MQTT. Per farlo cliccate nuovamente su configuration e successivamente configure mqtt
Alla voce host dovrete inserire l'indirizzo ip del vostro broker MQTT.
(se lo avete installato su Home Assistant, è il suo ip)
Alle voci user e password dovrete inserire le credenziali utilizzate in fase di configurazione del broker ed infine, se volete, potrete personalizzare il topic.
Io lo ho chiamato mp3.
Cliccate su save e, una volta riavviato, sarete pronti per i cablaggi.
Quindi sconnettete il nodeMCU dal vostro PC e andate a seguire uno dei seguenti schemi.
Questo è lo schema più classico una sola cassa senza uscita aux. Da notare le due resistenze da 1kohm molto utili per ridurre il "rumore" degli speaker.
Questo è lo schema che ho seguito per la guida odierna doppio speaker senza uscita aux.
Ed infine c'è lo schema con l'uscita aux. In questo schema c'è un d1 mini al posto del nodeMCU, ma di fatto non cambia nulla. Eventualmente su tasmota dovrete cambiare la gpio alla quale assegnare la funzione mp3.
In questo caso potrete rimuovere anche lo speaker e lasciare la sola uscita aux.
Una volta completato il cablaggio, indipendentemente dallo schema che avete scelto, dovrete preparare la scheda microSD.
Il DFPlayer accetta i formati fat16 e fat32 come formattazione della sd e la stessa non dovrà superare i 32GB di memoria.
Quindi, una volta formattata la sd(vi consiglio in fat32), potrete iniziare a metterci dentro i file musicali.
Ogni file dovrà essere in formato mp3 e dovrà essere rinominato in ordine crescente 001.mp3, 002.mp3, ecc...
È molto importante anche l'ordine con il quale li inserirete nella sd, fatelo in ordine numerico.
Alimentate il circuito mediante la usb del nodeMCU e recatevi, per testarlo, sulla pagina del vostro dispositivo all'indirizzo che gli era stato assegnato accedendo alla console di tasmota.
Qui potrete testare tutti i comandi sopraelencati che svolgeranno le varie funzioni.
Ad esempio se digiterete Mp3Play partirà a riprodurre tutti i file musicali in ordine numerico.
Oppure potrete settare una determinata traccia con il comando Mp3Track x, dove x sarà il numero della traccia, oppure ancora settare il volume con il comando Mp3Volume x dove x sarà un numero tra 0 e 100.
Sfruttando questi comandi ho creato uno switch di prova su Home Assistant utilizzando il protocollo MQTT.
Ovviamente potrete riportare tutti i parametri presenti su Home Assistant, ma non vi voglio levare tutto il divertimento cosi vi do solo un piccolo spunto da cui poter iniziare.
switch:
- platform: template
switches:
mp3_player:
turn_on:
service: mqtt.publish
data:
topic: "cmnd/mp3/MP3Play"
payload: ""
turn_off:
service: mqtt.publish
data:
topic: "cmnd/mp3/MP3Stop"
payload: ""
Questo vi creerà uno switch che all'attivazione vi farà partire la riproduzione sul dfplayer e allo spegnimento la stopperà.
Questo dispositivo vi permetterà, una volta inserito in Home Assistant, di fare tantissime automazioni come una sveglia oppure usarlo per notifiche vocali per chi non volesse utilizzare assistenti domestici come quelli di Google o di Amazon.
Vi lascio al video di fine articolo.
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.