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

  • mediu dezvoltare: Arduino IDE
  • biblioteci folosite:
    • LiquidCrystal - folosită pentru a afișa date pe ecranul lcd
    • OneWire, DallasTemperature - folosite pentru a comunica cu senzorul de temperatură și a prelucra informația oferită de acesta

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.
  • Pe langa cele două funcții principale, mai folosesc și două întreruperi, una pentru fiecare buton (check_button și check_button_2). Acestea incrementeaza/decrementeaza o variabilă care este folosită pentru a stabili ce informație se va afișa pe ecran.

Tot codul este disponibil aici.

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.

Download

În arhivă mai este prezent și un videoclip în care se prezintă funcționarea proiectului. De asemenea videoclipul poate fi vizualizat și aici

resurse_proiect.zip

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

pm/prj2022/robert/automatizare_irigatie_solar.txt · Last modified: 2022/05/27 23:10 by florin.postolache
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