Ahmad Al-Tawil
Published

Control your Home Using 1Sheeld

It's all about controlling your smart home with your smartphone.

IntermediateFull instructions provided1 hour1,277
Control your Home Using 1Sheeld

Things used in this project

Story

Read more

Schematics

Project wiring

- According to your relay module you should connect the normally open and selector pins on the high voltage side and the coil to the Arduino side.

Code

HomeAutomation.ino

Arduino
// Control your home using 1Sheeld
//Used shields are: Camera, Pattern, Slider, ....
// Author : Ahmad Al-Tawil

#include<OneSheeld.h>
#include<Servo.h>

// Pins initialization
int lampPin = 13;
int doorPin = 8;
int windowServoPin=9;

// Variables intialization
boolean lampState=LOW;
boolean doorState=LOW;
boolean previousLampState=HIGH;

// Hint: A for Avengers
PatternNode patternStored[] = { {2,0}, {1,1}, {0,2}, {1,2}, {2,2} };
Servo windowServo;

void setup()
{
  OneSheeld.begin();
  windowServo.attach(windowServoPin);
  
  pinMode(lampPin,OUTPUT);
  pinMode(doorPin,OUTPUT);
}

void loop()
{
    doorPattern();
    lampsControl();
    windowSlider();
}

lampsControl

Arduino
void lampsControl()
{
  if(PushButton.isPressed()&lampState!=previousLampState)
    {
      previousLampState=lampState;
      lampState=!lampState;
    }
  digitalWrite(lampPin,lampState);
}

doorPattern.ino

Arduino
void doorPattern()
{
  if (Pattern.isNewPatternReceived())
  {
    int counter = 0;
    PatternNode * patternEntered = Pattern.getLastPattern();
    int length = Pattern.getLastPatternLength();
    if (length == 5)
    {
      for (int i = 0; i < length ; i++)
      {
        if (patternEntered[i].row == patternStored[i].row && patternEntered[i].col == patternStored[i].col)
        {
          counter++;
        }
      }
      
      if (counter == 5)
      {
        digitalWrite(doorPin,HIGH);
      }
      else
      {
        digitalWrite(doorPin,LOW);
        Camera.frontCapture();
        Twitter.tweetLastPicture ("Robber" , 0);
      }
    }
    else
    {
      digitalWrite(doorPin,LOW);
      Camera.frontCapture();
      Twitter.tweetLastPicture ("Robber" , 0);
    }
  }
}

windowSlider.ino

Arduino
void windowSlider()
{
  int value = Slider.getValue();
  value = map(value,0,255,0,180);
  windowServo.write(value);
}

Credits

Ahmad Al-Tawil

Ahmad Al-Tawil

1 project • 0 followers

Comments