Controllare dispositivi con la voce usando Arduino e Bluetooth
Un progetto di domotica con Arduino Uno, modulo Bluetooth HC-05 e quattro relè: i comandi vocali riconosciuti dallo smartphone vengono trasformati in semplici stringhe che Arduino usa per accendere e spegnere i dispositivi.
Cosa imparerai
- come collegare Arduino a uno smartphone tramite Bluetooth;
- come usare un modulo HC-05 per ricevere dati seriali;
- come interpretare semplici comandi testuali;
- come controllare più relè da Arduino;
- come associare una frase a una determinata uscita;
- perché maiuscole e minuscole devono coincidere nel confronto delle stringhe.
Componenti principali
🧰 Kit Arduino consigliato
Un kit completo è utile per avere breadboard, cavetti, resistenze, LED e molti componenti di base per sperimentare con Arduino.
👉 Guarda il kit Arduino consigliatoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un’occhiata anche ai miei libri dedicati ad Arduino. All’interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su ArduinoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
Schema del circuito
Schema del circuito con Arduino, Bluetooth e quattro relè.
Come funziona il controllo vocale
Il riconoscimento della voce non viene eseguito direttamente da Arduino. È lo smartphone a trasformare ciò che viene pronunciato in una stringa di testo.
La frase riconosciuta viene quindi inviata tramite Bluetooth al modulo HC-05. Arduino riceve la stringa e la confronta con i comandi definiti nel programma.
Accendi la luce, la stringa ricevuta può essere confrontata con il comando *Accendi la luce. Se coincide, Arduino porta l’uscita del relè nello stato previsto.Esempio di codice
Nel progetto è mostrata questa logica di base per il comando della luce:
/*
ESEMPIO DI GESTIONE DI UN COMANDO VOCALE RICEVUTO VIA BLUETOOTH
La stringa "data" contiene il testo ricevuto dallo smartphone.
Il confronto fa distinzione tra maiuscole e minuscole.
Esempio:
"*Accendi la luce" -> accende il relè
"*Spegni la luce" -> spegne il relè
Il modulo relè del progetto è gestito con logica active LOW:
LOW = relè attivo
HIGH = relè disattivo
*/
// COMANDO LUCE
if (data == "*Accendi la luce") {
digitalWrite(luce, LOW);
Serial.println("LUCE ON");
}
else if (data == "*Spegni la luce") {
digitalWrite(luce, HIGH);
Serial.println("LUCE OFF");
}
Attenzione a maiuscole e minuscole
Il confronto delle stringhe è sensibile alle maiuscole. Quindi Accendi la luce e accendi la luce sono due stringhe diverse.
Scarica lo sketch
⬇️ Scarica arduino_comandi_vocali.zip
Il file contiene il programma associato al circuito. Lo sketch non richiede librerie aggiuntive secondo la documentazione disponibile.
L’app BT Voice Control for Arduino
La configurazione prevedeva l’accoppiamento dello smartphone con il modulo HC-05 e l’uso della funzione Connect Robot dell’app per selezionare il dispositivo Bluetooth.
Dopo la connessione, il pulsante con il microfono avviava il riconoscimento vocale. Il testo riconosciuto veniva quindi inviato via Bluetooth ad Arduino.
Perché il progetto è ancora interessante
Il principio tecnico non dipende da una particolare interfaccia grafica: Arduino riceve semplicemente testo attraverso una connessione seriale Bluetooth. Questo permette di capire molto bene la separazione tra riconoscimento vocale, eseguito dallo smartphone, e controllo degli attuatori, eseguito da Arduino.
Controllare lampade e altri dispositivi
Il modulo a quattro relè consente di associare più uscite a comandi differenti. Per esempio puoi prevedere frasi distinte per luce, TV, ventilazione o altri dispositivi compatibili con il circuito realizzato.
Debug rapido
- verifica che HC-05 sia correttamente alimentato e accoppiato;
- controlla la comunicazione seriale tra HC-05 e Arduino;
- verifica che i comandi nello sketch coincidano esattamente con le stringhe ricevute;
- ricorda che maiuscole e minuscole vengono considerate differenti;
- controlla se il modulo relè è active LOW oppure active HIGH;
- prova prima ogni relè con un carico a bassa tensione.
Varianti del progetto
- sostituire l’app con un’interfaccia Bluetooth compatibile che invii stringhe personalizzate;
- usare ESP32 e Bluetooth integrato;
- aggiungere un display per mostrare l’ultimo comando ricevuto;
- aggiungere conferme sonore tramite buzzer;
- controllare più relè con frasi differenti;
- normalizzare le stringhe ricevute per ignorare le differenze tra maiuscole e minuscole;
- passare a Wi-Fi e controllo tramite rete locale.
Cosa devi ricordare
- Il riconoscimento vocale viene eseguito dallo smartphone.
- HC-05 trasmette ad Arduino la stringa risultante.
- Arduino confronta il testo con i comandi definiti nel programma.
- I relè permettono di comandare più dispositivi.
- Il confronto distingue maiuscole e minuscole.
- L’app indicata per questo progetto non è più disponibile.
Domande frequenti
Arduino riconosce direttamente la voce?
No. In questa configurazione il riconoscimento viene eseguito dallo smartphone, che invia ad Arduino una stringa tramite Bluetooth.
Perché “Accendi la luce” funziona e “accendi la luce” può non funzionare?
Perché il confronto delle stringhe distingue lettere maiuscole e minuscole. La frase deve corrispondere a quella prevista nel codice.
L’app indicata è ancora disponibile?
No. BT Voice Control for Arduino non è più disponibile sul Google Play Store, quindi questa specifica procedura non può essere completata con l’app indicata.
Posso comunque usare lo sketch?
Sì, come base tecnica. Serve però un sistema alternativo capace di inviare via Bluetooth le stesse stringhe attese dal programma.

