This is an old revision of the document!
Automatizare irigație solar
Autor: Postolache Florin
Grupă: 335CC
Introducere
Proiectul reprezintă un prototip pentru o automatizare a unui solar. Acesta va analiza 2 dintre cele mai importante necesități ale unei plante cu ajutorul a doi senzori. (senzor de temperatură și senzor de măsurare a umidității solului)
Descriere generală
Plăcuța va analiza datele primite de la cei doi senzori și în funcție de valorile primite de la aceștia, va reacționa în următoarele moduri:
În cazul în care temperatura din cameră este prea ridicată, se va activa un buzzer care va atenționa utilizatorul că trebuie să deschidă solarul.
În cazul în care solul este mult prea uscat, se va porni o pompă care va împinge apa dintr-un rezervor către pământ. Pentru a ne asigura că există presiune pe furtun, în celălalt capăt se va afla o electrovalvă care se va deschide la puțin timp după activarea pompei.
În cazul în care nu mai există apă în rezervor, același buzzer menționat mai sus va începe să sune pentru a atenționa utilizatorul că trebuie să intervină.
De asemenea, acesta va afișa toate datele primite pe un ecran LCD.
SCHEMA BLOC
Hardware Design
Componente utilizate |
Senzor de temperatură |
Senzor de umiditate a solului |
Senzor de nivel |
Buzzer |
Modul releu 2 canale |
Ecran LCD 16×2 |
Pompă submersibilă 12V |
Electrovalvă 12V |
Diodă |
Tuburi |
Cabluri |
Rezistențe diverse valori |
Arduino UNO R3 ATmega328p |
Software Design
Logica
void setup() - inițializez comunicarea cu lcd-ul, creez caracterul special pentru grade, definesc restul pinilor ca fiind de input/output și atașez întreruperi butoanelor care schimbă datele ce se afișează pe lcd
void loop() - se apelează la infinit urmatoarele funcții:
humidity_analysis(): Citește valoarea primită de la senzorul de umiditate a solului. În funcție de valoarea primită de la senzor și valoarea booleanului este_gol_rezervorul pornește pompa și deschide electrovalva/oprește pompa și închide electrovalva.
get_temp(): Citește valoarea primită de la senzorul de temperatură.
get_distance(): Aflu nivelul apei din rezervor. Trimit o undă direct către suprafața apei. Aștept ecoul ei să fie captat de senzor. Nivelul este determinat pe baza diferenței de timp între trimitere-captare.
trigger_buzzer(): Analizează valorile date de senzorul de temperatură și senzorul ultrasonic și pe baza acestora vede dacă trebuie să pornească sau nu buzzer-ul.
afiseaza_date(): Afișează informațiile citite de pe senzori.
Rezultate Obţinute
Proiectul functionează conform dorințelor mele. Singurul lucru pe care aș mai vrea să îl îmbunătățesc la această versiune este să meargă cu un singur alimentator.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF