sketch_90_Sprachsteuerung_interne_LED

sketch_90_Sprachsteuerung_interne_LED
  /* Es soll die interne LED am Arduino Nano durch Sprachsteuerung (Voice Control) von einem 
  Smartphone ein/ausgeschaltet werden.
  
  Dazu wird im Smartphone die App AMR_Voice (Android Meets Robots)geladen.
  Die App erkennt ins Mikrophon gesprochene Worte/Saetze und übertraegt ein Schaltsignal an den
  Nano ueber Bluetooth unter Verwendung des Moduls HC-05.

  Als Baudrate zum HC-05 wird 9600 verwendet, siehe auch unten HC_Serial.begin(9600).
  Im allgemeinen ist das im HC-05 so voreingestellt.
  Wenn nicht, muss die Baudrate mit AT-Befehlen umgestellt werden.
  Konfiguration des HC-05 siehe Mechatronik Teil 4 "Sketch 85 Bluetooth Modul HC-05 konfigurieren".

  Nach der Konfiguration des HC-05 wurde das Modul wieder in den Normal-Modus versetzt: 
  Verbindung zum Key (EN) wieder getrennt oder das USB-Kabel kurz abziehen.
  
  Der Sketch wird gestartet, die rote LED am Modul HC-05 blinkt noch schnell.

  Beim Smartphone muss Bluetooth aktiviert sein.
  Eventuell "Gekoppeltes Gerät HC-05" loeschen und neu scannen. Passwort ist "1234".
  Danach wird die App gestartet.
  Nachdem die Bluetooth-Verbindung hergestellt ist (in der App Ausschrift "Connected", die LED am Modul 
  HC-05 blinkt zweimal kurz mit anschließender langer Pause), kann das Kommando "LED ein" bzw. "LED aus" 
  ins Smartphone gesprochen werden. Die LED wird entsprechend geschaltet.
  
  Der Serial Monitor und die App am Smartphone zeigen die Kommandos ebenfalls an.
  Wichtig: Diese Ausschrift muss identisch sein zu dem String im Sketch, auch Gross/Kleinbuchstaben.*/ 
  
  #include <SoftwareSerial.h>
  SoftwareSerial HC_Serial(6,7);    // Pin D6 wird RxD (an TxD des HC-05) und Pin D7 wird TxD (an RxD des HC-05)             
  
  String voice;
  int LED=13; 
  
  void setup()
  {
   Serial.begin(9600);              // Initialisierung serielle Schittstelle zum Serial Monitor (nicht zum HC-05)
   Serial.println("Bereit");        // Beachte: Der serielle Monitor muss ebenfalls auf 9600 eingestellt werden.
   HC_Serial.begin(9600);           // Baudrate zum HC-05 ist 9600
   pinMode (LED,OUTPUT);                                  
  } 
                  
  void loop() 
  { 
   while (HC_Serial.available())
   { 
    delay(10);         
    char c = HC_Serial.read();     
    if (c == '#') {break;}          //“#“ zeigt das Ende eines Befehls an, deshalb soll der Loop verlassen werden
    voice += c;  
   }
   if (voice.length() > 0) 
   {
    Serial.println(voice); 
    if(voice == "*LED ein")
    {
      digitalWrite(LED, HIGH);
    }
    else if(voice == "*LED aus")
    {
      digitalWrite(LED, LOW);
    }
    voice="";
   }
  }