Jared BishopJohn Cashwell
Published © GPL3+

AutoLite

Have your lights turn on right when you walk in your house!

BeginnerShowcase (no instructions)2 hours722
AutoLite

Things used in this project

Hardware components

Photon
Particle Photon
×1
PIR Motion Sensor (generic)
PIR Motion Sensor (generic)
×1
Belkin WEMO Smart Outlet
×1

Software apps and online services

ThingSpeak API
ThingSpeak API
IFTTT

Story

Read more

Schematics

PIR Pin Out Schematic

PIR Pin Out

Code

PIR Code

C/C++
The code for the Photon to publish if the PIR sensor detects motion.
/*                          +-----+
 *               +----------| USB |----------+
 *               |          +-----+       *  |
 *               | [ ] VIN           3V3 [*] |<-------Power To PIR Sensor
 *               | [ ] GND           RST [ ] |
 *               | [ ] TX           VBAT [ ] |
 *               | [ ] RX  [S]   [R] GND [*] |<-------Ground for PIR Sensor
 *               | [ ] WKP            D7 [ ] |       
 *               | [ ] DAC +-------+  D6 [ ] |       
 *               | [ ] A5  |   *   |  D5 [ ] |       
 *               | [ ] A4  |Photon |  D4 [ ] |     
 *               | [ ] A3  |       |  D3 [ ] |
 *               | [ ] A2  +-------+  D2 [ ] |
 *               | [ ] A1             D1 [ ] |
 *               | [ ] A0             D0 [*] |<-------Signal from PIR Sensor
 *               |                           |
 *                \    []         [______]  /
 *                 \_______________________/
 */
int PIR = D0;//sets PIR equal to pin D0
int led = D7;
void setup() {
    pinMode(PIR, INPUT);
    //sets pin D0 as an input
    pinMode(led, OUTPUT);
}

void loop() {
    int pirValState;

  pirValState = digitalRead(PIR);
  
    if (pirValState == LOW){
        digitalWrite(led, HIGH);
        Particle.publish("jcashwell15", "office-motion");
    delay(5000);
    //if the PIR pin reads a HIGH signal then it will trigger the publish command
    }
}

Reciever Code

C/C++
This is the code for the second photon to turn on the lights if the PIR code published.
// This #include statement was automatically added by the Particle IDE.
#include <ThingSpeak.h>

void loop1() {
  // Get some data
  String data = String(10);
  // Trigger the integration
  Particle.publish("Light-On", data, PRIVATE);
  // Wait 60 seconds
  delay(60000);
}

void setup1() {
  // Subscribe to the integration response event
  Particle.subscribe("hook-response/Light-On", myHandler, MY_DEVICES);
}


void setup() {
Particle.subscribe("jcashwell15", myHandler);
}

void myHandler(const char *event, const char *data){
    //int num = (strcmp(data,"office-motion"));
   // delay(1000);
    if (strcmp(data,"office-motion")==0){
        Particle.publish("Light-On","jcashwell3");
    }
}

Credits

Jared Bishop

Jared Bishop

1 project • 0 followers
John Cashwell

John Cashwell

1 project • 0 followers
Thanks to Martin Smaha.

Comments