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

It's always fine

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

Similar projects you might like

Other Clocks
Intermediate
  • 183
  • 3

Work in progress

A combination of 3 different clocks in one frame.

ConnectTheDots with Particle Azure IoT Hub Integration
Intermediate
  • 554
  • 6

Protip

This project will allow you to connect your Particle device into an Azure IoT Hub for viewing data in real-time through an ASP.NET web app!

Weather Aware Sprinkler Controller
Intermediate
  • 1,291
  • 16

Full instructions

6 station Photon controller uses the Weather Underground API to prevent watering when windy, rainy, or too cold.

Christmas Gift Box
Intermediate
  • 3,602
  • 595

Full instructions

Christmas Gift Box plays music and sends an email when it is opened.

Simple Environmental Monitoring
Intermediate
  • 1,536
  • 13

Full instructions

Particle Photon circuit allowing the display of environmental conditions (light, temperature, humidity, pressure) using the Blynk app.

THDweeter
Intermediate
  • 245
  • 2

Protip

Yet another temperature-humidity sensor publishing to dweeter, with WiFi auto-disconnect and a push button to read daily max and min values.

Add projectSign up / Login