Sistem Monitorizare Sera

Lucrare de Licență

Sistem monitorizare seră

Memoriu justificativ

Deoarece trăim într-o lume unde electronica a luat o viteză de dezvoltare foarte mare și s-au dezvoltat o mulțime de dispozitive și componente electronice, care acum avem posibilitatea să le conectăm între ele și să obținem proiecte foarte interesante în diferite domenii, posibilitatea realizrii programelor a făcut posibilă îmbinarea dintre hard și soft de catre realizatorul proiectului oferindu-i posibilitatea de a realiza proiecte mai complexe care ușurează activitatea umană în diferite domenii de activitate.

Ideea proiectul meu de licență intitulat ,,Sistem de monitorizare seră ,, a apărut din dorința de a studia și a pune în practică cunostințele dobândite în cei patru ani la Facultatea de Electronică Telecomunicații si Tehnologia Informației. Am gândit acest sistem de monitorizare a principalilor parametrii (temparatură și umiditate), care influențează direct dezvoltarea culturilor ce sunt cultivate în seră, pentru a veni în ajutorului omului ușurândui activitatea și informandu-l despre orice schimbare bruscă ce necesită intervenție imediată. Odata cu folosirea a mai multor senzori am avut posibilitatea sa învaț modul de conectare si operare cu senzori noi. Adăgarea de îmbunatațiri cu ajutorulu senzorilor de ultrasunet și a sistemului de iluminare nocturnă care se activează pe baza datelor preluate de la o fotorezistență am făcut posibilă adaptarea rapidă a sistemului electronic de monitorizare și la alte aplicații cum am specificat și în concluzii: monitorizarea parametrilor temperatură și umiditate în spatiile ocupate de biblioteci care conțin diferite lucrări vechi care necesită condiții de pastrare specifice, galerii de artă unde există picturi si alte lucrari, depozite unde avem marfuri care trebuie pastrate în anumite condiții.

.

Introducere

Până la apariția acestui nou concept de seră, cea mai mare creștere a culturilor a fost făcută în domeniile deschise, lăsând astfel cultivatorul și culturile sale expuse la fluctuațiile de natură. Condițiile meteorologice au influențat în mod direct durata și succesul sezoanelor de creștere de culture, un sistem de creștere cunoscut sub numele de agricultură extensivă sezonier.

Introducerea de creștere a culturilor de interior în condiții climatice controlate neutralizeaza impactul pericolelor vreme și, teoretic, permite o creștere pe tot parcursul anului. Această nouă abordare a marcat introducerea din lume pentru a conceptului de agricultură intensivă. O schimbare semnificativă concept, producția de seră a devenit o industrie nouă, bazată pe tehnologie, care implică noi tipuri de echipamente tehnice capabile să obțină rezultate previzibile și profituri.

Competitivitatea între piețe și standardele de calitate tot mai mare de cultivatori au crescut importanța fiecărei unități de producție agricole mici. Este în aceste unități, care avantajele moderne serei sunt exprimate – capacitatea de a controla creșterea plantelor, programe de creștere și randament, aproape indiferent de factori externi, protejând în același timp calitatea înaltă a produselor pe tot parcursul anului și asigurarea agricultorului unui flux stabil de venituri.

Soluția găsita pentru a obține randament maxim este utilizarea sistemelor de monitorizare și control a principalilor parametrii (temperatură, umiditatea solului și a aerului) care influențează creșterea plantelor.

Sistemele de monitorizre a temperaturii și umiditatii sunt frecvent folosite în aplicații din diferite domenii: alimentar, medical, industria auto, în domeniul construcțiilor, în industrie etc .

Capitolul 1

Date generale despre senzori și sisteme de monitorizare sere

1.1 Generalități senzori temperatură

Temperatura reprezintă una dintre mărimile cele mai frecvent măsurate în numeroase domenii datorită faptului că în majoritatea proceselor fizice, chimice, biologice, naturale sau artificiale, intervin fenomene de natură termică. Se apreciază că în aplicatiile industriale, în medie, 50% din totalul punctelor de măsurare si peste 20% din cel al buclelor de reglare au ca obiect temperatura sau alte mărimi termice.

Supravegherea și /sau reglarea temperaturii pot fi întâlnite practic în toate ramurile industriale, principalele scopuri fiind optimizarea fluxurilor termice în procesele tehnologice, întocmirea bilanțurilor de energie termică, evaluarea și reducerea pierderilor prin transfer de căldura, asigurarea și mentinerea anumitor condiții climatice în fazele de producție, depozitare sau transport etc.

Valorile temperaturilor care trebuie măsurate variază în limite largi de la -200 °C pâna la 3000 – 3500 °C. Totodată este demn de subliniat faptul că, dat fiind implicațiile tehnico-economice deosebite, măsurarile trebuie efectuate cu precizie ridicată și mijloacele de măsurare utilizate să nu exercite influențe nedorite asupra proceselor respective. Mediile ale căror temperaturi se măsoară se pot afla în oricare dintre ele trei stări de agregare posibile. Pot astfel să apară situții foarte variate, de exemplu măsurarea temperaturii unor fluide sau chiar solide în mișcare, măsurari de temperaturi locale sau pe suprafețe mari, în zone si la distante usor accesibile sau dimpotrivă.

Traductoarele de temperatură sunt cunoscute sub denumirea de termometre.

Acuratețea procesului de măsurare a temperaturii este foarte importantă pentru diferite procese tehnologice .

În tabelul 1 sunt prezentate patru dintre cele mai utilizate tipuri de traductoare de temperatură, împreună cu câteva caracteristice ale lor.

Tabel 1.1

1.2 Caracteristicile ale traductoarelor de temperatură

Senzorii de temperatură cu semiconductori se pretează la realizarea lor sub formă integrată, au un nivel mare al semnalului de ieșire, dar acoperă un domeniul relativ restrâns de temperatură.

Domeniul de măsură al traductoarelor de temperatură cu semiconductoare este cuprins în intervalul de -25 [°C] până la 200 [°C]. Cu toate că intervalul de măsură este limitat, acest interval poate fi suficient pentru o mulțime de aplicații.

Termistoarele au cea mai mare sensibilitate, dar au dezavantajul că sunt puternic neliniare. Există două tipuri de termistoare cu coeficienți negativi de temperatură (NTC

Negative Temperature Coefficient) și termistoare cu coeficienți pozitivi de temperatură (PTC -Pozitive Temperature Coefficient). Termistoarele cu coeficient negativ de temperatură se folosesc ca senzori de temperatură, termistoarele cu coeficient pozititv de temperatură având aplicații in controlul și limitarea curentului.

Termocuplele sunt cei mai simpli senzori de temperatură utilizați în știință și industrie. Funcționarea lor se bazează pe efectul Seebeck. Pot fi folosite într-un domeniu larg de temperatură dar sunt neliniare și au un nivel mic al semnalului de ieșire.

Termometrele cu rezistenta metalică au acuratețe și liniaritate bună, dar necesită o sursă de energie de excitație și un circuit de măsurare de tip punte.

Elementele determinate luate în calcul la alegerea unui anumit traductor de temperatură sunt: costul, precizia, posibilitatea unei interfațări simple cu alte elemente de circuit, dimensiunile fizice etc.

1.3 Generalități senzori umiditate.

Umiditatea reprezintă cantitatea de apă conținuta în aer. În limbajul comun, termenul de umiditate se referă în general la umiditate relativă. Există trei moduri de a clasifica umiditatea: umiditatea absolută, umiditatea relativă si umiditatea specifică.

Umiditatea relativă se definește ca fiind cantitatea de vapori de apă din aer comparativ cu cantitatea maximă de vapori de apă care ar putea exista in aer, la saturație. Cantitatea maximă de vapori de apă la saturație depide de temperatură. Umiditatea relativă este cuprinsă între 0 si 100 %. Umiditatea relativă se exprima în procente și este dată de relația :

RH [%] = 100

Unde :

reprezintă densitatea vaporilor de apă din amestec;

) reprezintă densitatea vaporilor de apă din amestec la saturație;

RH umiditatea relativă

Umiditatea absolută reprezintă cantitatea de apă într-un anumit volum de aer. Unitatea de măsură cea mai folosita este g/.

Umiditatea absolută este dată de relația:

AH=

Unde :

reprezintă masa vaporilor de apă;

reprezintă volumul de aer;

Umiditatea specifică reprezintă cantitatea de vapori de apă din aer într-un volum de aer dat. Umiditatea secifică este dată de relația:

SH=

Unde:

reprezintă masa vaporilor de apă;

reprezintă masa volumului de aer umed;

1.4 Principalele tipuri de senzori de umiditate sunt:

Tipurile de senzori de umiditate, sunt aparate care indică direct valoarea umidității aerului la un moment dat, se clasifică după cum urmează:

– Senzori capacitivi ale umidității relative (RH);

– Senzori de umiditate rezistivi;

– Senzori termici conductivi a umidității absolute;

Senzorii de umiditate capacitivi sunt utilizați pe scară largă în echipamente industriale moderne, electrocasnice și sisteme de colectare date meteorologice.

Principiul de funcționare este dat de modificarea lungimii unui fir de păr degresat,

acesta este un material organic higroscopic, deci absoarbe vaporii de apă. Higrometrele cu fir de păr capacitive au un electrod cu permeabilitate sporită pentru vaporii de apă se utilizează ca un strat de contact cu mediul. Sub acest electrod este un dielectric, care își schimbă caracteristicile electrice în funcție de umiditatea relativă. Perechea acestui electrod este situată dedesubt pe un substrat de bază din sticlă sau plastic. Modificările lungimii firului de păr sunt transmise printr-un resort la un ac indicator. Acul indicator se va deplasa în fața unui cadran etalonat în valori ale umidității relative a aerului, de la 0 la 100%, construcția este foarte asemănătoare cu cea a condensatorului plan. Datorită difuziei moleculelor de apă ce se deplasează liber prin aer, se realizează un echilibru al umidității. Rezultatul este comparat cu valoarea maximă a umidității mediului respective (saturație). Precizia acestui tip de senzor poate fi de 2-5%.

Senzori de umiditate rezistivi, acest tip de senzor măsoară impedanța electrică a unui mediu higroscopic cum ar fi: un polimer conductiv, sarea sau un substrat tratat, valoarea impedanței se schimbă în funcție de umiditate. De obicei, senzorii rezistivi sunt construiți dintr-un electrod din metal nobil depus pe un substrat de bază (tehnica fotorezistorului) sau electrozi ce formează o mică înfășurare bobinată (trasee conductoare) aflată pe un cilindru de sticlă sau plastic. Substratul este acoperit cu sare sau un polimer conductive. Când sarea este dizolvată la apariția vaporilor de apă, se va modifica conductivitatea, deci rezistența. Timpul de răspuns variază de la 10 la 30 secunde pentru o variție de 63% a RH-ului. Impedanța variază între limitele: 1kΩ și 100MΩ. Aplicații cu traductoare de umiditate în figura 1.1 de mai jos este prezentat un grafic de variație a rezistenței funcție de umiditatea relativă pentru un sensor rezistiv.

Figura 1.1

Senzori termici conductivi a umidității absolute, acești senzori măsoară umiditatea absolută prin determinarea diferenței dintre conductivitatea termică a aerului uscat și aer saturat cu vapori de apă .Pentru a măsura umiditatea absolută la temperaturi ridicate frecvent utilizarea senzorilor este afectată de căldură. Principiul lor de lucru este foarte diferit de cel a senzorilor rezistivi și capacitivi. Termic senzorii de umiditate conductoari (sau senzori de umiditate absolută) constau din doi termistori NTC de acord, într-un circuit punte. Tensiunea de ieșire pod este direct proporțională cu umiditatea absolută. Un termistor este închis ermetic în azot uscat, iar celălalt este cu carcasa deschisă.

Când curentul trece prin termistori, crește temperatura CDT la peste 200 ° C, căldura disipată din termistorulul închis ermetic care disipă mai multă căldură decât termistorul cu carcasă deschisă, care are ca urmare o diferență de conductivitate termica dintre abur și azot uscat. Deoarece căldura disipată creează diferite de temperaturi de funcționare, diferența este proporțională cu rezistența termistorului și umiditatea absolută.

Senzorii de umiditate absolută au o durată de viață lungă, temperatura lor de funcționare este de pana la 300 ° C, iar carcasa senzorului este rezistentă la vapori chimici.

O caracteristică interesantă a senzorilor termoconductori este că ei răspund la orice gaz care are conductivitate termică diferită de cea a azotului. Acest lucru va afecta rezultatele măsurătorilor. De obicei, senzori de umiditate absolută sunt folosiți în uscătoare, cuptoare cu microunde și vapoare.

În general, senzori de umiditate absolută au o rezolutie mai mare la temperaturi de peste 200 ° F, decât senzorii de umiditate capacitivi și rezistivi. Ei pot fi folosite în aplicații unde senzori de umiditate convenționali nu sunt permiși. Precizia tipic este codificatoare absolută 3g / mc, este de aproximativ 5% RH la 40 ° C, sau 0,5%, la 100 ° C.

Selectarea unui senzor de umiditate se face urmărind criteriile:
condițiile de mediu, precizia, repetabilitatea, interschimbabilitatea, stabilitatea pe termen lung, abilitatea de a reveni după condensare, rezistența chimică și fizică la condițiile de mediu, dimensiunile, eficiența costurilor.

Capitolul 2

Descriere senzori

2.1 Senzorul DHT11 temperatură și umiditate a aerului.

DHT11 este un modul digital care are integrat un senzor de temperatură și un senzor de umiditate, valorile de iesire sunt calibrate intern pentru o măsurare căt mai exactă;

2.1.1 Introducere

Acest senzor include o componentă de măsurare umiditate de tip rezistiv și o componentă NTC de măsurare a temperaturii. Prin utilizarea semnalului digital – achiziție, o tehnica exclusivă a tehnologiei de detectare a temperaturii și a umiditații, aceasta asigură o fiabilitate ridicată și o stabilitate excelentă pe termen lung .

Figura 2.1

Fiecare element DHT11 ester strict calibrat în laborator, care sunt extrem de precis calibrate pentru umiditate. Coeficienții de calibrare sunt stocați ca programe în memoria OTP, care sunt utilizați in procesul intern de detecție a senzorului. Interfața serială singurul fir face integrare de sistem rapid și ușor. Dimensiunile sale mici, consum redus de energie și pâna la 20 metri de transmitere a semnalului cea mai bună alegere pentru diverse aplicații, inclusiv unele din cele mai exigente.

2.1.2 Componenta de măsurarea a temperaturii de tip termistor.

Termistoarele sunt rezistoare dependente de temperatură, realizate din oxizi metalici (mangan, nichel, cobalt, cupru si fier) sau din materiale semiconductoare. În funcție de curba de variație a rezistenței cu temperatura, termistoarele sunt de doua feluri:

cu coeficient negativ de variație a rezistenței cu temperatura (NTC) și

cu coeficient pozitiv de variație a rezistenței cu temperatura (PTC).

Figura 2.2

La termistoarele de tip NTC, rezistenta scade la cresterea temperaturii dupa o lege exponențială, dată de material:

unde RT este rezistența la temperatură masurată T [K], RT 0 este rezistența la temperatura de referință, tipic +25 °C (are valori de 10 Ω … 40 M Ω) iar este o constantă de material.

Sensibilitatea termistoarelor de tip PTC este foarte mare, dar domeniul de temperaturi este limitat (-100 .. +400 °C pentru cele din oxizi metalici si -150 .. +150 °C pentru cele din materiale semiconductoare).

Caracteristica de variație a rezistenței cu temperatura este neliniară (figura 3), utilizându-se pentru liniarizarea rezistoarelor serie și paralel. În funcție de tipul aplicației, există disponibile modele liniarizate de producător și modele cu gamă extinsă de temperatură.

Caracteristica de variație a rezistenței termistoarelor cu coeficient negativ de temperatură (NTC) cu temperatura este o funcție exponentială negativă. Sensibilitatea termistoarelor de tip NTC are tipic valoarea -3 … -6 iar gama temperaturilor de funcționare este cuprinsă în limitele –250 … +650 °C. Variantele uzuale ale acestor termistoare sunt cele în suport de sticlă, disc, baghetă sau chip. Dimensiunile mici au ca efect un timp scurt de răspuns.

Termistoarele cu coeficient pozitiv de temperatură (PTC) sunt caracterizate de o scădere lentă a rezistenței până la o temperatură de prag, după care rezistenta crește cu peste trei ordine de mărime, așa cum se observă în figura 3. Termistoarele PTC sunt utilizate ca dispozitive cu prag de temperatură sau ca siguranțe cu revenire automată, în aplicațiile de comutare. În faza inițială au fost utilizate pentru temperaturi scăzute , între 1 și 35 K (germaniu) și < 20K (carbon), dar datorită perfecționării tehnologiei siliciului, în ultima perioadă (în special in tehnica circuitelor integrate) acesta se folosește dopat cu impuritați de tip " n" .

Termistoarele de siliciu au o bună stabilitate pentru temperature între – 50…+120°C, în mecanismul de conducție intervine dopajul ce reduce mobilitatea purtătorilor de sarcină, pentru temperaturi mai mari, datorită ionizărilor termice, rezistenta scade cu temperatura.

În tehnică se utilizeză termistoare a căror sensibilitate este superioară cu cel puțin

un ordin de mărime fată de termorezistențe. Din punct de vedere constructiv, se realizează în forme miniaturizate de discuri, plachete, perle, cilindri și permit măsurarea cvasipunctuală a temperaturii cu o viteză de răspuns ridicată. Domeniul de măsura poate acoperi plaja de temperature – 200 … +400 °C, uzual fiind 200 °C.

Acești senzori prezintă o serie de avantaje ca sensibilitate foarte ridicată putând atinge rezoluții pâna la 0,01 °C, fiind indicate în măsurările de presiune diferențiale dar, prezintă marele dezavantaj de interșanjabilitate ( nu pot fi " împerecheate").

Este foarte dificil ca dintr- un lot destul de mare să alegem două termistoare cu rezistentă identică la temperatura de referintă, înlaturarea acestui neajuns făcându-se prin înserierea unei rezistențe fixe în circuitul de măsurare.

2.1.3 Componenta de măsurarea a umiditații de tip rezistiv.

Rezistența este o caracteristică de material. Ea depinde de tipul și geometria materialului.

Senzorii rezistivi de umiditate sunt construți din material hidroscopic, a căror rezistivitate este influenșțată de concentrația de molecule de apă absorbite.

Cei mai multi senzori rezistivi folosesc ca sursă de exctație tensiunea alternativă fară componenta continuă pentru a preveni polarizarea senzorului. Curentul este redresat și convertit la DC pentru amplificarea în continuare, liniarizare sau convesie analog-digitală.

Figura 2.3

Designul senzorilor rezistivi moderni folosesc un strat ceramic ce reducere mediu de fuziune în caz de condens. Senzorul este alcătuit dintr-un substrat ceramic cu electrozi metalici depuși pe tehnologia fotorezistorului. Suprafața substratului este acoperită cu un polimer conductor (sau o compoziție ceramică mixtă), iar senzorul este plasat într-o cutie de plastic protectoare cu un filtru de particule.

2.1.4 Specificatii tehnice

Date generale:

Tabel 2.1

2.1.5 Aplicații tipice

Figura 2.4

Notă: PINul 3 – Null; MCU = Micro-calculator Unite sau singur cip de calculator. În cazul în care cablul de conectare este mai mic de 20 de metri, se recomandă o rezistență de 5K, dacă cablu de conectare este mai mare de 20 metri valoare rezistenței se calculeaza după cum este necesar;

2.1.6 Procesul de comunicare: Interfața serială (Single-Wire Two-Way)

Formatul de date cu un singur bus este folosit pentru comunicare și sincronizare între MCU și senzorul DHT11. Un proces de comunicare este de aproximativ 4ms. Datele sunt formate din parte intreagă și parte zecimală. O transmisie de date este completă pe 40 biți, iar senzorul transmite pe cea mai mare în primul rând.

Formatul datelor: 8 biți intreg RH date + 8 biți zecimal RH date + 8 biți intreg T date + 8 biți zecimal T date + 8 biți sumă de verificare.

Procesul de comunicare general

Când MCU trimite un semnal de start, DHT11 schimbă de la modul de consum de energie redus la rulare-modul, și așteaptă pâna MCU completează semnalul de start. Odată ce este finalizat, DHT11 trimite un semnal de răspuns de date de 40 de biți, care include umiditatea relativă și informații de temperatură către MCU. Utilizatorii pot alege pentru a colecta (a se citi) unele date. Fără semnalul de start de la MCU, DHT11 nu va da semnalul de răspuns la MCU. Odată ce datele sunt colectate, DHT11 își va schimba modul de consum de energie redus, până când primește un semnal de start de la MCU din nou.

Figura 2.5 Procesul de comunicare

MCU trimite semnal de start către DHT

Single-bus, starea inițială este la nivel de înaltă tensiune. Când începe comunicarea între MCU și DHT11, programul de MCU va stabili o singură magistrală de date la nivel de tensiune de la mare la mic, iar acest proces trebuie să aibă cel puțin 18ms pentru a asigura

detectarea DHT de semnal MCU, atunci MCU va trage în sus de tensiune și așteptă 20 -40us pentru răspunsul DHT- lui.

Figura 2.6 Trimitere semnal de start & raspuns DHT11

Răspunsul DHT catre MCU

Odată ce DHT detectează semnalul de start, acesta va trimite un semnal de răspuns tensiune nivel scăzut, care durează 80 us. Apoi, programul de DHT stabilește Single-bus de date la nivel de tensiune de la mic la mare și îl păstrează 80 us pentru pregătirea DHT pentru trimiterea datelor.

Când datele Single-Bus sunt la nivelul de joasă tensiune, acest lucru înseamnă că DHT trimite semnalul de răspuns. După ce DHT a trimis semnalul de răspuns, semnalul este tras în sus de tensiune și îl păstrează 80 us și se pregătește pentru transmisia de date.

Când DHT trimite date la MCU, fiecare bit de date începe cu 50 us tensiune de nivel scăzut și lungimea următoarele semnalului tensiune de nivel înalt determină dacă bit de date este "0" sau "1" (a se vedea figurile 2.7 și 2.8 de mai jos).

Figura 2.7 Bit de date ,,0”

Figura 2.8 Bit de date „1”

Dacă semnalul de răspuns de la DHT este întotdeauna la tensiune de nivel înalt, se sugerează că DHT nu răspunde în mod corespunzător trebuie să verificăm conexiunea . Când sunt transmise datele ultimul bit, DHT11 trage în jos nivelul de tensiune și o menține pentru 50 us. Atunci tensiunea Single-Bus va fi trasă în sus de rezistență pentru a seta înapoi la starea inițială.

2.1.7 Caracteristici electrice

VDD=5V, T = 25℃

Tabel 2.2

2.1.8 Atenționari in aplicație

Condiții de operare

Aplicarea senzorului DHT11 dincolo de gama de lucru menționată în prezenta fișă tehnică poate duce la 3% RH semnal eronat/ schimbat. Senzorul DHT11 se poate sincroniza corect treptat atunci când se întoarce la starea de funcționare normală și funcționează în gama de lucru admisă.

Atenționare la materiale chimice

Vapori din materiale chimice pot interfera cu elementele sensibile DHT și slăbind sensibilitatea. Un grad ridicat de contaminare chimică poate deteriora permanent senzorul.

Efectulu temperaturii

Umiditatea relativă depinde în mare măsură de temperatură. Deși tehnologia de compensare a temperaturii este utilizată pentru a asigura măsurarea precisă a RH, este încă recomandă să se păstreze umiditatea și temperatura senzorului de lucru la aceeași temperatură. DHT11 trebuie montat în locuri, pe cât posibil cu piese care pot genera căldură.

Efectul luminii.

Expunerea timp îndelungat la lumina solară puternică și ultraviolete poate scădea performanta DHT-lui.

Cablurile de conectare

Calitatea firelor de conectare va afecta calitatea și distanța de comunicare pentru o înaltă calitate se recomandă ecranarea firelor.

2.2 Senzorul de umiditate sol YL-69

2.2.1 Introducere

Acesta este un senzor de tip rezistiv, este alcătuit din doi electrozi. Senzorul de umiditate a solului citește conținutul de umiditate în jurul lui din sol. Un curent este trecut prin electrozi, și rezistența la curent în sol determină umiditatea solului. Dacă solul are rezistența scăzuta din cauza continutului de apă, astfel, mai mult curent va trece prim el. Pe de altă parte, atunci când umiditatea solului este scăzută modulul senzorului scoate un nivel ridicat de rezistentă. Acest senzor are atât ieșiri digitale cât și analogice. Ieșire digitală este simplu de utilizat, dar nu este la fel de precisă ca ieșirea analogică.

Figura 2.9

2.2.2 Specificații senzor de umiditate YL-69 :

Tabel 2.3

Senzorul are în componență un PCB mic echipat cu LM393 și un cip comparator și un potențiometru digital.

Figura 2.10 YL-69 PCB

2.2.3 Potențiometru digital

Un potențiometru este de fapt un rezistor variabil. Ca și potențiometrele analogice, potențiometre digitale sunt folosite la scară sau pentru a ajusta rezistența unui circuit, potențiometre digitale sunt, de asemenea, cunoscute sub numele de digipot. Digipot-urile sunt folosite mai ales în scalarea semnalelor analogice pentru a fi utilizate într-un microcontroler.

Figura 2.11 Digipot schematic

Rezistență de ieșire a Digipot-ului este variabilă în funcție de intrări digitale și, prin urmare, știm că convertoare digital-analog rezistive (RDACs) vin cu memorie nevolatilă astfel oferă retențe la setarea de ștergere după o putere de la ON la ciclul OFF. Digipot-urile sunt disponibile ca circuite integrate (ICS).

Figura 2.12 P3362 Potențiometru electronic

2.2.4 LM393 comparator

Un compactor este un dispozitiv electronic care compară două tensiuni sau curenți și dă un semnal digital la ieșire. Indică care din cele două cantități comparate este mai mare. Un comparator are cel puțin doi pini de intrare și un pin de ieșire. Amplificator operațional funcționează în configurație buclă deschisă și fără reacție negativă poate fi folosit ca un comparator simplu.

Figura 2.13 Amplificator operațional

Unul dintre cele mai frecvent utilizate comparatoare este LM393. Acesta este disponibil ca un IC.

Figura 2.14 LM 393 Comparator

Este de preferat datorită următoarelor caracteristici:

Tabel 2.4

2.2.5 Configurația pinilor

Figura 2.15 Configurația pinilor

LM393 își găsește aplicarea în comparatoare limită, simple ADC-uri, generatoare de întârziere, generatoare de semnal dreptunghiular și altele.

2.2.6 Criterii de selecție

Atunci când trebuie să ne decidem pe care senzor îl utilizăm următorii factori ar trebui să fie luați în considerare:

Pret: Acesta este cel mai important parametru în selectarea oricărei componente. Prețul senzorului va afecta în cele din urmă prețul întregului sistem că acesta este unul dintre modulele majore ale sistemului. Trebuie ales senzor cu prețul cel mai competitiv.

Putere: În orice sistem electric eficiența energetică este critică. Senzorul de umiditate va trebuie selectat cu un consum redus de energie. Senzori care pot fi alimentați de la baterie poat fi utilizați în zone fără legătură cu electricitate.

Tehnologie: Tehnologia folosită pentru a proiecta senzorul dictează sensibilitatea, costul și durabilitatea senzorilor. Cei mai mulți senzori low cost au o sensibilitate slabă, ruginesc si corodează în timp Senzorii rezistivi sau senzorii conductori care sunt afectați de salinitate solului au o viață scurtă.

Forma: Senzorii lungi și subțiri pot fi utilizați în mai multe aplicații decât cei voluminoși.

Durabilitate: Senzorii de umiditate a solului, care nu sunt afectați de salinitatea solului, corozie sau ruginire trebuie să fie selectați, sondele pentru senzorul de umiditate care măsoară conductivitatea sau rezistență ar trebui să fie evitate, deoarece acestea vor uza în timp senzorul.

Precizie și Liniaritatea: Calitatea senzorului de umiditate trebuie să ofere un semnal la ieșire proporțional cu conținutul de apă din sol, el trebuie să aiba o gamă largă la ieșire pentru a reduce sensibilitatea la zgomot.

Gama de tensiune: Alegem un senzor care are o gamă mare de tensiune de alimentare, alimentarea unui senzor cu tensiune greșită va deteriora senzorul sau va da rezultate inexacte.

Capitolul 3

Descriere sistem

3.1 Schema bloc

3.2 Descriere blocuri

3.2.1 Placuța de dezvoltare ARDUINO MEGA 2560

Figura 3.1 Arduino MEGA 2560

Prezentare generală

Arduino Mega 2560 este o placuță cu microcontroler bazat pe ATmega2560. Ea are 54 de pini digitali de intrare / ieșire (dintre care 15 pot fi utilizați ca ieșiri PWM), 16 intrări analogice, 4 UART (porturi seriale hardware), un oscilator cu cristal de 16 MHz, o conexiune USB, un cablu jack de putere, și un buton de resetare. Acesta conține tot ce este necesar pentru a sprijini microcontroleru; pur și simplu conectați-l la un computer cu un cablu USB sau de alimentare cu un adaptor sau baterie AC-DC pentru a începe. Mega este compatibil cu cele mai multe scuturi destinate Arduino Duemilanove sau Diecimila

Caracteristici

Alimentarea

Arduino Mega poate fi alimentat prin intermediul conexiunii USB sau cu o sursă de alimentare externă. Sursa de alimentare este selectat automat. (Non-USB) de alimentare externă poate veni fie de la un adaptor AC-DC (wall-wart) sau baterie. Adaptorul poate fi conectat prin conectarea unui dop 2.1mm centru-pozitiv în jack puterea consiliului. Placa poate opera și cu o sursă externă de 6 până la 20 de volți. Dacă sunt furnizate cu mai puțin de 7V, cu toate acestea, pinul de 5V poate furniza mai puțin de cinci volți și placa poate fi instabilă. Dacă utilizați mai mult decât 12V, regulatorul de tensiune se poate supraîncălzi și poate deteriora placa. Intervalul recomandat este de 7-12 volți.

Pinii alimentarii sunt după cum urmează:

– VIN. Tensiunea de intrare la placa Arduino, atunci când se folosește o sursă de alimentare externă (spre deosebire de 5 volți de la conexiunea USB sau altă sursă de energie reglementată).

-5V. Acest pin emite o tensiune 5V reglementată de autoritatea de reglementare de pe placa.

-3V3. O aprovizionare 3.3 volți generată de reglementarea de la placă. Remiză Curentul maxim este de 50 mA.

-GND. Acces sol.

-IOREF. Acest pin de pe placa Arduino oferă tensiune de referință cu care operează microcontrolerul. Un scut configurat corect poate citi de tensiunea PIN IOREF și selecta sursa de alimentare corespunzătoare sau permite traductoare de tensiune pe rezultatele de lucru cu 5V sau 3.3V.

Memoria

ATmega2560 are 256 KB de memorie flash pentru stocarea cod (din care 8 KB este utilizat pentru bootloader), 8 KB de SRAM și 4 KB de EEPROM (care poate fi citit și scris cu biblioteca EEPROM)

Pinii in/out

Fiecare dintre cei 54 de pinii digitali de pe Mega poate fi utilizat ca intrare sau ieșire, folosind pinMode (), digitalWrite (), și digitalRead () funcții. Ele funcționează la 5 volți. Fiecare pin poate oferi sau primi un maxim de 40 mA și are o rezistență pull-up internă (deconectată implicit) de 20-50 kohmi. În plus, unii pini au functii specializate:

Serial: 0 (RX) și 1 (TX); Serial 1: 19 (RX) și 18 (TX); Serial 2: 17 (RX) și 16 (TX); Serial 3: 15 (RX) și 14 (TX). Folosit pentru a primi (RX) și transmite date seriale (TX) TTL. Pinii 0 și 1 sunt de asemenea conectați la pinii corespunzători ale ATmega16U2 USB-to-TTL cip Serial.

Întreruperile externe: 2 (0 întrerupe), 3 (întrerupe 1), 18 (întrerupe 5), 19 (întrerup 4), 20 (întrerup 3), și 21 (2 întrerupe). Acești pini pot fi configurați pentru a declanșa o întrerupere de o valoare scăzută, o margine în creștere sau în scădere, sau o modificare a valorii. Vezi funcția attachInterrupt () pentru detalii.

PWM: 2-13 și 44 l- 46. Furnizarea de 8 biți PWM de ieșire cu funcția analogWrite ().

SPI: 50 (MISO), 51 (Mosi), 52 (SCK), 53 (SS). Acești pini sprijină comunicare SPI folosind biblioteca SPI. SPI pinii sunt, de asemenea, defalcate pe antetul ICSP, care este compatibil fizic cu Uno, Duemilanove și Diecimila.

LED: 13. Există un built-in LED conectat la pin digitală 13. Atunci când PIN-ul este valoarea HIGH, LED-ul este aprins, atunci când pinul este LOW, e oprit.

TWI: 20 (SDA) și 21 (SCL). Suport de comunicare TWI folosind biblioteca Wire.

Mega2560 are 16 intrari analogice, fiecare dintre dintre ele oferă 10 de biți de rezoluție (de exemplu, 1024 valori diferite). În mod implicit se măsoară de la masă la 5 volți, deși este posibil să se schimbe capătul de sus a gamei lor, folosind PIN-ul AREF si funcția analogReference ().

Există o serie de alți pini pe placă:

AREF. Tensiune de referință pentru intrări analogice. Folosit cu analogReference ().

Reset. pentru a reseta microcontrolerul. De obicei este folosit pentru a adăuga un buton de resetare care il blochează pe cel de pe placă.

Comunicarea

Arduino Mega2560 are o serie de facilități pentru comunicarea cu un calculator, cu alte Arduino, sau alte microcontrolere. ATmega2560 oferă patru UART hardware pentru TTL (5V) de comunicare serial. Software-ul Arduino include un monitor serial care permite datelor textuale simple pentru a fi trimise la și de la bord. RX și TX LED-urile de pe bord vor clipi atunci când datele sunt transmise prin intermediul ATmega8U2 / ATmega16U2 cip și conexiune USB la computer (dar nu pentru comunicare serial pe pinii 0 și 1).

O bibliotecă SoftwareSerial permite comunicarea în serie pe oricare dintre pini digitale Mega2560 .

Programarea

Aduino Mega poate fi programat cu software-ul Arduino (download).

De la ATmega2560 pe Mega Arduino vine preburned cu un bootloader care ne permite să încărcam un cod nou fără să folosim un programator hardware-ul extern. Acesta comunică folosind protocolul inițial STK500 (referință fișiere antet C).

Automatic (Software) Reset

Plăcuța necesită de fiecare dată o apasare a butonului de reset la fiecare încarcare a programului, Arduino Mega2560 este conceput într-un mod care îi permite să fie resetat prin software-ul care rulează pe un calculator conectat. Una dintre liniile de control al debitului de hardware (DTR) ale ATmega8U2 este conectat la linia de resetare a ATmega2560 printr-un condensator 100 nF. Când această linie este citittă (ia valoarea de LOW), linia de resetare scade suficient de mult pentru a reseta cipul. Software-ul Arduino utilizează această capacitate pentru a ne permite să încărcăm codul prin simpla apăsare a butonului de încărcare în mediul Arduino. Acest lucru înseamnă că aplicația bootloader pote avea un timeout mai scurt, deoarece scăderea DTR poate fi bine coordonată cu începerea încărcării.

Această configurare are alte implicații. Atunci când Mega2560 este conectat fie la un calculator care rulează Mac OS X sau Linux, se resetează de fiecare dată când o conexiune este făcută de la software-ul (prin USB).

Protecția USB-ului la supracurent

Arduino Mega2560 are un ,,polyfuse” resetabil care protejează porturile USB ale computerului de la scurtcircuit și supracurent. Deși cele mai multe calculatoare asigura propria lor protecție internă, siguranța oferă un strat suplimentar de protecție. Dacă mai mult de 500 mA este aplicat portul USB, siguranța va rupe automat conexiunea până scurtcircuitul sau suprasarcina este eliminată.

3.2.2 LCD Display

Un ecran cu cristale lichide (LCD) este un ecran plat panou, afișaj vizual electronic, sau afișare video care utilizează lumina modulare, proprietăți de cristale lichide. Cristale lichide nu emit lumină direct. LCD-urile sunt utilizate într-o gamă largă de aplicații, inclusiv monitoare de calculator, televizoare, tablouri de bord, display-uri avioane cockpit, și semnalizare. Acestea sunt comune în dispozitive de consum, cum ar fi DVD playere, dispozitive de jocuri, ceasuri, calculatoare, și telefoane, și au înlocuit catodice tub (CRT) afișează în majoritatea aplicațiilor.

Figura 3.2 LCD Display

Schema Bloc

Figura 3.3

Descriere funcționalitate

Modulul de afișare LCD este construit într-un controler LSI, controlerul are două registre de 8 biți, un registru de instrucțiuni (IR) și un registru de date (DR).

Codurile instrucțiunilor sunt depozitate, cum ar fi ștergere display și deplasarea cursorului, precum și informații despre adresa pentru memoria RAM de date/de afișare (DDRAM) și generatorul de caractere (CGRAM). IR poate fi scris numai de la MPU. DR stochează temporar date care urmează să fie scrise sau citite din DDRAM sau CGRAM. Când informația adresă este scris în IR, atunci datele sunt stocate în DR din DDRAM sau CGRAM.

Prin semnalul selector înregistrare (RS), aceste două registre pot fi selectate.

Busy Flag (BF)

Când busy flagt este 1, controlorul LSI este în modul de funcționare internă și instrucțiunile următoare nu vor fi acceptate. Când RS = 0 și R / W = 1, busy flag este ieșire la DB7. Instrucțiunea următoare trebuie să fie scrisă după ce busy flag este 0.

Address Counter (AC)

Adresa counter (AC) este atrinbuita adrsării DDRAM cât și CGRAM

Display Data RAM (DDRAM)

Acest DDRAM este utilizat pentru a stoca datele de afișare reprezentate în coduri de caractere de 8 biți. Capacitatea este de 80 × 8 biți sau 80 de caractere. Figura de mai jos arată relațiile dintre adresele DDRAM și poziții pe ecranul cu cristale lichide.

Figura 3.4

Character Generator ROM (CGROM)

CGROM generează 5 × 8 puncte sau 5 x 10 dot modele de caractere de la coduri de caractere de 8 biți.

Character Generator RAM (CGRAM)

În CGRAM, utilizatorul poate rescrie caracterul prin program. Pentru 5 × 8 puncte, opt modele de caractere pot fi scrise, și pentru 5 x 10 puncte, patru modele de caractere poate fi scrise

Electrical Characteristics

Tabel 3.1

3.2.3 Interfata seriala LCD 1602

Interfața serială ce permite conectarea unui display cu 16×2 caractere prin două fire de date. Perfect pentru proiectele în care numarul pinilor de date este limitat. Iluminarea display-ului poate fi activată sau dezactivată prin intermediul unui jumper montat pe interfața serială. Contrastul display-ului poate fi modificat prin intermediul rezistorului variabil montat pe interfata serială. Perfect pentru proiectele Arduino.

Caracteristici tehnice:
Tensiune alimentare: 5V
Dimensiuni:54*19 mm(max)
Greutate neta:6 g

Figura 3.5 Interfata serială LCD

Componente:

-circuit integrat TL PCF8574T

-jumper

-potențiometru

Circuitul Integrat PCF8574T

A) CARACTERISTICI

• tensiune de alimentare de operare 2.5-6 V

• Low consum standby de curent de maxim 10 mA

• I2C-bus pentru expandarea portul paralel

•-drain deschis ieșire întrerupere

• Compatibil cu cele mai multe microcontrolere

• ieșiri memorare cu capacitate mare de acționare de curent pentru

LED-uri de conducere direct

B) DESCRIERE GENERALĂ

Această intrări/ieșiri de 8 biți (I/ O) expandabile pentru două-linii busuri bidirecționale (I2C), este proiectat pentru gama 2,5 – 6 V VCC. Dispozitivul PCF8574 oferă în general comunicarea de la distantă I/O de expansiune pentru majoritatea familiilor de microcontrolere cu titlu de interfața I2C [ceas serial (SCL), date seriale (SDA)].

Dispozitivul dispune de un port I/O 8 biți cvasi-bidirecțională (P0-P7), inclusiv ieșiri latched-uri cu capacitate mare de curent, unitate pentru LED-uri de conducere direct. Fiecare cvasi bidirecțional I/O poate fi utilizat ca o intrare sau ieșire fără utilizarea unui semnal de control a datelor de direcție.

Modul de interconectare

Figura 3.6

3.2.4 .Ventilatorul BRUSHLESS 12V

Figura 3.7

Producătorii de ventilatoare specifică tipic viteza nominală a ventilatorului, precum și o funcționare în gama de tensiune. În fișa de date se arată tensiunea nominală la 12 Vdc și funcționare în gama de tensiune de 6 -18 Vdc. Ceea ce nu poate fi clar este că toate performanțele caracteristicile ventilatorului, în special viteza fluxului de aer și, corespund tensiunea nominală de 12 Vdc. Dacă tensiunea la ventilatorul este scăzută de la această valoare, va deccelera și a fluxului de aer.

Specificații tehnice

Tabel 3.2

3.2.5 Motorul DC EG-530 AD-6B

Figura 3.8

Motorul de curent continu a fost inventat în 1873 de Zénobe Gramme prin conectarea unui generator de curent continuu la un generator asemănător. Astfel, a putut observa că mașina se rotește, realizând conversia energiei electrice absorbite de la generator. Astfel el a constatat, că generatorul "inițial" era de fapt o mașină electrică reversibilă, care putea lucra ca un convertizor de energie bidirecțional.

Motorul de curent continuu are pe stator polii magnetici și bobinele polare concentrate care creează câmpul magnetic de excitație. Pe axul motorului este situat un colector ce schimbă sensul curentului prin înfășurarea rotorică astfel încât câmpul magnetic de excitație să exercite în permanență o forță față de rotor.

În funcție de modul de conectare a înfășurării de excitație motoarele de curent continuu pot fi clasificate în:

motor cu excitație independentă – unde înfășurarea statorică și înfășurarea rotorică sunt conectate la două surse separate de tensiune;

motor cu excitație paralelă – unde înfășurarea statorică și înfășurarea rotorică sunt legate în paralel la aceași sursă de tensiune;

motor cu excitație serie – unde înfășurarea statorică și înfășurarea rotorică sunt legate în serie;

motor cu excitație mixtă – unde înfășurarea statorică este divizată în două înfășurări, una conectată în paralel și una conectată în serie.

Înfășurarea rotorică parcursă de curent va avea una sau mai multe perechi de poli magnetici echivalenți. Rotorul se deplasează în câmpul magnetic de excitație până când polii rotorici se aliniază în dreptul polilor statorici opuși. În același moment, colectorul schimbă sensul curenților rotorici astfel încât polaritatea rotorului se inversează și rotorul va continua deplasarea până la următoarea aliniere a polilor magnetici.

Pentru acționări electrice de puteri mici și medii, sau pentru acționări ce nu necesită câmp magnetic de excitație variabil, în locul înfășurărilor statorice se folosesc magneți permanenți.

Figura 3.9 Construcția unui motor DC

Turația motorului este proporțională cu tensiunea aplicată înfășurării rotorice și invers proporțională cu câmpul magnetic de excitație. Turația se reglează prin variația tensiunii aplicată motorului până la valoarea nominală a tensiunii, iar turații mai mari se obțin prin slăbirea câmpului de excitație. Ambele metode vizează o tensiune variabilă ce poate fi obținută folosind un generator de curent continuu, prin înserierea unor rezistoare în circuit sau cu ajutorul electronicii de putere (redresoare comandate).

Cuplul dezvoltat de motor este direct proporțional cu curentul electric prin rotor și cu câmpul magnetic de excitație. Reglarea turației prin slăbire de câmp se face, așadar, cu diminuare a cuplului dezvoltat de motor. La motoarele serie același curent străbate înfășurarea de excitație și înfășurarea rotorică. Din această considerație se pot deduce două caracteristici ale motoarelor serie: pentru încărcări reduse ale motorului, cuplul acestuia depinde de pătratul curentului electric absorbit; motorul nu trebuie lăsat să funcționeze în gol pentru că în acest caz valoarea intensității curentului electric absorbit este foarte redusă și implicit câmpul de excitație este redus, ceea ce duce la ambalarea mașinii până la autodistrugere. Motoarele de curent continuu cu excitație serie se folosesc în tracțiunea electrică urbană și feroviară (tramvaie, locomotive).

Schimbarea sensului de rotație se face fie prin schimbarea polarității tensiunii de alimentare, fie prin schimbarea sensului câmpului magnetic de excitație. La motorul serie, prin schimbarea polarității tensiunii de alimentare se realizează schimbarea sensului ambelor mărimi și sensul de rotație rămâne neschimbat. Așadar, motorul serie poate fi folosit și la tensiune alternativă, unde polaritatea tensiunii se inversează o dată în decursul unei perioade. Un astfel de motor se numește motor universal și se folosește în aplicații casnice de puteri mici și viteze mari de rotație (aspirator, mixer).

3.2.6 Fotorezistența

Câmpul electromagnetic al undelor luminoase interacționează cu substanțele asupra cărora se proiectează. Interacțiunea constă din transferul energiei asupra particulelor subatomice, în special asupra electronilor. Electronii pot primi suficientă energie si care depășește forțele de atracție atomice, iar electronul părăsește substanța. Acest electron poartă numele de fotoelectron  iar emisia este denumită emisie fotoelectronică sau efect fotoelectric extern.
S-a constatat experimental că numarul electronilor emiși în unitatea de timp sub acțiunea luminii este proporțional cu fluxul de energie luminoasă. Energia totală pe care o primește un electron de la lumină este proportională cu frecventa radiației, și nu cu intensitatea fluxului, ceea ce a făcut necesară întroducerea conceptului de cuante de energie și de foton, de catre Plack si Einstein.

Dacă un semiconductor este supus câmpului eletromagnetic al undelor luminoase, energia transportată de fotoni dislocă electroni de la nivelul atomilor, rezultînd electroni, care se miscă liber ca sarcini negative, și ioni, ca sarcini pozitive. Apar astfel purtători de sarcină, care produc scăderea rezistenței electrice a semiconductorului, eveniment numit efect fotoelectric. Creșterea conductibilitații este proporțională cu fluxul luminos încasat, dar nu

este nelimitată, deoarece, o dată cu generarea de purtatori de sarcină apare si fenomenul invers, de cuplare a electronilor liberi cu ionii.

Figura 3.10 Circuit simplu cu fotorezistență

Efectul fotoelectric în semiconductori este intern, adică electronii nu părăsesc semiconductorul. Energia necesară apariției electronilor liberi este mai mică decât în cazul metalelor sau al efectului fotoelectric extern, așa încat apare și la energii (frecvente) mai mici, inclusive sub efectul radiației infrarosii. Efectul fotoelectric în semiconductori stă la baza construirii fotorezistențelor: un strat de semiconductor este cuplat într-un circuit cu o sursă de alimentare și un microampermetru. La intuneric, curentul ce trece prin circuit este foarte mic. Pe măsură ce fluxul luminos incident crește, apar purtatori de sarcină care duc la scăderea rezistenței și deci la creșterea curentului în circuit de sute sau chiar mii de ori. 

Fotorezistențele sunt utilizate în subansamblele de măsură ale fluxului luminos (expunere) a aparatelor fotografice sau ca unitați independente (exponometre).

Într-o jonctiune p-n există un câmp electric la nivelul stratului de baraj, determinat de trecerea electronilor din partea n în partea p și a golurilor în sens invers.

Figura 3.11 Circuit simplu cu fototelement.

Fotorezistența – este un dispozitiv electronic, a cărui rezistență electrică se modifică sub acțiunea unui flux luminos care cade pe suprafața sensibilă a acesteia.

Fotorezistența este formată dintr-o peliculă din material semiconductor, depusă prin evaporare în vid pe un grătar metalic care este fixat pe o placă izolatoare. Pelicula este prevăzută la capete cu contacte ohmetrice care reprezintă terminalele și este protejată prin acoperire cu lac sau prin încapsulare în material plastic.

Conducția are loc datorită mișcării purtătorilor de sarcina (electroni si goluri). Prin fenomenul de fotoconducție se înțelege creșterea conducției unui material (metal, semiconductor) datorita generării de purtători de sarcină suplimentari sub influența radiației luminoase. Printr-un semiconductor supus unei diferențe de potențial U va trece un curent electric slab (de întuneric), care crește, atunci când semiconductorul este iluminat, datorită fotoconducției. Intensitatea fotocurentului, diferită de cea a curentului de întuneric, depinde de temperatură, tensiunea electrică aplicată și de durata iluminării.

Figura 3.12

Conectat într-un circuit electric, fotorezistorul modifică intensitatea curentului din circuit. Intensitatea curentului crește proporțional cu scăderea rezistenței electrice a fotorezistorului, deci proporțional cu creșterea intensității fluxului luminos. În circuitele electronice, în funcție de modul de conectare, fotorezistorul poate fi activat de lumină sau poate fi activat de întuneric.

Funcționarea fotorezitorilor este determinată de trei parametri:

Eficiența cuantică sau de amplificare;

Timpul de fotorăspuns;

Fotosensibilitatea sau detectivitatea;

3.2.7 Senzorul de Ultrasunet HC-SR04

Descrierea Generală

Senzorul de ultrasunete HC-SR04 funcționează pe principiul sonarului pentru a aprecia distanța până la un obiect, oferind o mare precizie a distanței măsurate: de la 2 cm până la 400 cm, cu precizie de până la 3 mm. Modulul include atât Transmițătorul (T) care trimite semnalul cât și Receptorul (R) care îl recepționează.

Ultrasunetele au o frecvență ridicată (în principiu 40kHz). La început este trimis un semnal de 10μs, apoi o serie de 8 impulsuri de 40 kHz. Receptorul așteaptă ecoul: dacă răspunsul este între 150μs-25ms se detectează un obstacol; dacă timpul este peste 38ms nu se detectează nimic).

Distanța este calculată folosind formula L= C * T/2, unde L este lungimea, C este viteza sunetului în aer (344 m/s la temperatura ambiantă de 20 grade C), iar T este diferența de timp de la trasmitere până la recepționare; timpul este înjumătățit deoarece distanța este parcursă în ambele sensuri. Trebuie ținut cont că viteza sunetului este afectată de densitatea aerului (iar densitatea este afectată în principal de temperatură și altitudine).

Figura 3.13

Parametrii tehnici:

– tensiune alimentare: 5V

– primire curent: <2mA

– unghi sensibilitate : 15°

– distanta percepere: 2cm-450cm

– precizie: 0,3cm

– semnal intrare trigger : 10 usec TTL 

– semnal iesire: TTL PWL (5V->0V)

Figura 3.14

Figura 3.15

Un impuls ultrasonic scurt este transmis la momentul 0, reflectat de un obiect.Senzorul primește acest semnal și îl convertește într-un semnal electric. Următorul impuls poate fi transmis când ecoul este stins. Această perioadă de timp se numeste perioadă de ciclu. Perioada ciclului recomandată nu trebuie să fie mai mică de 50ms.

Capitolul 4

Implementarea proiectului

4.1 Introducere

În proiectul dat, intenția a fost de a crea un sistem de automatizare penru o seră. Ca să pară lucrurile cât mai reale am considerat că este bine să construiesc o sera doar in dimensiuni mai mici fața de ceea ce vedem noi in realitate. Pentru aceasta am folosit o placă solidă ( o bucată de parchet) pentru partea de jos a construcției, și pentru ca tot să pară cât mai real am considerat ca pentru părțile laterale și acoperiș să folosesc bucăți de polystyrol care sa le unesc intre ele cu ajutorul pistolului de lipit cu silicon. Astfel am obtinut 2 parti componente, și anume acoperișul și construcția în sine. Majoritatea componentelor electronice folosite se vor afla în interiorul construcției si pentru a avea acces la ele am considerat ca e mai bine sa nu unesc cele 2 elemente constructive.

Pentru crearea unui design am folosit o placă din plastic pe care am prins platforma de dezvoltare Arduino MEGA2560 Și alaturi breadboard-ul cu banda dublu adeziva. Am făcut acest lucru pentru a facilita ulterior efectuarea conexiunilor fie cu ajutorul firelor fie direct a componentelor electronice.

Majoritatea componenteleor sunt cumparate dar unele sunt extrase din aparte uzate cum ar fi unul dintre ventilatoare , motorul DC.

4.2 Componenete folosite :

-plăcuța de dezvoltare ARDUINO MEGA 2560 1 buc

– breadboard 1 buc

-senzor temperatură și umiditate a aerului DHT11 1 buc

-senzor umiditate sol YL-69 1 buc

-motor DC EG-530 AD-6B 1 buc

-fotorezistență 1 buc

-leduri 6 buc

-tranzistor NPN 1 buc

-ventilatoare 2 buc

-senzor ultrasune 2 buc

-cabluri

-cablu conexiune USB placuta Arduino 1 buc

-baterii 9V 2 buc

Materiale utilizate pentru construcție:

-o placă polystyren dimensiuni 50×100 cm

-o bucată parchet dimensiuni 20×30 cm

-silicon

4.3 Realizarea conexiunilor

4.3.1 Conectarea senzorului de temperatură și umiditate a aerului DHT11

Conectarea senzorului de temparatură DHT11 se face după cum urmează:

Figura 4.1 Schemă realizată pentru simulare

Conectarea modulului DHT11 se realizează după cum urmează:

– pinul VCC se conectează la pinul 5V de la platforma arduino;

– pinul GND se conectează la pinul GND de la platforma arduino;

– pinul de DATE se conectează la pinul 50 de pe platforma arduino, pin ales în mod aleator;

Conectarea LCD-ului se realizează după cum urmează:

– pinul VCC se conectează la pinul 5V de la platforma arduino;

– pinul GND se conectează la pinul GND de la platforma arduino;

– pinul SCL se conectează la pinul SCL de pe platforma arduino;

– pinul SDA se conectează la pinul SDA de pe platforma arduino;

Conectarea ventilatoarelor o realizeazăm prin intermediul unui tranzistor NPN pentru amplificare, tensiunea de alimentare o utilizăm de la o baterie de tipul 6F22 de 9V pentru a nu suprasolicita plăcuța arduino, conectarea pinilor o realizăm după cum urmează:

– baza tranzistorului se conectează la pinul 5 de la platforma arduino, pin ales aleator;

– emitorul tranzistorului se conectează la masă;

– colectorul tranzistorului se conectează la pinul ,,minus,, al ventilatoarelor;

– ,,plusul,, ventiloatoarelor se conectează la ,, plusul,, bateriei de 9V;

– ,,minusul,, bateriei se conectează la masă;

Funcționarea

Cu ajutorul modului DHT11 care are integrat cei doi senzori de temperatură și umiditate a aerului, monitorizăm temperatura și umiditatea pe LCD. Vizualizarea temperaturii și umiditații ne permite un control mai bun, pentru a menține tempeatura/umiditatea la un anumit nivel dorit și pentru dezvoltarea în bune condiții a culturilor cultivate din interiorul serei folosim ventilatoarele alimentate de la baterie prin intermediul tranzistorului NPN, ventilatoarele se activează conform unei comenzi automate prin program dacă temperatura depașește un anumit prag impus de programator (în cazul simularii mele pragul este de 27 °C dar poate fi modificat în funcție de temperatura dorită și în fucție de ce temperatură au nevoie plantele ce sunt cultivate in interiorul serei), activarea circulație aerului realizată cu ajutorul ventilatoarelor se realizează cu exteriorul serei pentru o racire mai repidă .

În cazul proiectului meu am folosit doar un senzor de tip DHT11, însă pentru un proiect de proporții mai mari avem nevoie de mai mulți senzori plasați în diferite locuri ale serei în special spații mai indepartate de zonele care au contact cu exteriorul cum ar fi uși, geamuri care se deschid pentru a exclude culegerea de date eronate.

În figura 4.2 este prezentată o imagine reală a conexiunilor senzorului DHT11 împreună cu afișarea pe LCD și ventilatoare.

Figura 4.2

4.3.2 Conectarea senzorului de umiditate sol YL – 69

Conectarea senzorului de umiditate sol YL-69 se face după cum urmează:

Figura 4.3

Conectarea senzorului YL-69 se realizează după cum urmează:

pinul VCC se conectează la pinul VCC platforma arduino;

pinul GND se conectează la pinul GND platforma arduino;

pinul A0 se conectează la pinul A0 platforma arduino;

pinul D0 ramâne necomectat

Conectarea ledurilor informative se realizeaza după cum urmează:

catozii led_verde, led_albastru, led_roțu conectați la GND;

anozii led_verde, led_albastru, led_roșu conectați prin Rezistențe de valoare 330 Ω la pinii 11, 10, și respectiv 9 ai platformei arduino;

Funcționarea

Modului senzorului YL-69 împreună cu PCB-ul, permit preluare datelor despre umiditatea solului, semnalul furnizat în urma prelucrari de PCB (care îl compară cu un prag și il amplifică), ne furnizează informații despre rezistența dintre cele două armaturi ale senzorului, din datele experimentale rezulta ca avem o rezistența maximă atunci când solul este foarte uscat exprimată prin valoare 1023, și o valoare minimă atunci când solul este foarte ud caractezizat de valoare aproximativă de 217. Aceste valori le-am transformat prim formula de calcul ( prezentă în codul programului din anexă), și astfel valoarea afișată pe LCD va exprima gradul de umiditate a solului în procente.

În aplicația mea modul de informare a gradului de umiditate il voi afișa prim trei metode: prima metodă, informația va fi afișată pe interfața serial a calculatorului, metoda a doua afișarea pe ecranul LCD, și metoda a treia: informația va fi grupata pe trei intervale din program și în fucție de gradul de umiditate din sol se vor aprinde ledurile montate pe breadboard după cum urmează:

aprindere led_rosu rezultă umiditate scazută >30 % ;

aprindere led_albastru rezultă umiditate normală cuprinsă între 30 % < umiditate > 70%

aprindere led _verde rezultă umiditate mai mare de 70 % ;

Referitot la rezolvarea problemei privind irigarea serei, m-am gândit la un sistem de irigare prin picătura (neimplementat în proiectul meu), deoarece principiul este asemănator ca și la comanda ventilatoarelor din cadrul proiectului meu. Sistemul va funcționala la fel, scriindu-se în programa momentul pornirii mototrului cu pompă la un anumit prag de umiditate , tot după preluarea datelor primite de la senzor.

Ca și în cazul senzorului de temperatură în cazul implementării unui proiect de ansamblu vor fi necesari mai mulți senzori amplasați în diferite zone ale serei pentru a avea o informare de ansamblu referitor la umiditatea solui din diferite zone ale serei. Dacă vorbim de o seră cu o arie foarte mare s-ar putea sa avem nevoie de impărțirea serei pe mai multe zone cu culture diferite, cu pompe de irigare separate din motiv că unele culture necesită o umiditate mai mare sau mai mică de apă pentru dezvoltarea în bune condiții. Și astfel să avem un contro mai bun și o recoltă mai bogată și o economie mai mare la resursele energetic.

După cum se va vedea în Figura 4.4 în momentul testului de funcționalitate a senzorului se vede atât pe LCD valoare umidității de 26,76 % cât și ledul_roșu aprins indică că valoare umidității solului este sub 30 %.

În figura 4.4 este prezentată o imagine reală a conexiunilor senzorului YL-69 împreună cu afișarea pe LCD și ledurile informative.

Figura 4.4

4.3.3 Conectarea sistemului iluminare nocturnă

Ca îmbunatățire ale sistemului proiectat, am adăugat la proiectul meu un sitem de iluminare nocturnă automat care va fi amplasat în fața serei, sistem realizat cu leduri a căror comndă este realizată de o fototrezistență, care în cazul scaderii intensitații luminoase ce cade pe suprafața fotorezistenței, acesta comandă aprinderea ledurilor, și comanda stingeri ledurilor este realizată îin cazul cresterii intensitații luminoase.

Conectarea fotorezistenței și a ledurilor se face după cum urmează:

Figura 4.5

Conexiuni:

pin1 fotorezistență se conectează la VCC platforma arduino;

pin 2 fotorezistență se conectează printr-o rezistența de 1KΩ la GND ;

pin 2 fotorezistență se conectează a doua conexiune la pinul A0 de pe platforma arduino;

catozii led 1, led 2 se conectează la masă, iar anozii prin intermediul unor rezistențe de 330Ω se conectează la pinii 8 respectiv 9 de pe platforma arduino;

În figura 4.6 este prezentată o imagine reală a conexiunilor sistemului de iluminare în faza de realizare si testare a funcționalitații sistemului.

Figura 4.6

Observație:

În imagine se vede că în momentul acoperirii foterezistenței cu o riglă ledurile sunt aprinse.

4.3.4 Conectarea sistemului de deschidere automată a ușei

A doua îmbunătațire a sistemului proiectat, am adăugat proiectului meu un sistem automat de deschidere a ușei principale de la intrare bazat pe senzorii de ultasunet și comanda unui motor.

Conectarea senzorilor de ultrasunet și a motorului DC se face după cum urmează:

Conexiuni:

pin1 motor se conectează la pin 3 platforma arduino;

pin2 motor se conectează la pin 4 platforma arduino;

catot led se conectează la GND;

anod led se conectează prin intermediul unui rezistor de 330Ω la pinul 12 platforma arduino;

pin triger senzor ultrasunet 1 se conectează la pinul 40 de pe platforma arduino;

pin echo senzor ultrasunet 1 se conectează la pinul 41 de pe platforma arduino;

pin triger senzor ultrasunet 2 se conectează la pinul 50 de pe platforma arduino;

pin echo senzor ultrasunet 2 se conectează la pinul 51 de pe platforma arduino;

pinii GND de la senzorii ultrasunete se conecteză la pinii GND de pe platforma arduino;

pinii VCC de la senzorii ultrasunete se conecteză la pinii VCC de pe platforma arduino;

Funcționarea

Sistemului de deschidere automată a ușei principale funcționează după cum urmează: senzorii de ultrasunet amplasați deasupra ușii (unul în exteriorul serei și unul în interiorul serei) măsoară distanța (pe principiul explicat în capitolul anterior) pâna la un anumit obstacol care în cazul nostru ar fi persoana care dorește să intre sau să iasă din seră, preluarea acestor date este făcută de plăcuța arduino, prin program în urma preluarii datelor de la ambii senzori , comandăm un motor DC care este prezent în circuit pentru a deschide/închide ușa, axul motorul se învârte un timp necesar deschiderii și închiderii ușii prezent în proictul meu doar ca principiu de proiectare și funcționare făra prezența fizică a construcție ușii, putem observa funcționarea prin exemplul proiectat de mine în program, dacă cel puțin unul din senzori sesizează un obstacol (caz de studiu 15 cm, din cauza dimensiunilor mici a interiorului serei), se i-a decizia să se deschidă ușa prin rotirea axului mototrului și se menține ușa deschisa atata timp cat senzorii sesizeză un obstacol la o distanța dată ( 15 cm în cazul simularii mele), dacă ambii senzori nu sesizează obstacole nici în interior nici în exteriorul serei, atunci se i-a decizia închiderii ușii ceea ce se vede prin rotirea axului mototrului în sens invers, pentru protecție în cazul dacă o persoana se află intre ușa si senzorii sunt incapabili de a detecta obstacolul de la începutul închiderii ușii pană la sfârsitul inchiderii se aprinde un led de culoare roție care este aprins pe tot timpul procesului de închidere a ușii.

Senzorii de ultrasunet în special trebuie instalați foarte atent ca să fie exact amplasați pe

mijlocul drumului central al interiorului serei pentru a nu vedea mereu obstacolo.

Afișarea pe LCD a celor două distanțe am făcut-o prin apăsarea unui buton, deoarece nu sunt niște date care trebuie afișate pentru proiectul meu , dar totuși am făcut afișarea din motivul vizualizarii funcționării corecte a comenzii motorului.

În figura 4.7 este prezentată o imagine reală a conexiunilor sistemului de deschidere automate a ușii în faza de realizare si testare a funcționalitații sistemului.

Figura 4.7

Observație:

În imagine se remarcă ledul roșu luminând ceea ce are ca proces simultan rotirea axului motorului în sens invers (închidere ușa), decizie luată dupa ce distanțele preluate de la cei doi senzori care se pot vedea și pe LCD sunt mai mai mari de 15 cm (cazul meu de studiu).

O imagine a proiectului final este prezentată în Figura 4.8

Figura 4.8

Funcționarea

În figura 4.8 se observă conectarea întregului sistem, fucționarea are loc exact după descrierea detailată a conectării fiecărui bloc în parte prezentată mai sus, diferența ce apare este afișarea pe LCD, prima dată afișăm pe prima linie temeratura ( T) și umiditate a aerului (H) și pe linia a doua avem afișat umiditate sol (umidit_sol), la apăsarea unui buton prezent pe breadboard putem vizualiza cele doua distanțe (Distanța1 și Distanța2) pentru a vizualiza funcționarea corectă a senzorilor de ultrasunet, la urmatoare apasare a butonului se revine la afișarea parametrilor principali temperatură și umiditate aer/umiditate sol.

Concluzii

Sistemul electronic de monitorizare și control al unor parametri pe care l-am implementat a fost gîndit pentru a ușura viața cultivatorului, l-am implemetat pentru a fi ușor adaptabil și pentru alte locații unde este necesar controlul anumitor parametri cum ar fi urmatoarele exemple:

o galerie de artă unde avem picturi și diferite obiecte de artă care pentru o pastrare mai bună fără a fi deteriorate necesită o temeperatură și o umiditate între anumite standarde așa că un asemenea sistem ar fi perfect de utilizat;

o bibliotecă unde pastram manuscrise și texte vechi care trebuie pastrate în bune condiții;

spații de depozitare marfuri;

În special pentru a putea fi ușor adaptabil am folosit și îmbunatațirile aduse în cadrul

proiectului meu (sistemul de iluminare nocturnă implementat cu ajutorulu fotorezistenței și sitemul de deschidere automată a ușii implementat cu ajutorul senzorilor de ultrasunet și motorului DC).

Îmbunătățiri

Dintre cele mai importante îmbunătățiri care se doresc a fi realizate pe viitor sunt urmatoarele:

înlocuirea senzorilor cu alții de o calitate mai superioară;

înlocuirea microcontrolerului cu unul mai performant;

implementarea sistemului de irigare cu motor ce controlează o pompă;

reducerea consumului de energie printr-un control mai eficient al ventilatoarelor și motoarelor;

producerea de energie cu ajutorul panourilor solare amplasate în vecinatatea serei;

trimiterea principalilor parametrii pe un telefon și trimiterea unor semnala de alarmă dacă un sistem nu funcționează corect prin WI-FI;

Bibliografie

[1] Vornicu Liliana-Albu., Sensori și traductoare, Editura Politehnium, Iași, 2006

[2] D-Robotics UK (www.droboticsonline.com)

[3] DHT11 datasheet (http://www.micropik.com/)

[4] Massimo Banzi, Getting started with Arduino, Second Edition, O’Reilly Media, Inc, 2011

[5] Soil moisture sensor datasheet ( http://eie.uonbi.ac.ke/)

[6] Arduino datasheet (www.arduino.cc/en/Main/ArduinoBoardMega2560)

[7] www.epsicom.com

[8] https://learn.adafruit.com/downloads/pdf/dht.pdf

[9] http://www.sensorica.ru/docs/art3.shtml

[10] Cristian Farcas, Dan Pitica Revista ECOTERRA , nr 20, an VI, 2009

[11] Richard M. WHITE, „A Sensor Classification Scheme” IEEE

Transactions On Ultrasonics, Ferroelectrics, And Frequency

Control, Vol. Uffc-34, No. 2, March 1987

[12] DHT11 – Humidity and Temperature Sensor (www.sunrom.com/p-1141.html)

[13] http://www.robofun.ro/forum

[14] http://www.circuiteelectronice.ro/detectoare/senzor-de-umiditate-pentru-sol.html\

Anexe

Cod program realizat în programul Arduino 1.6.0:

#include <LiquidCrystal_I2C.h> // includem biblioteca LCD

#include <Wire.h> // includem biblioteca folosita pentru comunicarea I2C

#include <DHT.h> // includem biblioteca senzorului de temepratura si umiditate DHT11

#define DHTPIN 52 // declarare pin date senzor temperatura DHT11

#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

// Setarea pinilor prin I2C chip folosit pentru conexiunile LCD:

// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Setarea LCD I2C address

const int trigPin = 40; //declarare pin prin care trimitem semnal sensor 1 ultrasunet

const int echoPin = 41; // declarare pin prin care vom primi raspunsul ecoului

const int trigPin_1 = 50; //declarare pin prin care trimitem semnal sensor 2 ultrasunet

const int echoPin_1 = 51; //declarare pin prin care vom primi raspunsul ecoului senzor 2 ultrasunet

int motor_pin1 = 5; // declarare pin motor DC

int motor_pin2 = 6; // declarare pin motor DC

int var; // variabila folosita pentru activarea ventilatoarelor = ( button)

int led_pin = 12; // declarare pin led rosu semnal luminos inchidere usa

int ventilator = 3;// declarare pin ventilator

int ventilator_1 = 4; //declarare pin ventilator 1

int sensePin = 0; // declarare pin fotorezistenta

int ledPin_1 = 7; // declarare pin pentru led_1 iluminare

int ledPin_2 = 8; // declarare pin pentru led_2 iluminare

int sensorPin = A1; // declarare pin A1 prin care se primesc date de la senzorul umiditate sol

int sensorValue =0; // preluare valoare ce returneza senzorul de umiditae sol

float umiditat_sol; // declarare variabila umiditate_sol

int led_verde = 11; // declarare pin led_verde

int led_albastru=10; // declarare pin led_albastru

int led_rosu = 9; // declarare pin led_rosu

int BUTON =2; // declarare pin buton

int x =1; // variabila pentru buton pentru afisare

// Functie petru setarea distantei in cm

int distanta() //declarre nume functie distanta

{

long duration; // varibila durata = timp

int dist; // declarare variabila distanta

pinMode(trigPin,OUTPUT); // declarare pin trigPin ca iesire

digitalWrite(trigPin,LOW); // trimitere semnal de ,,0,, logic

delayMicroseconds(2); // durata semnaluil LOW =2us

digitalWrite(trigPin,HIGH); //trimitere semnal de ,,1,, logi

delayMicroseconds(10); // durata semnaluil Low =10us

digitalWrite(trigPin,LOW); //

pinMode(echoPin,INPUT); // delacare pin echoPin ca intrare

duration = pulseIn(echoPin,HIGH); // durata = timpul cat impulsul echo este HIGH

dist = (int) duration / 58.2; //calcularea timpului de la trimiterea semnalului pana la receptionarea ecoului

return dist; // returnare valoare variabila functie

}

int distanta_2()

{

long duration;

int dist;

pinMode(trigPin_1,OUTPUT);

digitalWrite(trigPin_1,LOW);

delayMicroseconds(2);

digitalWrite(trigPin_1,HIGH);

delayMicroseconds(10);

digitalWrite(trigPin_1,LOW);

pinMode(echoPin_1,INPUT);

duration = pulseIn(echoPin_1,HIGH);

dist = (int) duration / 58.2;

return dist;

}

int temperatura() //declarare nume functie temperatura

{

float temperat; //declarare variabila locala temperatura

temperat = dht.readTemperature(); // citirea datelor si atribuierea valorii acestei variabile

return temperat; // returnare valoare variabila functie

}

int umiditate_aer() // declarare nume functie umiditate_aer

{

float umiditate; // declarare variabila locala umiditate

umiditate = dht.readHumidity(); //citirea datelor si atribuirea valorii acestei variabile

return umiditate; // returnare valoare variabila functie

}

int umiditate_sol() // declarare nume functie umiditate_sol

{

pinMode(led_verde, OUTPUT); // declarare pin led_verde ca iesire

pinMode(led_albastru, OUTPUT); // declarare pin led_albastru ca iesire

pinMode(led_rosu, OUTPUT); // declarare pin led_rosu ca iesire

sensorValue = analogRead(sensorPin)-217; // citire valoare de la sensor

umiditat_sol =100- (sensorValue/8.06); // transformare prin formula a valorii citite de la senzor in procente

return umiditat_sol; // returnare valoare variabila functie

}

void setup()

{

lcd.begin(16,2); // Initializare LCD 16 char & 2 linii, Porneste luminozitatea

dht.begin(); // initializare senzor DHT11

pinMode(motor_pin1,OUTPUT); //declarare pin 1 motor ca iesire

pinMode(motor_pin2,OUTPUT); // decalarare pin 2 motor ca iesire

pinMode(led_pin,OUTPUT); // declarare pin_led motor ca iesire

pinMode(ventilator,OUTPUT); // declarare pin ventilator ca iesire

pinMode(ventilator_1,OUTPUT); // decalarare pin ventilator 1 ca iesire

analogReference(DEFAULT); //5V Reference on Mega (pinMode, OUTPUT)

pinMode(BUTON,INPUT); // decalare pin buton intrare

}

void loop()

{

if(temperatura() >=27) // conditie pornire ventilatoare

{

digitalWrite(ventilator,HIGH); // trimitere de semnal de nivel HIGH pentru cele 2 ventilatoare daca conditia este adevarata

digitalWrite(ventilator_1,HIGH);

}

else

{

digitalWrite(ventilator,LOW); //trimitere de semnal de nivel LOW pentru cele 2 ventilatoare daca conditia este falsa

digitalWrite(ventilator_1,LOW);

}

lcd.clear(); // stergere LCD

if(digitalRead(BUTON) && HIGH) //testare conditie apasare buton

{

x=x+1; //pentru afisare date lcd

delay(200);

if(x==3) x=1; // conditie afisare primele seturi de date temeperatura si umiditate

}

if(x==2) // conditie afisare distante in urma apasarii butonului

{

lcd.print("Distanta1:"); // afisare Distanta1

lcd.print(distanta()); // valoare distante

lcd.print(" cm"); // afisarea cm

lcd.setCursor(0,1); // selectarea afiasare linie a doaua LCD

lcd.print("Distanta2:"); // afisare Distanta2

lcd.print(distanta_2()); //afisarea valoare distanta2

lcd.print(" cm"); // afisare cm

delay(200);

}

else

{

lcd.setCursor(0,0); //setare prima linie si prima pozitie a LCD-ului

lcd.print("T: "); // afisarea T

lcd.print(temperatura()); // afisare valoare temperatura

lcd.print((char)223); // afisare caracter ,,grad celsius,,

lcd.print("C "); // afisare C

lcd.setCursor(8,0); // setare pozitia a 8 primeil linii a LCD-ului

lcd.print("H: "); // afisare H

lcd.print(umiditate_aer()); // afisare valoare umiditate aer

lcd.print(" %"); // afisarea caracterul %

lcd.setCursor(0,1); // setarea linie a doua de afisarea LCD-ului

lcd.print("umidit_sol:"); // afisarae umidit_sol

lcd.print(umiditate_sol()); // afisare valoare umiditate sol

lcd.print("%"); // afisarea caracter %

delay(200);

}

if((distanta() < 15 | distanta_2())< 15 && var == 0) // conditie test daca avem obstacol sau nu pentru a actiona deschiderea usei

{

analogWrite(motor_pin1, 200);/*Iata sintaxa de mai sus, 200 se poate inlocui cu orice nr x, unde -255<x<255 si x este nr intreg*/

analogWrite(motor_pin2,0); // declarare pin 2 motor zero logic

delay(5000); // timp cat are nevoie motorul sa se roteasca pentru a deschide usa

analogWrite(motor_pin1,0); //punerea in zero logic a pinul 1 dupa ce sa deschis usa

var = 1; // variabila cu rol de buton

}

else

if(( distanta() > 15 && distanta_2() >15)&& var == 1) //conditie test daca avem sau nu obstacol pentru a actiona motor in sens invers pentru a inchide usa

{

digitalWrite(led_pin, HIGH); // atribuire ledpin 12 nivel de HIGH pentru a se aprinde

analogWrite(motor_pin1,0); // atribuire pin 1 motor zero logic

analogWrite(motor_pin2,200); // atribuire pin 2 motor 1 logic

delay(5000); // // timp cat are nevoie motorul sa se roteasca pentru a inchide usa

analogWrite(motor_pin2,0); // punerea in zero logic a pinului 2 motor dupa ce sa inchis usa

var=0; // variabila cu rol de buton

digitalWrite(led_pin, LOW); // atribuire pin led nivel LOW

}

if(umiditat_sol<30) //conditie test umidtate sol

{

digitalWrite(led_verde,LOW); // daca este adevarata punere led_verde nivel LOW

digitalWrite(led_albastru,LOW);//daca este adevarata punere led_albastru nivel LOW

digitalWrite(led_rosu,HIGH); //daca este adevarata punere led_rosu nivel HIGH

}

if(umiditat_sol >30 && umiditat_sol < 70)//conditie test umidtate sol

{

digitalWrite(led_verde,LOW);//daca este adevarata punere led_verde nivel LOW

digitalWrite(led_albastru,HIGH);//daca este adevarata punere led_albastru nivel HIGH

digitalWrite(led_rosu,LOW);//daca este adevarata punere led_rosu nivel LOW

}

if(umiditat_sol >70)//conditie test umidtate sol

{

digitalWrite(led_verde,HIGH); //daca este adevarata punere led_verde nivel HIGH

digitalWrite(led_albastru,LOW);//daca este adevarata punere led_albastru nivel LOW

digitalWrite(led_rosu,LOW); //daca este adevarata punere led_rosu nivel LOW

}

int val = analogRead(sensePin); // citire variabila fotorezistor

val = constrain(val, 500,600); // functie pentru iluminare

int ledLevel = map(val, 500,600,255, 0);// Ffunctie pentru iluminare pentru iluminare

analogWrite(ledPin_1, ledLevel); // comanda led_1

analogWrite(ledPin_2, ledLevel); // comanda led_2

}

Similar Posts