Jonathan PlaxtonMax Peterson
Published

Motion Controlled Lamp!

This project controls an interior light using two Particle Photons to send and receive data from a motion sensor.

BeginnerFull instructions provided3 hours591
Motion Controlled Lamp!

Things used in this project

Story

Read more

Schematics

Motion Sensor

Relay

Code

Motion Sensor

C/C++
int inputPin = D0;    // Motion Sensor Input          
int ledPin = D7;      // LED to indicate if beam has been broken          
int pirState = LOW;   // Initial state of PIR sensor, no motion          
int val = 0;                    
int calibrateTime = 10000;      

void setup(){
  pinMode(ledPin, OUTPUT);
  pinMode(inputPin, INPUT);     
}

void loop(){
    if ( calibrated() )
  {
      readTheSensor();
      reportTheData();
  }
}

void readTheSensor() {
  val = digitalRead(inputPin);
}

bool calibrated() {
  return millis() - calibrateTime > 0;
}

void reportTheData() {
    if (val == HIGH) {
    if (pirState == LOW) {
        Particle.publish("Open_Door", "Detected");
        pirState = HIGH;
        setLED( pirState );
    }
  } else {
    if (pirState == HIGH) {
     
      pirState = LOW;
      setLED( pirState );
    }
  }
}

void setLED( int state )
{
  digitalWrite( ledPin, state );
}

Relay

C/C++
int led = D7;
int Light = D0;

void setup() {
    pinMode(led, OUTPUT);
    digitalWrite(led, LOW);
    Particle.subscribe("Open_Door", myHandler);
}

void myHandler(const char *event, const char *data)
{
  digitalWrite(led, HIGH);
  delay(100000);
  digitalWrite(led, LOW);
  delay(100);
  digitalWrite(relay, HIGH);
  delay(100000);
  digitalWrite(relay, LOW);
  delay(100);

}
void loop() {

}

Credits

Jonathan Plaxton

Jonathan Plaxton

1 project • 0 followers
Max Peterson

Max Peterson

1 project • 0 followers

Comments