Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul va fi o implementare a unui sistem de monitorizare si udare automata a plantelor de apartament/sera.
Ideea de la care am pornit a fost aceea ca eu uit mereu sa ud plantele, iar in situatia mea cred ca sunt si alte persoane.
Scopul acestui proiect este acela de a usura munca oamenilor care nu au suficient timp liber pentru a se ocupa de aceste plante.
Sistemul va monitoriza plantele prin intermediul unor senzori de: temperatura (temperatura mediului ambiant), umiditate (umiditatea solului), lumina (intensitatea luminii).
Planta va fi udata in cazul in care aceste valori nu corespund cu cele nominale si doar in cazul in care planta nu va fi afectata , la udarea acesteia se va tine cont de umiditate, timpul de udare fiind dat de cat de repede ajunge umiditatea la valoarea maxima permisa pentru planta.
Datele legate de temperatura, umiditate, intensitatea luminii vor putea fi vizualizate pe telefon. Comunicarea cu telefonul va fi facuta printr-un modul bluetooth astfel incat datele sistemului vor putea fi vizualizate de la o distanta apreciabila iar parametrii pentru udare vor putea fi modificati prin aceasta aplicatie(care sunt parametrii nominali pentru planta, limite, etc).
Aplicatia pe telefon dispune de urmatoarele functii:
In cazul in care utilizatorul nu are telefonul cu el, acesta poate observa local datele prin intermediul LCD-ului.
Udarea plantei se va face cu o pompa de apa care va fi comandata printr-un releu de 5V.
Schema bloc:
Nume Produs | Cantitate |
---|---|
Placă de bază și componentele obligatorii | 1 |
Condensator electrolitic 10V 16uF | 1 |
Stabilizator de tensiune 3.3V LP2950ACZ | 1 |
Mini Pompă de Apă Submersibilă 5V | 1 |
Modul cu Senzor de umiditate a solului(analog) | 1 |
Modul Senzor de Lumină Ambientală TEMT6000(analog) | 1 |
Modul Senzor de Temperatură DHT-11(digital) | 1 |
Modul Bluetooth Master Slave HC-05 | 1 |
LCD Nokia 5110 | 1 |
Releu comandat în 5V | 1 |
Alimentator telefon 5V 900mA | 1 |
Fire de legatura mama-tata | 2 |
Tub termocontractabil 2.5mm 1m | 1 |
Fire de legatura mama-mama | inf |
Observatii hardware:
Folosire senzori
Pentru senzorul de temperatura (digital) folosesc biblioteca dht11 si functia get_temp in care folosesc functia dht11_temperature pentru a afla valoarea temperaturii date de senzor dupa care scriu valoarea respectiva intr-un buffer pentru afisarea pe LCD.
Pentru senzorul de umiditate a solului folosesc functia get_humid in care setez parametrii ADC pentru citirea umiditatii (ma intereseaza niste valori foarte precise si cu interval de valori mic reprezentand procentul de umiditate).
Pentru senzorul de lumina folosesc functia get_light in care setez parametrii ADC pentru citirea luminii (nu ma intereseaza precizia foarte mult, dar am nevoie de un interval mai mare de valori).
Pentru senzorii analogici am folosit niste functii din laboratoare pe care le-am grupat intr-o biblioteca numita adc.
Folosire LCD
Pentru a afisa datele pe LCD folosesc biblioteca nokia5110 si functiile urmatoare create pentru o intelegere mai buna a codului:
Folosire Bluetooth
Pentru bluetooth am folosit biblioteca usart (USART0_init, USART0_print).
Trimiterea datelor am facut-o cu ajutorul USART0_print cu care trimit un string catre telefon, string care este alcatuit din 4 parti si 3 separatoare. Exemplu structura: “temp|humid|light|mode”.Valorile temp, humid,l ight sunt cele date de catre senzori si sunt separate prin “|” iar ultima valoare mode informeaza telefonul despre modul pe care microcontrolerul stie ca este setata udarea plantei (automata: tine cont de parametrii de udare, manuala: modul de udare automata este oprit).
Primirea datelor de la telefon este facuta cu ajutorul rutinelor de tratarea a intreruperilor. Pentru a activa aceste rutine am setat pinul RXCIE0 al UCSR0B si am creat urmatoarea rutina:
ISR(USART0_RX_vect) { }
Rutina este activata in momentul in care primesc un caracter pe USART. In functie de caracterul primit voi executa anumite operatii. Operatiile executate de ATMEGA324 sunt urmatoarele:
Aplicatie Android
Pentru a creea aplicatia Android am folosit App Inventor 2 al celor de la MIT. Aplicatia are urmatoarele functionalitati:
Logica program
Logica programului este data de functia main si este urmatoarea:
Proiectul a fost realizat cu succes.
Aplicatia Android de pe telefon arata astfel:
Poze cu proiectul:
Schema
Arhiva
336cc_brinzanionut_proiect.zip
Arhiva contine:
21 Mai 2018: Finalizare proiect
23 Mai 2018: Finalizare documentatie