/* Author: Danny van den Brande. Arduinosensors.nl. BlueCore Tech. */ String inputString = ""; String command = ""; String value = ""; String password = "dendan"; //setpassword here boolean stringComplete = false; int relay = 2; int greenLed = 5; int redLed = 6; void setup(){ Serial.begin(9600); // make sure it is the same baudrate as your bluetooth module inputString.reserve(50); command.reserve(50); value.reserve(50); boolean stringOK = false; pinMode(relay, OUTPUT); digitalWrite(relay, HIGH); pinMode(greenLed, OUTPUT); pinMode(redLed, OUTPUT); digitalWrite(redLed, HIGH); } void loop(){ if (stringComplete) { delay(100); int pos = inputString.indexOf('='); if (pos > -1) { command = inputString.substring(0, pos); value = inputString.substring(pos+1, inputString.length()-1); // extract command up to \n exluded if(!password.compareTo(value) && (command == "OPEN")){ openDoor(); Serial.println(" OPEN"); delay(100); } else if(!password.compareTo(value) && (command == "CLOSE")){ closeDoor(); Serial.println(" CLOSE"); delay(100); } else if(password.compareTo(value)){ Serial.println(" WRONG"); delay(100); } } inputString = ""; stringComplete = false; } } void serialEvent() { while (Serial.available()) { char inChar = (char)Serial.read(); //Serial.write(inChar); inputString += inChar; if (inChar == '\n' || inChar == '\r') { stringComplete = true; } } } void openDoor(){ digitalWrite(relay, LOW); digitalWrite(redLed, LOW); digitalWrite(greenLed, HIGH); } void closeDoor(){ digitalWrite(relay, HIGH); digitalWrite(redLed, HIGH); digitalWrite(greenLed, LOW); }