Schritt 3: Bluetooth-Test
Zunächst einmal Draht den Schaltkreis wie oben gezeigt. Ich habe ein Steckbrett verwendet und machte einer Schiene positive und eine Negative. Störend fand ich, dass die TXD und RXD Pins auf das Bluetooth-Modul nicht funktionieren, wenn die gleichen Pins auf dem Arduino selbst verbunden. Der TXD-Pin auf das Bluetooth-Modul ich habe mit dem RXD Pin auf dem Arduino Pin (0) angeschlossen, und die RXD Pin auf das Bluetooth-Modul an der TXD-Pin auf dem Arduino (Pin 1) angeschlossen ist. Das Bluetooth-Modul läuft ab 3,3 v aber das Relais braucht 5v zu arbeiten, also ich habe 5 Volt auf dem Arduino verwendet.
Hier ist der Code, den ich, für dieses Relais 2 Schalten geschrieben habe. Als Beispiel habe ich es einen Wasserkocher und Lampe zu kontrollieren.
/* ------------------------------------------------------------------------ InfidelFish ------------------------------------------------------------------------ */ String voice; #define relay1 2 //Connect relay1 to pin 2 #define relay2 3 //Connect relay2 to pin 3 void setup() { Serial.begin(9600); //Set rate for communicating with phone pinMode(relay1, OUTPUT); //Set relay1 as an output pinMode(relay2, OUTPUT); //Set relay2 as an output digitalWrite(relay1, LOW); //Switch relay1 off digitalWrite(relay2, LOW); //Swtich relay2 off } void loop() { while(Serial.available()) //Check if there are available bytes to read { delay(10); //Delay to make it stable char c = Serial.read(); //Conduct a serial read if (c == '#'){ break; //Stop the loop once # is detected after a word } voice += c; //Means voice = voice + c } if (voice.length() >0) { Serial.println(voice); if(voice == "*switch on"){ switchon(); } //Initiate function switchon if voice is switch on else if(voice == "*switch off"){ switchoff(); } //Initiate function switchoff if voice is switch off else if(voice == "*lamp on"){ //You can replace 'lamp on' with anything you want...same applies to others digitalWrite(relay1, HIGH); } else if(voice == "*lamp off"){ digitalWrite(relay1, LOW); } else if(voice == "*kettle on"){ digitalWrite(relay2, HIGH); } else if(voice == "*kettle off"){ digitalWrite(relay2, LOW); } voice=""; } } void switchon() //Function for turning on relays { digitalWrite(relay1, HIGH); digitalWrite(relay2, HIGH); } void switchoff() //Function for turning on relays { digitalWrite(relay1, LOW); digitalWrite(relay2, LOW); } /* You can add any function you want depending on how many devices you have hooked up. For example you could have a function called 'cinema' which would dim the lights and turn the TV on. You can have as many as you have pins on your arduino. For my relay 'LOW' turns off and 'HIGH' turns on The outline to follow is this: void ......() { digitalWrite(...., LOW/HIGH); digitalWrite(...., LOW/HIGH); } */
Wenn Sie den Code in Ihrem Arduino hochladen, sicherstellen Sie, dass Sie Pins 0 und 1 sonst Sie dies wahrscheinlich erhalten Fehler trennen:
Avrdude: stk500_getsync(): nicht in sync: Resp = 0 x 00
Jetzt auf Ihrem android-Handy herunterladen Sie diese geniale app von SimpleLabs!
https://Play.Google.com/Store/Apps/Details?ID=robotspace.simplelabs.amr_voice&hl=en
Eine Verbindung mit dem Bluetooth-Modul wird wahrscheinlich aufgerufen etwas wie "HC-06"
Zum ersten Mal fragt es Sie zur Eingabe eines Kennworts in der Regel 1234.
Sobald Sie angeschlossen haben sagen die Befehle, die Sie im Code gewählt haben und hoffentlich schaltet das Relais ein und aus!