Il progetto permette di controllare una scheda Arduino facendo uso di comandi vocali forniti attraverso uno smartphone Android.
Per fare questo utilizziamo il modulo Bluetooth HC-05 e un'app Android disponibile su Play Store. L'applicazione, che permette di controllare l’accensione o lo spegnimento di due diodi LED, è semplice e facilmente riproducibile ma può essere modificata ed estesa senza difficoltà per realizzare progetti utili e molto diffusi quali il controllo di un motore o di una caldaia, di un impianto di irrigazione o di un cancello automatico, delle luci di un giardino o di una telecamera di sorveglianza, ecc.
Scarica il progetto completo (.rar con sketch e tutorial)
Vai alla pagina dei downloads Categoria: Arduino ESP8266 IoT
Sketch Arduino
// Controllare Arduino con uno smartphone Android e i comandi vocali - Prof. Mauro De Berardis #include <SoftwareSerial.h> #define ledGiallo 13 // pin di Arduino collegato al led giallo che vogliamo comandare da smartphone #define ledRosso 12 // pin di Arduino collegato al led rosso che vogliamo comandare da smartphone #define Rx 0 // pin Rx #define Tx 1 // pinTx String messaggio; SoftwareSerial myBluetooth(Rx, Tx); // Rx e Tx nell'ordine void setup() { // impostiamo i pin dei due led come output pinMode(ledGiallo, OUTPUT); pinMode(ledRosso,OUTPUT); digitalWrite(ledGiallo,LOW); digitalWrite(ledRosso,LOW); Serial.begin(115200); // apre una connessione seriale. A scopo di debug inviamo messaggi al monitor seriale myBluetooth.begin(9600); Serial.println("Pronto per la connessione bluetooth\n Password sullo smartphone: 1234 oppure 0000"); } void loop() { while(myBluetooth.available()) { delay(10); char car=myBluetooth.read(); if(car=='#')break; messaggio += car; } if (messaggio.length() > 0) { messaggio.toLowerCase(); Serial.println(messaggio); if (messaggio.indexOf("accendi tutto")>0) { digitalWrite(ledGiallo, HIGH); digitalWrite(ledRosso, HIGH); } if (messaggio.indexOf("spegni tutto")>0) { digitalWrite(ledGiallo, LOW); digitalWrite(ledRosso, LOW); } if (messaggio.indexOf("accendi led giallo")>0) digitalWrite(ledGiallo, HIGH); if (messaggio.indexOf("spegni led giallo")>0) digitalWrite(ledGiallo, LOW); if (messaggio.indexOf("accendi led rosso")>0) digitalWrite(ledRosso, HIGH); if (messaggio.indexOf("spegni led rosso")>0) digitalWrite(ledRosso, LOW); messaggio=""; } }