Introduction: Arduino, Monitoring Door-Opening Via Gmail

In this tutorial, I am going to show you how to detect the door-opening event and send a notification via Gmail using Arduino Uno.

I made this tutorial for beginners! It is really easy!!!

Let's get started!

Detecting Door-Opening Event
Magnetic sensor I used includes two parts: sensor and magnet. When two parts are in proximity, the output pin of the sensor is HIGH, otherwise the output pin is LOW. Taking advantage of this feature, I installed one part of the sensor on the door leaf and the other on the door frame. By checking state of the output pin, we can detect when door is opened and then make an alert or send a notification.

Handling Event

When the door-opening event occurs, a notification is sent via Gmail.

Step 1: Things We Need

1. Arduino UNO or Genuino UNO

2. PHPoC Shield for Arduino at http://www.phpoc.com/buy.php

3. Magnetic sensor SAMSUNG SIM-0001 at http://www.ebay.com/itm/Magnetic-sensor-SAMSUNG-SI...

Step 2: Assembly

1. Stack PHPoC Shield on Arduino.

2. Connect LAN cable to the shield for Ethernet.

3. Pin wiring between Arduino and Sensor.

----5v--------red pin.

----A0-------black pin.

Step 3: Install This Set on the Door

1. Attach the sensor part, Arduino set (including PHPoC shield) to the door frame

2. Attach the magnet part on the door leaf.

3. Power Arduino

4. Connect to Internet via LAN cable or USB Wifi Dongle.

Step 4: Download and Install Library on Arduino

Get library for PHPoC Shield here: https://github.com/phpoc/arduino

Step 5: Arduino Code

#include "SPI.h"
#include "Phpoc.h"
 
PhpocEmail email;
 
void setup() {
  Serial.begin(9600);
 
  Phpoc.begin(PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP);
  pinMode(A0, INPUT);
}
 
int previous_status = 1;
 
 
void loop() {
  int current_status = digitalRead(A0);
  int returnValue;
  
  if (previous_status == 1 && current_status == 0) {    // if door is opened...
    email.setOutgoingServer("smtp.gmail.com", 587);
    email.setOutgoingLogin("Google ID", "Google Password");
 
    email.setFrom("Gmail address ", "Sender Name");
    email.setTo("Receiver email address", "Receiver Name");
    
    email.setSubject("Door is opened. [#905]");  // Mail Subject
    
    // Mail Contents
    email.beginMessage();
    email.println("#905");
    email.println("");
    email.println("Door is opened.");
    email.endMessage();                
 
    if (email.send() > 0)  // Send Email
      Serial.println("Your Mail has been sent successfully");
    else
      Serial.println("Your Mail is not sent");
 
    
  }   else if (previous_status == 0 && current_status == 1) { // if door is closed...
 
        // Write codes in the same way
  
  }
 
  previous_status = current_status;
  delay(1500);
 
}

Comments

author
Swansong (author)2017-02-07

That's a neat idea :)

author
phpoc_man (author)Swansong2017-02-07

Thank you!