Things used in this project

Hardware components:
Photon new
Particle Photon
×1
13285 01
PIR Motion Sensor (generic)
The particle maker kit sensor works great, however any generic PIR sensor could possibly
×1
Software apps and online services:
Google sheets
Google Sheets

Schematics

Photon to PIR sensor
Battery pack attachment is not shown.
Photon pir diagram mabtelnamz
Interior Construct
20170412 192208 6bvm1vjwjm
Exterior Construct
20170412 192347 iy7tzbnblm
Message
20170412 204039 jsefcpnhaz
This is the full video explanation
20170412_195840_ambrIBVaTp.mp4
Motion Sense Graph
This graph is a live feed of the motion sensor that gives a timestamp when it is activated.

Code

Motion SensorJSON
// This #include statement was automatically added by the Particle IDE.
#include "lib1.h"

int inputPin = D0;              // choose the input pin (for PIR sensor)
int ledPin = D1;                // LED Pin
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status

int calibrateTime = 10000;      // wait for the thingy to calibrate

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(inputPin, INPUT);     // declare sensor as input

}

void loop()
{

  // if the sensor is calibrated
  if ( calibrated() )
  {
  // get the data from the sensor
    readTheSensor();

    // report it out, if the state has changed
    reportTheData();
  }
}

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

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

void reportTheData() {

  // if the sensor reads high
  // or there is now motion
  if (val == HIGH) {
      
    // the current state is no motion
    // i.e. it's just changed
    // announce this change by publishing an eent
    if (pirState == LOW) {
      // we have just turned on
      Particle.publish("Motion Detected", "Motion Detected", PRIVATE);
      // Update the current state
      pirState = HIGH;
      setLED( pirState );
    String tempMessage = "1";
    Particle.publish("googleDocs", "{\"my-name\":\"" + tempMessage + "\"}", 60, PRIVATE);
    Particle.publish("pushbullet", "Teacher Tracker: your teacher is back. RUN!", 60, PRIVATE);
    }
  } else {
    if (pirState == HIGH) 
      // we have just turned of
      // Update the current state
      pirState = LOW;
      setLED( pirState );
    }
  }
 void setLED( int state )
{
  digitalWrite( ledPin, state );
}
void publish() {
// Get some data
String data = String(10);
// Trigger the integration
Particle.publish("Motion detected", data, PRIVATE);
// Wait 60 seconds
delay(60000);
}
AlertJSON
int inputPin = D0;              // choose the input pin (for PIR sensor)
int ledPin = D7;                // LED Pin
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status

void setup()
    {
        Particle.subscribe("Motion Detected", data, MY_DEVICES);
    }

void data (const char *event, const char *data){
    
        if(strcmp(data, "Motion Recieved")==0)
    {
            digitalWrite (ledPin, HIGH);
            Serial.println("Motion Recieved");
    }
}

Credits

Dd48f1f24a2815b2b9b6824659a63e2e
Jose Giacopini
1 project • 0 followers
It's always fine
Contact
12341197 1154203881259834 3285335447160430406 n
Katherine Puckett
1 project • 0 followers
Contact

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Sign up / LoginProjectsPlatformsTopicsContestsLiveAppsBetaBlog