Shield per DFPlayer Mini – Voltmetro parlante

In questo articolo vedremo come trasformare Arduino  con l’aiuto del modulo DFPlayer Mini, montato sullo shield DFPlayer in un voltmetro parlante. Per maggiori informazioni relativo allo shied vedere articolo Shield con DFPlayer Mini – Costruzione

Descrizione progetto

Il progetto proposto permette di dare la parola ad Arduino.
Sarà così possibile, per esempio,  ascoltare attraverso l’altoparlante il valore in volt della tensione misurata.
Se si utilizzerà anche il display OLED, lo stesso valore sarà possibile leggerlo su un display.
Il tutto è possibile utilizzando il modulo DFPlayer mini con cui è possibile memorizzare e riprodurre file audio in formato wave/MP3 salvati nell’apposita memoria MicroSD.

Schema del progetto

Sotto è riportato lo schema equivalente presente nello shield DFPlayer per utilizzarlo come voltmetro parlante.

  • DFPLayer mini: sono visibili i collegamenti al modulo DFPlayer Mini , in particolare i pin RX-TX per dialogare in seriale con Arduino (pin D2, D3), i pin di alimentazione e quelli con l’altoparlante. Sulla linea in uscita dal pin 2 occorre inserire una resistenza da 1kΩ come indicato dal costruttore.
    Per maggiori informazioni vedere l’articolo DFPlayer Mini Riproduttore MP3 per Arduino

DFPlayer Riproduttore MP3 Arduino

  • SP1 – altoparlante 8 Ω 3 W max. da collegare ai pin 6 e 8 del modulo ;
  • Display OLED: sono visibili i pin per l’interfacciamento di un display OLED 0.96″ 128×64 -SSD1306, il display dialoga con Arduino tramite un protocollo I2C , questi si collegheranno ai pin dedicati della scheda Arduino oppure ai pin A4 (SDA) e A5 (SCL). Sono poi presenti i collegamenti al +5V e GND;
  • Un trimmer da 10 KΩ il cui contatto centrale è collegato al pin di ingresso analogico A0 di Arduino; sarà possibile avere sul pin una tensione continua con un valore variabile tra 0 e 5V;

Utilizzo dello shield

Per facilitare i collegamenti, in questo caso è stato utilizzato uno speciale shield autocostruito.
Maggiori informazioni le potete trovate nell’articolo Shield con DFPlayer Mini – Costruzione
Le principali caratteristiche delle shield per DFPlayer mini sono:

  • Shield compatibile con scheda Arduino UNO;
  • Connettore per DFPlayer;
  • Connettore per altoparlante;
  • Tre pulsanti configurabili;
  • Led RGB a comando seriale tipo WS2812B;
  • Trimmer per regolazione tensione verso pin analogico;
  • Ricevitore/decodificatore IR tipo IRM-3638T ;
  • Connettori per collegamento sensori a 3 pin
  • Connettore per sensori digitali I2C (BMP180, MLX90614 GY-906, MAX44009, etc.);
  • Possibilità di montare un display OLED 0.96″ 128×64 -SSD1306;

NOTA:
Potete trovare lo schema elettrico, il PCB realizzato con l’applicazione EasyEDA presso il link https://oshwlab.com/adrirobot/shield-arduino-per-dfplayer-mini.
Il PCB potrà essere realizzato tramite il sito JLCPCB, anche i componenti SMD potranno essere saldati direttamente da sito per cui la scheda vi arriverà già parzialmente montata.

Lettura tensione variabile

Ruotando il trimmer si cambia la quantità di resistenza su entrambi i lati del pin centrale del potenziometro. Questo cambia la resistenza relativa tra il pin centrale e i pin esterni, dando una tensione diversa all’ingresso analogico.
Quando l’albero è girato completamente in una direzione, non vi è resistenza tra il pin centrale e il pin collegato a GND. La tensione al pin centrale è quindi 0 volt.
Quando l’albero è girato tutto nella direzione opposta, non vi è resistenza tra il pin centrale e il pin collegato a +5 volt. La tensione al pin centrale è quindi di 5 volt.
Per la lettura e successiva conversione del valore da Analogico a Digitale, utilizzeremo la possibilità data dalle schede Arduino che contengono un convertitore da analogico a digitale multicanale a 10 bit.
Ciò significa che mapperà le tensioni di ingresso comprese tra 0 e la tensione operativa (5 V) in valori interi compresi tra 0 e 1023, che si traduce in una risoluzione tra le letture di: 5 volt / 1024 unità o , 0,0049 volt (4,9 mV) per unità.
Per leggere il valore utilizzeremo il comando  analogRead (), e per ricavare il valore di tensione letto utilizzeremo la formula :

Preparazione della SD Card per il DFPlayer mini

Per il funzionamento del programma è necessario salvare nella memoria del Modulo audio i file che serviranno per pronunciare il valore della tensione letta.
La scheda di memoria utilizzata dal DFPLayer mini è del tipo MicroSD contrazione di Micro Secure Digital , per maggiori informazioni relative al tipo di memoria vedere il seguente link.

La scheda dovrà avere le seguenti caratteristiche: dimensioni massime di 23Gb ed essere formattate con file system (Fat16 o Fat32 ) oppure se possedete un Mac OS X, selezionare ExFat e poi copiare i file wav

Sarà sufficiente trasferire i file presenti nel link, nella memoria MicroSD

Caricamento librerie necessarie

Per funzionare il programma ha bisogno di alcune librerie:

  • DFRobotDFPlayerMini
  • Adafruit_SSD1306
  • Adafruit GFX Library

Libreria per DFPLayer mini

Se non l’avete già fatto occorrerà caricare la relativa libreria,  per cui aprire sotto il menù Sketch, #include libreria, “Gestore Librerie”

e inserire nel campo ricerca “DFRobotDFPlayerMini” e basterà premere il tasto Installa,

Libreria per gestione display OLED

Per utilizzare il display OLED è necessario installare l’apposita libreria. Può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo di ricerca “Adafruit_SSD1306“.

Sarà anche mostrata una finestra che segnala che la libreria ha una dipendenza con la libreria grafica “Adafruit GFX Library“.  Procedete premendo su “Install all”.

Sketch utilizzato

Sotto è riportato lo sketch da caricare nella memoria di Arduino per trasformare lo shield DFPlayer in un voltmetro parlante.
Nella parte iniziale sono incluse le librerie necessarie e definiti alcuni valori .
Segue poi la sezione Setup() dove sono inizializzati il modulo audio e il display.
Nella sezione Loop() viene letto il pin analogico e dopo la conversione viene scritto il valore della tensione sia sul monitor seriale che sul display OLED.
Viene inoltre richiamata la routine speakvoltage() che si occupa di trasformare la cifra letta nelle sue componenti e richiamare i corretti file  audio per pronunciare a voce il valore.

Versione del progetto ridotta

Nel caso non foste in possesso del display o  voleste solo provare le capacità del modulo, è possibile assemblare lo schema sotto riportato, in cui non è presente il modulo display.

Sketch utilizzato

Sotto è riportato lo sketch, in cui è stata eliminata la sezione di gestione del display, da caricare nella memoria di Arduino per trasformare lo shield DFPlayer in un voltmetro parlante.

Altri progetti con moduli audio

Su questo sito sono già stati presentati molti moduli che permettono di decodificare file in vari formati come WAV o MP3, gestibili tramite comandi manuali oppure trasmessi, di solito in seriale, da schede come Arduino.

LPM11162 (fuori produzione)

WTV020-SD

JQ6500

WT588D-16P

Modulo wireless MP3

XY-V17-B-D