soardr
Published

Control Door Lock Remotely Using Smartphone

This project uses the Arduino Mini board and "Whats up Arduino" Android app.

IntermediateFull instructions provided2 hours13,325
Control Door Lock Remotely Using Smartphone

Things used in this project

Hardware components

Arduino Mini 05
Arduino Mini 05
×1
SparkFun FTDI Basic Breakout - 5V
SparkFun FTDI Basic Breakout - 5V
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1
SG90 Micro-servo motor
SG90 Micro-servo motor
×1
USB-A to Micro-USB Cable
USB-A to Micro-USB Cable
×1
Capacitor 470 µF
Capacitor 470 µF
×1

Software apps and online services

Arduino IDE
Arduino IDE
Whats up Arduino

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

Schematic

Code

Arduino sketch

Arduino
Arduino sketch needs to be uploaded in Arduino board using Arduino IDE
/******sketch for WhatsUpArduino App*******/

#include <SoftwareSerial.h>// import the serial library
#include <Servo.h>

SoftwareSerial chat(10, 11); // RX, TX
Servo myservo;

int pos = 0;

void setup() {
  chat.begin(9600);
  myservo.attach(8);
}

void loop() {
  if (chat.available()){
    String readStr = "";
    readStr=chat.readString();
    //pinMode
    if(readStr.startsWith("pinMode")){
      String pin=readStr.substring(readStr.indexOf("(")+1,readStr.indexOf(","));
      int pinNo=pin.toInt();
      String mode=readStr.substring(readStr.indexOf(", ")+2,readStr.indexOf(")"));
      if(mode=="INPUT"){
        pinMode(pinNo, INPUT);}
      if(mode=="OUTPUT"){
        pinMode(pinNo, OUTPUT);}
      if(mode=="INPUT_PULLUP"){
        pinMode(pinNo, INPUT_PULLUP);}
      chat.println("done");
    }
    //digitalWrite
    if(readStr.startsWith("digitalWrite")){
      String pin=readStr.substring(readStr.indexOf("(")+1,readStr.indexOf(","));
      int pinNo=pin.toInt();
      String value=readStr.substring(readStr.indexOf(", ")+2,readStr.indexOf(")"));
      if(value=="HIGH"){
        digitalWrite(pinNo, HIGH);}
      if(value=="LOW"){
        digitalWrite(pinNo, LOW);}
      chat.println("done");
    }
    //digitalRead
    if(readStr.startsWith("digitalRead")){
      String pin=readStr.substring(readStr.indexOf("(")+1,readStr.indexOf(","));
      int pinNo=pin.toInt();
      int val=digitalRead(pinNo);
      if(val==1){        
      chat.println("it's HIGH");}
      if(val==0){       
      chat.println("it's LOW");}
    }
    //analogWrite
    if(readStr.startsWith("analogWrite")){
      String pin=readStr.substring(readStr.indexOf("(")+1,readStr.indexOf(","));
      int pinNo=pin.toInt();
      String val=readStr.substring(readStr.indexOf(", ")+2,readStr.indexOf(")"));
      int value=val.toInt();
        if(pinNo==10 || pinNo==11){
          chat.println("You were trying to write on pins which are used by bluetooth RX/TX");// analog write/PWM on pins used by bluetooth can interrupt communication.
        }else{
            myservo.write(value);
            delay(5000);
            myservo.write(0);
          }
      }
    //analogRead
    if(readStr.startsWith("analogRead")){
      String pin=readStr.substring(readStr.indexOf("(")+1,readStr.indexOf(","));
      int pinNo=pin.toInt();
      int val=analogRead(pinNo);
      chat.println("it's " + String(val));
  }
 }
}
/********end of sketch**********/

Credits

soardr

soardr

1 project • 1 follower
I love machines

Comments