Il progetto permette di controllare una scheda ESP8266 Node MCU 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 ESP8266 con uno smartphone Android e i comandi vocali - Prof. Mauro De Berardi * ----------------------------------------------------------------------------------------- * Il progetto permette di controllare una scheda ESP8266 Node MCU facendo uso di comandi vocali forniti * attraverso uno smartphone Android. Per fare questo utilizziamo un'app disponibile su Play Store * e il modulo Bluetooth HC05 * 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. */ #include <SoftwareSerial.h> #define ledGiallo D0 // pin di ESP8266 Node MCU collegato al led giallo che vogliamo comandare da smartphone #define ledVerde D1 // pin di ESP8266 Node MCU collegato al led rosso che vogliamo comandare da smartphone #define Rx D3 // pin Rx SotwareSerial mi permette di definire i pin RX e TX per la comunicazione seriale del software #define Tx D4 // pinTx String messaggio; SoftwareSerial myBluetooth(Rx, Tx); // Rx e Tx nell'ordine void setup() { delay(1000); // impostiamo i pin dei due led come output pinMode(ledGiallo, OUTPUT); pinMode(ledVerde,OUTPUT); digitalWrite(ledGiallo,LOW); digitalWrite(ledVerde,LOW); Serial.begin(115200); // apre una connessione seriale. A scopo di debug inviamo messaggi al monitor seriale Serial.println("Pronto per la connessione bluetooth tra ESP8266 e smartphone\n Password sullo smartphone: 1234 oppure 0000"); myBluetooth.begin(9600); } 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(ledVerde, HIGH); } if (messaggio.indexOf("spegni tutto")>0) { digitalWrite(ledGiallo, LOW); digitalWrite(ledVerde, 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 verde")>0) digitalWrite(ledVerde, HIGH); if (messaggio.indexOf("spegni led verde")>0) digitalWrite(ledVerde, LOW); if (messaggio.indexOf("lampeggia")>0) { for(int i=0;i<5;i++) { digitalWrite(ledGiallo, HIGH); digitalWrite(ledVerde, HIGH); delay(500); digitalWrite(ledGiallo, LOW); digitalWrite(ledVerde, LOW); delay(500); } } messaggio=""; } }