Ghost Repeller - Spirache Eduard 332CA

Introducere

În primul rând, trebuie să vă spun că sunt un mare iubitor al serilor de vară petrecute în grădină. Îmi place să mă relaxez în aerul proaspăt și să admir stelele de pe cer. Dar, din păcate, cu cât se întunecă mai mult, cu atât devine mai greu să văd ceea ce se întâmplă în jurul meu, iar uneori am impresia că plantele și mobilierul de grădină prind picioare și se deplasează către mine!

Pentru a veni în ajutorul tuturor persoanelor iubitoare de grădini, în timpul nopții, voi crea un proiector LED de grădină care se aprinde în momentul în care detectează mișcare. Astfel, atunci când se așează într-un alt colț al grădinii sau se ridică pentru a aduce ceva, nu vor avea parte de surprize neplăcute. Nimeni nu își dorește să creadă că grădina este bântuită de fantome, nu-i așa?

În plus, afișarea temperaturii ar fi un plus, pentru că de multe ori serile de vară pot fi răcoroase. Așa că aș vrea ca proiectorul de nădejde să conțină un senzor de temperatură pentru a putea verifica dacă o pătură este necesară înaintea unei sesiuni de privit stele.

Descriere

Proiectorul LED se va aprinde in momentul in care afara este intuneric si detecteaza miscare. Dedesubtul proiectorului va fi plasata o cutie cu un display ce va afisa umiditatea, dar si temperatura.

Hardware

Lista Componente

Componentele utilizate in realizarea proiectului sunt:

  • Arduino Uno
  • Proiector LED
  • Modul miscare PIR
  • Releu
  • Senzor de temperatura
  • Ecran LCD

Diagrama

Circuit

Software

Diagrama

Cod

#include <LiquidCrystal_I2C.h>
#include <dht.h>

dht DHT;

LiquidCrystal_I2C lcd(0x27,16,2);

int LightSensor = 0;
int PIRSensor = 0;
bool RelayOn = false;
int sensor_Input;
float temp;

void setup() {
  Serial.begin(9600);

  // Init pins
  pinMode(A2, INPUT);
  pinMode(2, INPUT);
  pinMode(7, OUTPUT);

  // Init LED
  digitalWrite(7, HIGH);
  
  // Init LCD
  lcd.begin(16, 2);
  lcd.init();
  lcd.backlight();
}
void loop() {
  display_temp();
  detect_motion();
}
void detect_motion()
{
 LightSensor = analogRead(A2);
 PIRSensor = digitalRead(2);

  Serial.println(PIRSensor);
  Serial.println(LightSensor);

 // If it keeps detecting motion and the light is on,
 // it keeps the light on for another 5 seconds
 if (PIRSensor == HIGH && RelayOn == true) {
   delay(5000);
   return;
 }
 
 if (LightSensor < 100) {
   // Sets the relay on if it detects motion
   if (PIRSensor == HIGH) {
     digitalWrite(7, LOW);
     RelayOn = true;
     delay(5000); 
   } else {
     digitalWrite(7, HIGH);
     RelayOn = false;
     delay(200);
   }
 } else {
   // sets to LOW
   digitalWrite(7, HIGH);
   RelayOn = false;
   delay(200);
 } 
  
}
void display_temp()
{
  int dht = DHT.read11(A0);
  lcd.setCursor(0, 0);
  lcd.print("Temp:");
  lcd.print(DHT.temperature);
  lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print("Umiditate:");
  lcd.print(DHT.humidity);
}

Rezultate obtinute

Concluzie

A fost un proiect interesant, ce pot spune ca m-a ajutat sa imi dezvolt imaginatia, mi-a demonstrat ca daca iti doresti sa confectionezi un lucru pe cont propriu, nu este imposibil.

Bibliografie/Resurse

pm/prj2023/vstoica/eduard-spirache.txt · Last modified: 2023/05/31 11:11 by eduard.spirache
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0