Mailbox Sensor

An Internet of Things experiment

Intention

My roommates and I hardly check our mailbox. Sometimes, the mails stack up. After a while, the mails stack up. A simple device that alerts us about new mail would be helpful. 


Goal

The goal is to create a device that sends an email every time my mailbox is opened.


How it functions

The device uses an LED and a PIR sensor. Every time the PIR sensor detects motion, the LED lights up. The Particle photon is connected to the Wi-FI at home. So, the device sends an email notifying me about this event.


Components
 

Particle Photon

PIR Sensor

LED ( Red ) : Motion Indication

1 Resistors 1k ohms

Jumper wires


Code

#include <time.h>
int inputPin = D2;
int lightPin = D0;
int val = 0;                   // variable for reading the pin status
int lastMailReceivedAt = 0;
int currentTime = 0;

void setup() {
  /*Initialize*/
  pinMode(inputPin, INPUT);     // declare sensor as input
  pinMode(lightPin, OUTPUT);
  lastMailReceivedAt = Time.now();
  Serial.begin(9600);
  digitalWrite(lightPin, LOW);
}

void loop() {
  val = digitalRead(inputPin);  // Read PIR sensor input value
  if( val == 1 ) {
    digitalWrite(lightPin, HIGH);
    currentTime = Time.now();
    /*If condition based on 30 seconds threshold, for email notification*/
    if(currentTime - lastMailReceivedAt > 30 ) {
      Particle.publish("motion-detected","You got mail", PRIVATE);
      lastMailReceivedAt = Time.now();
      delay(1000);
      digitalWrite(lightPin, LOW);
    }
  }
}

Reflections

This is my first IOT project. There are lots of room for improvement. For example, the time of day when a mailbox is opened could be used to make the sensor more efficient. The sensor can be dormant at night. The sensor and particle photon could be housed in a well designed box.

I look forward to creating cool home automation based projects in the future.

Stay tuned.