Controllare Arduino con uno smartphone Android e i comandi vocali

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.

 breadboardcontrollovocalearduino

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="";
 }
 
}