Showing posts with label Automation. Show all posts
Showing posts with label Automation. Show all posts

Wednesday, May 26, 2021

Make Automatic Room light

Automatic Room Light Using Ultrasonic Sensor

Things Required:

·         Arduino

·         HC SR-04 Ultrasonic Sensor

·         5V Relay Module

·         Jumper Wires

Connections:

 


Code for Arduino:


#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). The 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(5);                     // 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;

}

 

Note:

            You can change the range of ultrasonic sensor by changing the value in the code which is mentioned in the third line of the code.

If you are facing a problem, contact me: rizwanmahad606@gmail.com


Stay tuned.

Bye.


Scanners: Explained.

 Introduction:           If you need a copy of a document that is sitting on your table. For this, with your PC, you use your flatbed scan...