0% found this document useful (0 votes)
9 views2 pages

Smart House Light - Ino

Uploaded by

Sanjay K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views2 pages

Smart House Light - Ino

Uploaded by

Sanjay K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.

#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters).
Maximum sensor distance is rated at 400-500cm. [this is an arbitrary number]

#define RELAY_LINE1_PIN 8

#include "NewPing.h"
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins
and maximum distance.

unsigned int critical_distance_cms = 50; // Cutoff distance at which the light will switch
[this is an arbitrary number]
bool state = 0;

void setup() {
Serial.begin(9600); // Open serial monitor at 115200 baud to see ping results.
pinMode(RELAY_LINE1_PIN, OUTPUT);
digitalWrite(RELAY_LINE1_PIN, HIGH); // Turn the light off
}

void loop() {
delay(50); // Wait 50ms between pings (about 20 pings/sec).
29ms should be the shortest delay between pings.
unsigned int distance = readDistance(); // Current distance of any object facing the
ultrasonic sensor

Serial.print("Ultrasonic: ");
Serial.print(distance); // Send ping, get distance in cm and print result (0 = outside set
distance range)
Serial.println("cm");

// Someone is near the door


if (distance < critical_distance_cms)
{
while (distance < critical_distance_cms)
{
// Check if they moved away
distance = readDistance();

delay(5); // Do nothing until the person moves away from the door
}

state = !state; // Change the state of the relay

if (state)
{
Serial.println("Door Open!");
digitalWrite(RELAY_LINE1_PIN, LOW); // Turn the light on
}
else
{
Serial.println("Door Closed!");
digitalWrite(RELAY_LINE1_PIN, HIGH); // Turn the light off
}
}
}

// Updates the value of the Ultrasonic reading


unsigned int readDistance()
{
// Read 7 values from the ultrasonic and get the median value ( median filter )
// Gets rid of noisy reading
unsigned int distance = sonar.convert_cm(sonar.ping_median(7));

// The value 0 indicates that the ultrasonic sensor is reading nothing in front of it
// Set this distance to max distance so the light doesn't switch unnecessarily
if (distance == 0)
{
distance = MAX_DISTANCE;
}

return distance;
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy