Table of Contents

Introducere

C.H.A.R.L.I.E. v2 (Computerized Houseplant Anomaly Reporting, Logging and Irrigation Equipment) se dorește a fi un dispozitiv util în intreținerea automată a plantelor atunci când acestea nu pot fi vizitate cu regularitate de un îngrijitor uman, fie deoarece acestea se află într-un loc greu accesibil, fie deoarece omul nu poate găsi timp nici chiar pentru această activitate, cum este de exemplu cazul studenților UPB :-)

Aparatul se ocupă de un număr de plante dotate în prealabil cu câte un senzor de umiditate în apropierea rădăcinilor, și un senzor de iluminare montat pe tulpină. Funcția principală și esențială a automatului este aceea de a uda fiecare plantă atunci când nivelul de umiditate detectat recomandă acest lucru, prin pornirea unei pompe conectate la sistemul de irigație aferent plantei. În plus, se mai asigură și următoarele funcții secundare:

Ideea pentru acest proiect mi-a venit pe de o parte deoarece realizam că plantele pe care le am pe balcon, deși nepretențioase, necesită totuși atenție din când în când - atenție pe care cu greu o pot oferi, în postura de student UPB mereu sub presiunea deadline-urilor - și, pe de altă parte, din dorința de a realiza un proiect care să atingă subiectele ecologiei și eficienței în folosirea resurselor, ambele de mare interes pentru mine.

Descriere generală

Începem prin a prezenta schema bloc a aparatului:

Schema bloc

Se va nota în primul rând folosirea a două daughterboard-uri pentru a extinde plăcuța general-purpose de programare realizată în etapa 1 cu funcțiile specifice aparatului proiectat. S-a ales această variantă atât pentru a evita modificările frecvente de cablaj asupra plăcii inițiale (care are o schemă bine definită în timp ce daughterboard-urile sunt încă experimentale), cât și deoarece pe motherboard nu a mai rămas suficient spațiu pentru plasarea comfortabilă a pieselor suplimentare.

Partea din stânga a schemei prezintă interfațarea aparatului cu mediul fizic de lucru, prin intermediul senzorilor (câte un senzor de umiditate a solului și un fotosenzor pentru fiecare plantă) și efectorilor (câte o pompă pentru fiecare plantă). Conectarea între senzori și motherboard se face prin intermediul unor adaptoare analogice situate pe daughterboard-ul de achiziție date și comandă, funcția acestora fiind de a efectua eventualele amplificări și conversii de nivel specifice fiecărui tip de senzor necesare obținerii unui semnal procesabil de către convertorul analog-digital al ATMEGA32. Pompele fiind utilaje de putere, acționarea acestora se face prin intermediul unui releu.

Deoarece în această aplicație nu avem nevoie de măsurători simultane și foarte frecvente (cel mult din minut în minut), putem face o mare economie de piese, energie și complexitate a circuitului operând senzorii și pompele în regim de multiplexare: în orice moment, cel mult o pereche de senzori va fi activată și conectată electric la daughterboard, ATMEGA selectând și citind pe rând fiecare senzor la intervale regulate de timp.

Funcțiile de înregistrare și comunicare pe rețeaua Ethernet sunt asigurate de daughterboard-ul din partea dreaptă a desenului, ce conține un slot pentru un card MMC/SD și o interfață Ethernet formată dintr-un controller și conectorul RJ45. C.H.A.R.L.I.E. poate comunica pe rețeaua Ethernet - intermediat de routere sau nu - atât cu un server de alerte (căruia îi trimite un pachet pe un port stabilit atunci când apare o situație ce necesită atenția utilizatorului), cât și cu clienți, cărora le răspunde la cererile HTTP pentru raportarea stării curente, downloadarea log-ului, sau configurarea unor aspecte de funcționare.

Interfețele RS232, USB și ISP prevăzute pe motherboard vor fi folosite în timpul dezvoltării (sau reconfigurării ulterioare) pentru programare, depanare și efectuarea de configurări preliminare (adresa IP, etc.).

Hardware Design

Placa de bază (motherboard)

Reamintim schema plăcii de bază realizate în etapa 1:

Schema placii de baza

Placa de bază dispune de următoarele resurse:

Modulul de achiziție și comandă

Daughterboard-ul ce se ocupă de interfațarea automatului cu mediul înconjurător se atașează de porturile A și C ale plăcii de bază, portul C fiind folosit pentru input/output digital, iar portul A pentru input analog dinspre senzori spre convertorul analog-digital al ATMEGA32:

Schema daughterboard achizitie/comanda

Pentru fiecare plantă gestionată de aparat, pe daughterboard este prevăzută câte o mufă pentru conectarea senzorului de umiditate, celui de iluminare, și pompei aferente.

Senzorul de umiditate

Pentru a măsura starea de umiditate a unei plante, vom folosi o metodă simplă, bazată pe măsurarea rezistivității solului, aceasta având valori mici (<5KΩ) pentru solul umed și crescând până la valori de 300KΩ-1MΩ pentru solul uscat. Metoda nu este din cele mai precise, însă este satisfăcătoare pentru aplicația de față1).

Senzorul nostru este în esență o sondă ohmică artizanală (construită din două andrele și o cutie de Airwaves, plus izolirband, MacGyver style) care se înfige în solul din apropierea plantei și îl folosește ca element de circuit într-un divizor de tensiune. Atunci când este timpul pentru efectuarea unei noi măsurători, placa de bază va alimenta senzorul cu 5V între liniile sale POWER și GROUND, și va citi valoarea stabilită la ieșirea senzorului, conform formulei:

\dispmath{V_{out} = V_{cc} \frac{R_1}{R_1 + R_{sol}}}\;

De remarcat că divizorul este astfel structurat (tensiunea citită pe R1 și nu pe Rsol) încât să se obțină sensibilitate maximă în zona de valori mici (5-20KΩ) pentru Rsol (umiditate medie spre mare). În sprijinul acestei cerințe vine și valoarea relativ mică aleasă pentru R1 (4,7KΩ), aceasta fiind în același timp suficient de mare pentru a suporta întreaga tensiune de 5V în caz că Rsol devine zero (de ex. în timpul udării). Un neajuns al acestei configurații este acela că, în cea mai mare parte a timpului, rezistența solului va avea valori de puțin peste 5KΩ, senzorul generând la ieșire un semnal de cel mult 1/2 din VCC. Din acest motiv, se introduce un amplificator (o jumătate a unui circuit LM358N) care va dubla valoarea citită de pe divizor înainte ca aceasta să fie preluată de ATMEGA (astfel, orice valoare a rezistenței solului sub 4,7KΩ va fi interpretată ca umiditate 100%).

Senzor umiditate Detaliu mufa senzor umiditate Schema senzor umiditate
Senzorul de umiditate Detaliu mufă Schema electrică

Senzorul de iluminare

Pentru detectarea cantității de lumină solară primită de o plantă, vom folosi un senzor realizat cu fotorezistorul VT93N1. Un fotorezistor este o componentă a cărei rezistență variază cu cantitatea de lumină incidentă, aceasta fiind foarte mare în condiții de întuneric și scăzând pe măsură ce dispozitivul primește mai multă lumină, deoarece fotonii absorbiți oferă energie pentru trecerea unui număr mai mare de electroni în banda de conducție și deci creșterea conductivității. Pe același efect se bazează, în esență, și fotodiodele sau fototranzistorii - fotorezistorul este în esență un semiconductor de rezistență mare. Pentru aplicația de față s-a ales folosirea unui fotorezistor deoarece acesta este mai ieftin, mai robust și mai puțin susceptibil la interferențe și la atenuarea semnalului din cauza lungimii cablurilor.

Pentru aplicația de față vom avea nevoie să măsurăm nivele ale luminii cuprinse între 10 lucși (amurg) și 10000-50000 lucși (lumina de zi, respectiv iluminare directă din partea Soarelui), rezistența elementului variind în acest caz între circa 100kΩ și 5-10Ω. Pentru traducerea acestei rezistențe variabile într-un voltaj măsurabil de către microcontroller, se folosește ca și mai înainte un divizor de tensiune, mărimea de ieșire fiind:

\dispmath{V_{out} = V_{cc} \frac{R_1}{R_1 + R_{foto}}}\;

Se observă că se va genera un voltaj între 0 și 5V, proporțional cu cantitatea de lumină, rezoluția maximă de măsurare atingându-se în partea corespunzătoare unui nivel mare de iluminare. Se va folosi ințial o rezistență R1 de 10kΩ, valoarea putând fi schimbată mai târziu în funcție de rezultatele procesului de calibrare.

Pentru izolarea divizorului de ATMEGA și reducerea impedanței de ieșire a sursei de semnal (lucru necesar ADC-ului pentru o conversie rapidă), se folosește cealaltă jumătate a amplificatorului LM358 în configurația de repetor de tensiune.

Fotorezistor Senzor de iluminare Schema senzor iluminare
Fotorezistor Senzorul de iluminare (detaliu cap+mufă) Schema electrică

Pompa

Udarea fiecărei plante se realizează cu câte o pompă Robbe 1569 cumpărată de la un furnizor de echipamente pentru navomodelism, ce transferă apă între un rezervor comun și planta aferentă prin intermediul unor furtunuri realizate din învelișul unui cablu UTP (care, din întâmplare, are exact diametrul potrivit pentru conectarea etanșă la terminalele pompei).

Față de placa de bază, pompa utilizează atât tensiuni cât și curenți mai mari (circa 2A la 12V) și poate fi considerată un utilaj de putere. Prin urmare, pentru alimentarea unei pompe se folosește o sursă separată în forma unui adaptor de 12V, iar pentru realizarea și întreruperea circuitului conform cu semnalul de 5V emis de microcontroller se va utiliza un circuit de comandă. Acesta are la bază un tranzistor de putere 2SC3852, capabil să comute curenți de ordinul amperilor și tensiuni de ordinul zecilor de volți în condițiile unui curent de bază de numai 5-10mA. Circuitul de comandă include și o diodă de putere 1N4007, necesară pentru a proteja tranzistorul de spike-ul de tensiune inversă generat de componenta inductivă a motorului în momentul opririi acestuia.

Pompa Circuitul de comandă Schema senzor iluminare
Pompa Circuitul de comandă Schema electrică

Multiplexarea senzorilor și comenzilor

C.H.A.R.L.I.E. are în grijă mai multe plante și deci un număr egal de senzori de umiditate a solului, senzori de iluminare solară, și electropompe. Este ușor de observat că soluția trivială a utilizării în paralel a tuturor acestor echipamente ar implica un cost deosebit de mare în ceea ce privește numărul de piese folosite, complexitatea circuitului și puterea consumată (putându-se ajunge chiar la epuizarea numărului de porturi ai ADC sau a puterii disponibile a sursei de alimentare). Din fericire, putem exploata faptul că în cadrul aplicației de față nu avem cu adevărat nevoie să facem citiri simultane ale senzorilor, deoarece valorile au o evoluție extrem de lentă în timp, iar înregistrarea acestora se face cel mult din minut în minut. În mod similar, nu există nici un motiv pentru ca mai mult de o pompă să fie activă la un moment dat, udarea plantelor putându-se face secvențial (ca și în cazul manual, dealtfel).

Prin urmare, pentru a face o mare economie de piese și putere, s-a implementat un sistem de multiplexare a conexiunilor către senzori și comenzilor către pompe, realizat cu ajutorul multiplexoarelor analogice diferențiale MPC509AP și demultiplexorului digital CD4555. Multiplexorul analogic MPC509AP (variantă a circuitului standard CD4052) permite conectarea la un moment dat a unui singur dublet de porturi independente (SnA,SnB) la porturile comune (DA,DB), numărul cuplului pentru care se face conexiunea fiind decis de codul introdus pe liniile A1 și A0 2). În acest fel, putem prevedea pe placă un singur circuit “comun” de alimentare pentru senzor și un singur amplificator pentru voltajului măsurat, acestea urmând a fi folosite pe rând de către fiecare senzor pe măsură ATMEGA îi selectează. În mod similar, demultiplexorul CD4555 emite un 1 logic (+5V) pe ieșirea al cărei număr de ordine este specificat pe pinii A1 și A0 (activând astfel circuitul de comandă pentru pompa respectivă), restul fiind la 0V. Evident, atât în cazul MPC509AP cât și CD4555, se pot deconecta/dezactiva toate ieșirile prin punerea pe 0 logic a pinului EN (enable). Liniile A0, A1 și EN pentru fiecare circuit de multiplexare sunt comandate de ATMEGA prin biții portului C.

Implementarea de față poate gestiona până la 4 plante, putând fi extinsă relativ ușor prin adăugarea mai multor circuite MCP509AP sau folosirea unor circuite similare cu număr mai mare de dublete comutate.

Modulul de înregistrare și comunicații

Daughterboard-ul ce se ocupă cu funcțiile de înregistrare date și comunicații pe Ethernet se atașează de porturile B și D ale plăcii de bază:

Schema daughterboard comunicatii/inregistrare

Software Design

stub

Rezultate Obţinute

stub

Concluzii

stub

Bibliografie/Resurse

Resurse hardware

Senzori

Rețea

Card SD

Resurse software

Programare ATMEGA

Rețea

Stocare

Timp

Alte resurse

Principii de funcționare

1) În industrie se folosesc metode bazate pe măsurarea permitivității solului prin injectarea unui semnal radio sau folosirea solului ca dielectric într-o capacitate și măsurarea acesteia.
2) De remarcat că multiplexorul analogic și cel digital, deși similare superficial, funcționează în mod cu totul diferit: multiplexorul digital este un dispozitiv unidirecțional pentru dirijarea semnalelor logice cu doar două nivele, în timp ce multiplexorul analogic stabilește o conexiune bidirecțională între porturile comune și cele independente pentru transmisia de semnale analogice, fiind deci o specie de comutator electronic.