Jose GiacopiniKatherine Puckett
Published

Teacher Tracker

If you want to know when a professor comes back to his/her office so you can ask annoying questions then this an option

IntermediateFull instructions provided5 hours972
Teacher Tracker

Things used in this project

Hardware components

Photon
Particle Photon
×1
PIR Motion Sensor (generic)
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

Story

Read more

Schematics

Photon to PIR sensor

Battery pack attachment is not shown.

Interior Construct

Exterior Construct

Message

Video

This is the full video explanation

Motion Sense Graph

This graph is a live feed of the motion sensor that gives a timestamp when it is activated.

Code

Motion Sensor

JSON
// 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);
}

Alert

JSON
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

Jose Giacopini

Jose Giacopini

1 project • 0 followers
It's always fine
Katherine Puckett

Katherine Puckett

1 project • 0 followers

Comments