Î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.
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.
Componentele utilizate in realizarea proiectului sunt:
#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); }
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.