O stație meteo automată (SMA) poate fi definită ca o stație meteorologică la care observațiile despre starea vremii se fac deobicei în mod automat… [303068]
Capitolul I
INTRODUCERE
I.1. GENERALITĂȚI
O stație meteo automată (SMA) poate fi definită ca o stație meteorologică la care observațiile despre starea vremii se fac deobicei în mod automat utilizând pentru acest scop o varietate de instrumente de măsură ( în general senzori digitali performanți) [anonimizat] a datelor cum ar fi microcontrolere dedicate sau calculatoarele. Astfel de sisteme integrate ce au în componența lor o [anonimizat] a datelor sunt denumite deobicei sisteme automate de observare a condițiilor meteo (SAOCM). Stațiile meteo automate sunt în general folosite pentru a mări suprafața de observație și de a [anonimizat]:
creșterea densității rețelei de monitorizare adăugând noi echipamente în zone noi sau zone greu accesibile;
furnizarea datelor sau stocarea lor după caz în afara orelor de program;
creșterea fiabilității măsurătorilor prin utilizarea tehnologiilor moderne și a echipamentelor de masură digitale;
asigurarea omogenității rețelelor de observație prin standardizarea tehnicilor de măsurare;
satisfacerea unor cerințe noi de monitorizare prin implementarea adaptabilă și flexibilă a echipamentelor din cadrul sistemului;
reducerea erorilor umane prin implementarea de tehnici moderne de măsurare;
reducerea costurilor operaționale prin reducerea numărului de observatori;
măsurarea și raportarea datelor cu o frecvență mare sau chiar continuă.[2]
I.2. SCOPUL PROIECTULUI
Proiectul de față a fost conceput și creat din ideea de a fi un lucru util și de a veni în ajutorul celor care nu au posibilitatea de a se informa prin mijloace convenționale despre starea vremii fie fiind în drumeții sau în zone izolate unde accesul la informații este anevoios.
Pentru atingerea scopului propus s-au conceput din start câteva cerințe de bază pentru a putea urmări modul de execuție și implementare a proiectului, aceste cerințe sunt:
determinarea valorilor meteorologice prin implementarea unui sistem automatizat de achiziție a datelor utilizând diverși senzori.
procesarea datelor utilizând microcontrolerul Atmega 328p (Arduino UNO).
afișarea datelor obținute pe un display LCD monocrom 16X2 utilizând telecomanda cu (IR).
[anonimizat].
[anonimizat].
[anonimizat] a fost utilizat modelul din figura nr.I.1. care definește clar etapele ce trebuiesc parcurse în procesul de execuție al unui proiect. Modelul “V-Model” sau “V-Cycle”) [anonimizat].
Modelul V-Cycle
Figura I.1. Modelul “V-Cycle” utilizat pentru proiectarea și implementarea sistemului
Considerentele care au stat la baza alegerii unui astfel de model au fost:
stabilirea cu exactitate a etapelor ce vor fi parcurse pentru atingerea obiectivului propus.
planificarea riguroasă a resurselor hardware și software utilizate.
îmbunătățirea timpului de execuție pentru elaborarea și finalizarea proiectului
I.3. STRUCTURA LUCRĂRII DE DIPLOMĂ
Având în vedere scopul și obiectivele proiectului, prin prezenta lucrare s-a proiectat, dezvoltat, implementat, testat și realizat un sistem hardware și software pentru echiparea unei stații meteo automate acre să utilizeze energii alternative pentru alimentarea și funcționalitatea ei, în cazul de față utilizarea energiei solare ca sursă de alimentare. Pentru materializarea proiectului au fost necesare multe ore de lucru și efort suținut pe perioada cât s-a proiectat, dezvoltat și implementat platforma hardware și software al stației meteo. Pentru a putea lucra sistematic și etapizat s-a utilizat modelul “V-Cycle” prezentat in figura 1.3. pentru stabilirea priorităților în derularea procesului de execuție a acestui proiect.
Această lucrare este împărțită pe 6 capitole care acoperă atât părțile teoretice caracteristice temei alese cât și descrierea în detaliu a soluțiilor hardware și software implementate. Structurarea capitolelor a fost realizată plecând de la scopul și obiectivul propus, incepând cu partea teoretică necesară înțelegerii proiectului, detalirea platformelor de dezvoltare software și hardware și terminându-se cu emiterea concluziilor în urma testelor efectuate.
Capitolul I conține noțiunile generale privind stațiile meteo automate și utiliatea lor, prezentarea generală a proiectului referitor la scopul pentru care a fost creat și structura lucrării de diplomă.
Capitolul II prezintă considerațiile teoretice ce au dus la proiectarea și implementarea unui astfel de sistem automat de monitorizare a condițiilor meteo.
Capitolul III are ca scop prezentarea sumară a arhitecturii sistemului începând cu platforma hardware unde sunt evidențiate structurile de bază ale sistemului implementat prin scheme bloc și dezvoltă amănunțit platforma hardware și implementarea pas cu pas a componentelor, circuitelor și a aplicațiilor folosite în cadrul acestui proiect.
Capitolul IV are ca scop prezentarea sistemului software, a schemei logice și detalierea programului utilizat pentru programarea microcontrolerului “Arduino UNO” în cadrul acestui proiect.
Capitolul V prezintă modul în care au fost testatate și implementate componentele și aplicațiile din cadrul sistemului.
Capitolul VI exprimă concluziile obținute în urma testelor și a masurătorilor efectuate.
Capitolul II
CONSIDERAȚII TEORETICE, STAȚII METEO
II.1. Introducere
Stațiile meteo sunt instalații echipate cu instrumente pentru măsurarea condițiilor atmosferice ele furnizând informații despre evoluția vremii și a condițiilor climatice. Stațiile meteo în general măsoară și furnizează date despre temperatură, umiditatea aerului, presiunea atmosferică, viteza și direcția vântului precum și cantitatea de precipitații căzută, informațiile fiind utilizate pentru prognozarea și monitorizarea schimbărilor climatice pe arii geografice vaste sau restrânse în funcție de amplasamentul lor, ele ajută astfel la crearea unui tablou cât mai exact privind modificările sau evoluțiile condițiilor climatice.
Instrumentele folosite pentru măsurarea condițiilor meteo pot fi digitale sau analogice, dar indiferent de natura lor constructivă ele furnizează date similare, diferența fiind doar precizia cu care fac acest lucru.
Aparatele de măsură ce intră în componența unei stații meteo tipice sunt:
Termometrul pentru măsurarea temperaturii aerului la sol sau la suprafața mării
Barometrul pentru măsurarea presiunii atmosferice
Higrometrul pentru masurarea umidității
Anemometrul pentru măsurarea vitezei vântului
Piranometrul utilizat pentru măsurarea radiației solare
Indicatorul de ploaie ce măsoară cantitatea de precipitații pe o anumită perioadă de timp[4]
Stațiile meteo dedicate mai ales cele automate cum ar fi cele din aeroporturi pot avea în dotare instrumente suplimentare cum ar fi; disdrometrul ce masoara intensitatea precipitațiilor și densitatea picăturilor de apă, transmisometru pentru măsurarea vizibilității și ceilometrul pentru determinarea plafonului norilor, unele stații mai sofisticate pot măsura indicele de radiații ultraviolete, umiditatea solului și a frunzelor, temperatura solului, temperatura apei din diverse locații etc.[3]
Stațiile meteo de obicei sunt amplasate în locuri ferite de acțiunea directă a razelor solare, excepție facând dor instrumentele din componența ei care necesită expunerea directă, în general instrumentele sunt protejate fiind montate într-o cutie ventilată numită “ecran Stevenson” figura nr.II.1. care asigură protecția echipamentelor împotriva razelor solare directe asigurând totodată o ventilație corespunzătoare. Instrumentele unei stații meteo pot fi programate mai ales în cazul celor digitale să stocheze și să transmită istoricul datelor pe o perioadă mai mare de timp, unele comunicând datele la intervale orare sau chiar mai puțin.
Figura II.1. “ecranul Stevenson”pentru protecția echipamentelor
II.2. Clasificarea stațiilor meteo
În funcție de cerințe, domeniu utilizat și dotări stațiile meteo pot fi clasificate după cum urmează:[5]
Stații meteo analogice, figura nr.II.2. caracteristica lor este aceea că sunt construite din elemente mecanice, sunt fiabile pot funcționa fără probleme o perioadă îndelungată și nu necesită nicio sursă de alimentare, dezavantajul lor este acela că observațiile sau citirea echipamentelor se face prin observare directă la intervale de timp regulate.
Figura II.2. stație meteo analogică
Stații meteo digitale, figura nr.II.3. aceste stații după cum le spune și numele sunt stații a căror caracteristică primară este aceea de a face achiziții de date în urma citirii senzorilor digitali de obicei. Ele sunt dependente de o sursă de alimentare externă, datele fiind transmise către o unitate centrală prin diverse tehnologii wireless, avantajul acestor stații este acela că pot avea o multitudine de senzori ce pot fi amplasați atât în interior cât și în exterior comunicând datele prin wireless și în plus datele pot fi afișate în timp real pe diverse diplay-uri.
Figura II.3. stație meteo digitală
Stații meteo pentru exterior, figura nr.II.4. au în componența lor și aparaturi analogice de măsurare cât și digitale, față de celelalte stații prezentate se deosebesc prin robustețea construcției fiind fabricate din materiale rezistente la condițiile climatice extreme.
Figura II.4. stație meteo digitală sau analogică pentru exterior
Stații meteo wireless, figura nr.II.5. sunt la fel ca celelalte stații prezentatate diferența fiind interconectarea senzorilor și portabilitatea lor, comunicarea datelor realizându-se exclusiv prin tehnologii wireless senzorii putând comunica cu baza de la 30 m până la 300 m în funcție de implementarea hardware și software.
Figura II.5. stație meteo wireless
Stații meteo solare, figura nr.II.6. caracteristica lor de bază este autonomia din punct de vedere al alimentării cu energie, ele convertind cu ajutorul panourilor fotovoltaice energia solară în cea electrică. Aceste stații pot fi folosite în zone greu accesibile unde nu există retele de energie electrică, având o autonomie de funcționare ridicată. Dezavantajul lor constă în faptul că energia stocată depinde implementarea componentelor hardware pentru etajul de alimentare, de acumulatorul utilizat cât și de zona geografică în care este aplasată stația (intensitatea solară).
Figura II.6. stație meteo alimentată cu energie solară
Stații meteo portabile, figura nr.II.7. aceste stații sunt construite special să fie rezitente la apă, praf și murdărie ele sunt utilizate în general de cei care iubesc natura și drumețiile, de către serviciile de căutare și salvare, pompieri sau armată. Sunt foarte precise și oferă o gamă largă de informații cu privire la mediul înconjurător sau condițiile meteo.
Figura II.7. stație meteo portabilă
II.3. Exemple de stații meteo automate
stația meteo “Campbell” figura nr.II.8. este una dintre cele mai utilizate stații automate din lume datorită caracteristicelor ei tehnice cum ar fi; precizia de masurare ridicată, fiabilitatea, construcția robustă, funcționarea într-o gamă largă de temperaturi cât și consumul de energie redus. Punctul forte al acestei stații este autonomia ei, adică funcționarea ei pe baza energiei solare provenite de la panourile fotovoltaice din dotare. Stația meteo poate fi utilizată pentru diverse aplicații cum ar fi: monitorizarea valorilor meteo, cercetare în domeniul climatologic, determinări ale umidității solului, ale înghețului, măsurarea intensității vântului, etc.[6]
Figura II.8. Stația meteo “Campbell”
stația meteo “AANDERAA AWS 2700” figura nr.II.9. utilizată deobicei de stațiunile de cercetare unde sunt condiții extreme, stația asigură măsurări de calitate ridicată folosind o gamă largă de senzori pentru determinarea următorilor parametri: viteza și direcția vântului, umiditatea relativă, presiunea atmosferică, durata și intensitatea solară, vizibilitatea, cantitatea de precipitații, etc. La baza suportului pe care sunt montați senzorii se găsesc echipamentele de prelucrare și transmisie a datelor achiziționate, senzorii sunt citiți la un interval de 10 minute, iar transmisia datelor se face prin diverse moduri care sunt configurabile în funcție de cerințe cu ar fi; transmie radio a datelor în timp real, comunicații TCP/IP, GSM, GPRS și comunicații prin satelit.[7]
Figura II.9. Stația meteo “AANDERAA AWS 2700”
stația meteo “Davis Vantage PRO2” figura nr.II.10 este o stație meteo care poate fi personalizată în funcție de necesități având o gamă largă de senzori ce pot fi utilizați. După cum îi spune și numele este dedicată în special profesioniștilor care vor să monitorizeze și să gestioneze date meteo la o precizie ridicată, stația meteo este proiectată să reziste la temperaturi și condiții meteo extreme și viteze ale vântului de până la 325 km/h. Pe lângă toate echipamentele clasice utilizate de orice stație meteo automată este echipată cu un transmițător wireless alimentat cu energie solară foarte performant ce poate transmite și primi date pe o ditanță de 1000 m fiind dotată și cu un acumulator de rezervă pentru menținerea fluxului de date activ.
Figura II.10. Stația meteo “Davis Vantage PRO2”
Capitolul III
ARHITECTURA SISTEMULUI HARDWARE
(COMPONENTE, CIRCUITE, SCHEME ȘI APLICAȚII)
Pentru a înțelege mai bine modul de funcționare al stației meteo ar trebui explicate câteva noțiuni de bază ce privesc sistemele automate sau definiția automatizării. Zi de zi utilizăm tot felul de echipamente sau noi tehnologii care ne fac viața mai ușoară, în general aceste echipamente operează cu ajutorul unor mecanisme sau a unor sisteme controlate electronic pentru a executa anumite operații în mod automat fără intervenția factorului uman, asfel de echipamente sau sisteme care conduc procese complexe fără intervenția operatorului uman se numesc în general sisteme sau echipamente de automatizare iar implementarea fizică a acestor metode sau concepte poartă definiția de automatizare.
Sistemul prezentat în proiectul de față se dorește a fi un echipament automatizat pentru determinarea condițiilor meteorologice sau mai bine zis o stație meteo automatizată dedicată în special utilizatorului casnic neprofesionist care dorește să afle în timp real date despre starea vremii din zona în care se află cum ar fi; temperatura, umiditatea, intensitatea luminii a nivelului de apă, etc. Stația meteo a fost concepută în așa fel încât utilizarea ei să se facă cât mai ușor prin simpla apăsare a butoanelor unei telecomenzi, pe lângă utilizarea facilă putem aminti și de faptul că această stație este alimentată cu energie solară fapt ce-i conferă portabilitate și autonomie din punct de vedere al alimentării cu energie electrică.
III.1. Platforma hardware
Pentru a putea concepe și realiza un astfel de sistem automatizat pentru monitorizarea condițiilor meteo soluția aleasă pentru acest proiect a fost un microcontroler în cazul de față microcontrolerul “Arduino UNO” împreună cu ecosistemul format din platforma de dezvoltare și mediul de programare caracteristic. Ideea alegerii microcontrolerului utilizat a plecat de la faptul că este bine echipat tehnic pentru a putea gestiona componentele, senzorii, elmentele de comandă și cele de afișare necesare implementării lui în acest proiect. Dar considerentul principal pentru alegerea lui fiind în primul rând componenta financiară cât și oferta tehnică, care beneficiază de un suport vast datorită platformei open-source și a comunității din mediu online care este foarte activă și se află în continuuă dezvoltare.
Elementele principale ce compun acest sistem sunt reprezentate în schema bloc din figura nr.III.1.
Blocul de achiziție al datelor compusă din: senzorul de temperatură pentru monitorizarea sistemului, senzor temperatură și umiditate a aerului, senzorul de presiune atmosferică, senzorul de lumină, senzor nivel apă, senzor tensiune alimentare și modulul de recepție infraroșu.
Blocul de procesare a datelor: microcontrolerul “Arduino UNO R3”.
Blocul de comandă pentru afișarea datelor: telecomandă transmisie infraroșu.
Blocul de afișare a datelor: modul convertor “I2C” pentru display și „LCD 16×2”.
Blocul de alimentare, care are în componența lui un modul pentru încărcarea acumulatorului alimentat de panourile fotovoltaice, un acumulator necesar funcționării stației, un întrerupător on/off și un modul convertor ridicător de tensiune pentru alimentarea placuței de dezvoltare “ArduinoUNO” cu 9V DC stabilizați.
Figura III.1. Schema bloc a sistemului
III.2. Schema electronică a sistemului
În figura nr.III.2 este reprezentată schema electronică a sistemului generată cu ajutorul software-ului Proteus.
Figura III.2. Schema electronică a sistemului
Proteus este un software de proiectare gen CAD (proiectare asistată de calculator) utilizat în general pentru crearea de scheme electronice în vederea implementării lor. Proteus a fost dezvoltat în Yorkshire, Anglia de către compania Labcenter Electronics în ideea de a veni în ajutorul inginerilor, proiectanților sau chiar a amatorilor pentru a dezvolta, proiecta sau testa circuite electronice.
El poate fi configurat și achiziționat în funcție de necesități cu diverse funcționalități sau module dintre care cele mai importante ar fi: modul de proiectare a circuitelor electronice, modulul de proiectare a circuitelor imprimate, modulul pentru simulări în timp real și modulul de captură a schemei electronice, cu această funcție putând fi salvate schemele electronice în diverse formate, cum ar fi; formatele vectoriale, formatul PDF, formatul BMP sau pentru a putea fi prelucrate de mașini cu comandă numerică CAM în formatul DXF. Un alt modul foarte important este modul de simulare în timp real al proiectului, în general Proteus se axează pe simularea în mediul virtual a circuitelor ce sunt comandate de microcontrolere fiind suportate o gamă diversificată de microcontrolere cum ar fi: microcontrolere PIC produse de Microcip Tehnologies, microcontrolerele Atmel AVR (Arduino), ARM Cortex-M3, etc.
Pentru a simula în Proteus un microcontroler și schema electronică în care este implementat este necesară încărcarea unui program sau a unui cod binar în simulator, codul putând fi generat precum în cazul lui Arduino utilizat și în prezentul proiect de către platforma de programare proprie Arduino IDE. Modulul permite utilizatorilor să testeze o varietate de aplicații bazate pe microcontrolere, putând fi utilizat în scopuri educative sau de cei pasionați fară a necesita hardware fizic ceea ce este un atu în plus ajutând la dezvoltarea și progresul în domeniul sistemelor automatizate.
III.3. Platforma de dezvoltare utiliză în cadrul proiectului
Temelia de bază pe care se axează acest proiect a fost construită utilizând platforma de dezvoltare Arduino și microcontrolerul Arduino UNO. Dar ce este Arduino?
Arduino poate fi considerat un instrument prin care se pot proiecta și implementa siteme integrate capabile să cunoască și să controleze mediul înconjurător. Acest instrument este un produs software open-source compus dintr-un mediu de dezvoltare bazat pe o variantă de (Wiring) care împreună cu interfața grafică IDE și cu limbajul de programare Processing formează mediul de programare utilizat pentru programarea microcontrolerelor AVR (în cazul de față Arduino UNO).
După cum se observă și în figura nr.III.3, Arduino poate fi utilizat pentru implementarea și dezvoltarea de sisteme interactive ce pot oferi utilizatorului prin intermediul diverselor echipamente cum ar fi: (sennzori, comutatoare, module,etc) informațiile solicitate. În cazul de față obținerea de date privind starea vremii.
Figura III.3.Schema conexiunilor(Wiring) a platformei hardware
III.4. Componente și module utilizate în cadrul proiectului
Componentele utilizate pentru realizarea acestui proiect au fost împărțite pe categorii urmând schema bloc a sistemului după cum urmează:
Componente pentru achiziția datelor: senzorul de temperatură pentru monitorizarea sistemului, senzor temperatură și umiditate a aerului, senzorul de presiune atmosferică, senzorul de lumină, senzor nivel apă, senzor tensiune alimentare și modulul de recepție infraroșu.
Componenta de procesare a datelor: microcontrolerul “Arduino UNO R3”.
Componenta pentru afișarea datelor: modul convertor “I2C” pentru display și „LCD 16×2”.
Componenta de comandă pentru afișarea datelor: telecomandă transmisie recepție infraroșu.
Componenta pentru alimentarea stației meteo, alcătuită dintr-un modul pentru încărcarea acumulatorului alimentat de panourile fotovoltaice, un acumulator necesar funcționării stației, un întrerupător on/off și un modul convertor ridicător de tensiune pentru alimentarea placuței de dezvoltare “ArduinoUNO” cu 9V DC stabilizați.
III.4.1. Componente pentru achiziția datelor(senzori)
Pentru a percepe mediul înconjurător prin itermediul instrumentelor moderne și tot mai evoluate din punct de vedere tehnologic avem nevoie de senzori.
Ce sunt senzorii?
O scurtă definiție poate fi formulată astfel, senzorii sunt instrumente sau dispozitive electronice, mecanice, acustice, optice și chimice care au scopul de a extinde simțurile sau percepția senzorială a ființei umane, rolul lor fiind acela de a detecta evenimente sau modificări ale mediului lor și să transmită informații către alte componente electronice cum ar fi; microcontrolerele sau calculatoarele pentru a fi procesate și vizualizate.[12]
Senzorii sunt utilizați într-o gamă largă de aplicații în mai toate obiectele care ne înconjoară, de la aparatul de cafea, mașina de spălat rufe, telecomanda banală sau mașina pe care o conducem la unele aplicații mai complexe pentru industria spațială, medicină sau robotică, rolul senzorilor este acela de a măsura o mărime fizică (temperatură, umiditate, presiune, masă, etc) și de a o transforma într-un semnal ce poate fi citit de către un operator prin intermediul unui instrument și poate fi prelucrată.
Datorită marii diversități a principiilor de conversie a mărimilor fizice în mărimi electrice, precum și a soluțiilor de implementare a acestor principii clasificarea senzorilor este diversificată, una dintre aceste clasificări se referă la senzorii de tip activ adică acei senzori care sunt mari consumatori de energie cum ar fi radarele care măsoară distanțe prin emiterea de radiații și cei de tip pasiv cum ar fi de exemplu fotorezistorul care poate măsura intensitatea luminii. [12]
În automatizări, calitatea și cantitatea informației măsurată și transmisă de senzori după prelucrea ei poate servi la controlul și reglarea sistemelor automate.
III.4.1.1. Senzorul de temperatură TMP102
Senzorul de temperatură TMP102 din figura nr.III.4.1 este un senzor digital utilizat pentru a monitoriza temperatura sistemului nostru. TMP102 oferă o precizie de ± 0,5 °C, nu necesită calibrare și datorită faptului că este digital semnalul transmis este liniar și nu necesită calcule complexe sau tabele de conversie pentru a obține temperatura. Convertorul analogic digital pe 12 biți încorporat în cip oferă rezoluții de până la 0,0625 °C.
TMP102 poate fi conectat la microcontroler prin interfața integrată și compatibilă cu protocolul I2C și permite conectarea a patru dispozitive pe aceeași magistrală, tensiunea de alimentare suportată este cuprinsă între 1,4 și 3,6 V cu un consum de 10 µA la capacitate maximă. Senzorul este ideal pentru măsurarea extinsă a temperaturii într-o gamă largă de aplicații, temperaturi de funcționare între -40 ° C și 125 °C.
Date tehnice TMP102
12-bit, rezolutie 0,0625 ° C
Precizie: 0,5 °C (-25 °C pana la+85 °C)
Curent scazut: 10μA Activ (max) 1μA Shutdown (max)
Alimentare 1.4V – 3.6VDC
Interfata conectare I2C
Figura III.4.1 Senzorul de temperatură TMP102
În figura nr.III.4.2 este prezentată schema de conectare a senzorului cu microcontrolerul, am utilizat acest senzor și în aplicația de monitorizare a temperaturii sitemului unde la temperatura presetată din cod senzorul prin intermediul controlerului dă comanda de pornire a ventilatorului. După cum se observă conexiunea a fost realizată utilizând protocolul I2C al microcontrolerului pe a cărui magistrală se pot adăuga mai multe componente compatibile cu acest protocol.
Figura III.4.2 Schema de conectare a senzorului TMP102
III.4.1.2. Senzorul pentru masurarea nivelului apei
Acest senzor din figura nr.III.4.3 poate fi utilizat pentru a măsura nivelul apei sau a grosimii stratului de zăpadă pe o scală verticală de la 0 la 40 mm. Detectarea nivelului apei se realizează ușor iar valorile transmise pot fi citite direct cu un microcontroler Arduino. Output-ul senzorului este analogic practic un rezistor variabil care dă tensiuni diferite în funcție de nivelul apei, semnalul transmis de senzor este prelucrat de microcontroler prin convertorul analogic digital unde este convertit în mărime scalară de la 0 la 1023, această mărime este utilizată în aplicații pentru a afișa în format digital informația transmisă.
În cadrul proiectului fiind utilizat doar pentru a detecta nivelul de apă de la baza stației meteo în scopul de a proteja componentele integrate în cazul în care nivelul apei crește în zona în care am amplasat stația meteo.
Date tehnice senzor nivel apă
Tensiunea de funcționare: 3 VDC până la 5 Vcc
Curent de operare: <20 mA
Suprafață de detecție: 40 mm x 16 mm
Temperatura de operare: 10 ˚C până la 30 ˚C
Umiditate: 10% până la 90%
Dimensiune: 62 x 20 x 8 mm
Figura III.4.3 Senzor nivel apă
În schema din figura nr.III.4.4 este prezentată modalitatea de conectare a senzorului la microcontroler, senzorul are în componența sa trei pini pin-ul GND se conectează la GND-ul lui Arduino, pin-ul VCC se conectează la 5V iar pin-ul S în cazul nostru se conectează la intrarea analogică A0 a microcontrolerului.
Figura III.4.4 Schemă conectare senzor nivel apă
III.4.1.3. Senzorul de lumină
Senzorul de lumină din figura nr.III.4.5 este utilizat în cadrul acestui proiect pentru a furniza date despre intensitatea luminii. S-a implementat această soluție pentru a putea monitoriza încărcarea solară a stației meteo. Utilizând valorile obținute am putut constata că la valori ale intensității luminii de peste 50% panourile solare furnizează 4,2V suficieți pentru a începe încărcarea bateriei. În cazul nostru am utilizat fotorezistorul GL5528 fiind ușor de implementat în proiectele Arduino în general. GL5528 este un fotorezistor a cărui valoare este foarte sensibilă la modificările intensității luminii fiind utilizat frecvent pentru măsurarea intensității luminii.
Date tehnice senzor lumină
Diametru: 5mm
Tensiune maxima: 150V DC
Putere consumata (max): 100mW
Temperatura de lucru: -30 – +70 °C
Valoarea spectrala de varf: 540 nm
Rezistenta la lumina (10lux): 10-20 KΩ
Rezistenta in intuneric : 1 MΩ
Timp de raspuns: up-20 ms/ down-30 ms
Figura III.4.5 Senzor lumină
În schema din figura nr.III.4.6 este prezentată modalitatea de conectare a senzorului la microcontroler, senzorul are în componența sa 2 pini pin-ul GND se conectează la GND-ul lui Arduino, pin-ul VCC se conectează la 5V pritr-un rezistor cu valoare de 10K iar semnalul este cules dintre cei doi rezistori prin intermediul unui terminal care se conectează la intrarea analogică A2 a microcontrolerului.
Figura III.4.6 Schemă conectare senzor lumină
III.4.1.4. Senzorul de temperatură și umiditate DHT11
DH11 prezentat în figura nr.III.4.7 este un senzor digital de înaltă performanță ce are în componența lui un senzor de umiditate capacitiv ce măsoară umiditatea relativă și un termistor care măsoară temperatura, aceste componente sunt precalibrate, iar ieșirea este oferită sub forma unui semnal digital. DHT11 este compatibil cu majoritatea plăcuțelor de dezvoltare Arduino, oferind o precizie bună putând măsura umiditatea între 20% – 90% cu o marjă de eroare de 5% și temperatura în intervalul 0 – 50 °C cu o marjă de eroare de 2 °C.
Date tehnice senzor DHT11
Tensiune de alimentare: 3.3V – 5V;
Curent: 2.5mA (maxim);
Gama de măsurare a umidității: 20% – 95% RH;
Acuratețea măsurării umidității: ±5% RH;
Gama de măsurare a temperaturii: 0 oC – 60 °C;
Acuratetea măsurării temperaturii: ±2 oC;
Nu funcționează sub 0°C.
Dimensiuni: 32mm x 14mm.
Figura III.4.7 Senzor de umiditate și temperatură DHT11
În schema din figura nr.III.4.8 este prezentată modalitatea de conectare a senzorului la microcontroler, senzorul are în componența sa patru pini; pin-ul GND se conectează la GND-ul lui Arduino, pin-ul VCC se conectează la 5V iar pin-ul DATA în cazul nostru se conectează la intrarea digitală 4 a microcontrolerului, ultimul pin nu se conectează.
Figura III.4.8 Schemă conectare senzor temperatură și umiditate DHT11
III.4.1.5. Senzorul de presiune barometric BMP280
BMP280 din figura nr.III.4.9 este un senzor de presiune barometric special conceput pentru aplicații mobile fiind extrem de compact. Dimensiunile sale mici și consumul redus de energie permit implementarea lui în dispozitive portabile cum ar fi: telefoane mobile, module GPS, ceasuri dar și în proiectele cu microcontrolere. BMP280 se bazează pe tehnologia Bosch a senzorilor de presiune cu piezo-rezistență, au o precizie ridicată și liniaritate fiind foarte fiabili și robuști pe termen lung. Numeroasele opțiuni de operare ale dispozitivului oferă o mare flexibilitate pentru a optimiza dispozitivul în ceea ce privește consumul de energie, rezoluția și performanța filtrului.
Date tehnice senzor BMP280
Tensiune de alimentare: 3 V – 3.6 V;
Comunicare: I2C sau SPI;
Acuratețe presiune: ±1 hPa;
Acuratețe temperatură: ±1.0°C;
Dimensiuni: 19.2mm x 17.9mm x 2.9mm / 0.8" x 0.7" x 0.1";
Greutate: 1.3g.
Figura III.4.9 Senzor de presiune barometric BMP280
În figura nr.III.4.10 este prezentată schema de conectare a senzorului cu microcontrolerul, am utilizat acest senzor pentru monitorizarea presiunii atmosferice. Conexiunea a fost realizată utilizând protocolul I2C al microcontrolerului după cum urmează, pin-ul GND se conectează la GND-ul lui Arduino, pin-ul VCC se conectează la 3V, pin-ul SCK la pin-ul SCL a lui Arduino și SDO la pin-ul SDA de la microcontroler.
Figura III.4.10 Schemă conectare senzor presiune BMP280
III.4.2. Componenta pentru procesarea datelor Arduino UNO R3
Arduino UNO R3 din figura nr.III.4.11 este un microcontroler bazat pe microcipul Atmega 328p el are în componența lui 20 de intrări /ieșiri digitale (dintre care 6 pot fi utilizate ca ieșiri pentru PWM și alte 6 sunt configurate ca intrări analogice), un oscilator de cristal pe 16 MHz, o conexiune USB pentru încărcarea programelor de pe PC și alimentare, o mufă de alimentare, un programator ICSP(in-circuit serial programming) și un buton de reset.[18]
Arduino UNO este diferit de plăcile precedente deoarece nu folosește cip-ul FTDI USB pentru conversia serială ci are implementat un convertor programat USB-serial bazat pe cip-ul ATmega 16U2, acest microcontroler auxiliar are bootloader USB propriu prin care poate fi reprogramat. Arduino UNO conține toate elmentele necesare pentru a utiliza microcontrolerul în diverse proiecte, este necesară doar conectarea lui la un PC prin cablul USB sau poate fi alimentat cu un adaptor AC / DC și el devine operațional.
Figura III.4.11 Arduino UNO R3
Arduino UNO se poate alimenta din surse diferite, prin conexiunea USB sau printr-o sursă externă, sursa de alimentare fiind selectată automat în funcție de conexiunea utilizată. Alimentarea externă în cazul proiectului nostru este realizată printr-un conector de 2,1 mm introdus în mufa auxiliară de alimentare a plăcii. Regulatorul de tensiune intern al plăcii poate suporta tensiuni dintr-o sursă externă de la 7 la 12 de volți, tensiuni mai mici de alimentare pot genera instabilitatea microcontrolerului iar tensiunile mai mari decăt cele recomandate pot supraîncălzi regulatorul de tensiune rezultând deteriorarea plăcuței de dezvoltare.
Pe partea de comunicare Arduino UNO R3 este capabil să folosească trei protocoale de comunicare; I2C, UART, SPI, pentru toate aceste protocoale sunt create biblioteci ce vin în ajutorul utilizatorului pentru a simplifica utilizarea acestor protocoale. În cadrul proiectului a fost utilizată comunicarea I2C prezentată în figura nr.III.4.12 deoarece am folosit mai multe componente care erau compatibile cu acest protocol, fapt determinant pentru economisirea resurselor în special a celor de intrare / ieșire putând fi utilizate pentru alte scopuri.[11]
Figura III.4.12 Protocol comunicare I2C
Date tehnice Arduino UNO R3
III.4.3. Modulul RTC (real time clock) DS3231
DS3231 prezentat în figura nr.III.4.13 este un modul ceas de timp real foarte exact care menține informații despre ore, minute, secunde, zile, dată, lună și an, are un calendar precis ajustând totodată lunile cu mai puțin de 31 de zile și include și corecții pentru anii bisecți(calendarul fiind valabil până în anul 2100). Ceasul încorporat poate fi ajustat să utilizeze formatul de 12 sau 24 de ore și poate oferi două alarme programabile. Pentru păstrarea setărilor DS3231 este echipat cu un locaș pentru baterie de tip CR2032 de 3V. [13]
Date tehnice modul RTC DS3231
Dimensiune: 38mm x 22mm x 14mm
Greutate: 8g
Tensiune de lucru: 3,3V – 5,5V
Memorie: AT24C32 (cap.32K)
Viteza maximă de transmisie: 400 KHz
Baterie Li-Ion CR2032
Figura III.4.13 Modul RTC(real time clock) DS3231
În figura nr.III.4.14 este prezentată schema de conectare a modulului RTC cu microcontrolerul, am utilizat acest modul pentru a afișa data și ora pe display în timpul rulării programului și pentru afișarea orei în mesajul de întâmpinare. Conexiunea a fost realizată utilizând protocolul I2C al microcontrolerului după cum urmează, pin-ul GND se conectează la GND-ul lui Arduino, pin-ul VCC se conectează la 3V, pin-ul SCL la pin-ul SCL a lui Arduino și SDA la pin-ul SDA de la microcontroler.
Figura III.4.14 Schemă conectare modul RTC DS3231
III.4.4. Componenta pentru afișarea datelor LCD 16×2 I2C
Modulele LCD sunt foarte comune în ziua de azi, ele fiind utilizate în majoritatea proiectelor care necesită afișarea diverselor informații, motivul principal pentru alegerea lor în mai toate proiectele cu microcontrolere fiind prețul scăzut și programarea facilă. Denumirea modulului 16×2 din figura nr.III.4.15 vine de la faptul că are 16 coloane dispuse pe 2 rânduri generând astfel prin diverse combinații 32 de caractere (16 x 2 = 32) fiecare caracter afișat fiind compus din 5×8 pixeli (40 pixeli) totalizând un număr de 1280 de pixeli per 32 de caractere, pentru a putea fi poziționați corect pe display pixeli au nevoie de instrucțiuni specifice ceea ce pentru utilizator ar deveni o sarcină destul de dificilă de a programa microcontrolerul să gestioneze și LCD-ul pe lângă sarcinile deja existente în cadrul unui program. Pentru a facilita conectarea cât mai ușoară a LCD-ului și de a economisi resursele de intrare – ieșire ale microcontrolerului am optat în cadrul acestui proiect pentru o interfață I2C utilizând un modul compatibil HD44780 figura nr.III.4.16 care se montează pe cei 16 pini ai LCD-ului și a cărui funcție este aceea de a procesa datele și comenzile primite de la microcontroler pentru a afișa informațiile solicitate pe LCD. Modulul I2C practic convertește datele de serie I2C primite în date paralele pentru afișajul LCD.[11]
Figura III.4.15 Display LCD 16×2 Figura III.4.16 Modul convertor I2C
Configurația pinilor LCD 16×2
În figura III.4.17 este prezentată schema de conctare a modulului convertor I2C la display-ul LCD 16×2 și conectarea ansamblului la microcontrolerul Arduino UNO R3 pe pinii SDA și SCL, la modelul Arduino UNO R3 pinii analogici A4 și A5 pot fi convertiți să suporte protocolul de comunicare I2C.
Figura III.4.17 Schemă de conectare a modulelor LCD și I2C
III.4.5. Componenta de comandă pentru afișarea datelor
Pentru a putea realiza o interfață de comandă “user-friendly” pe care să o poată exploata oricine fără să trebuiască să aibă cunoștiințe de specialiate în domeniu, am ales să implementez un modul de comandă infraroșu pentru afișarea datelor pe LCD. Prin acest lucru am obținut și o reducere a consumului de resurse hardware reducând astfel și consumul de energie deoarece citirea și afișarea datelor rezultate de la senzori se face doar la momentul solicitării lor astfel stația meteo poate fi funcțională doar pe perioada cât se execută citiri pentru a obține informațiile dorite contribuind mult și la autonomia sistemului din punct de vedere energetic.
Componentele utilizate pentru comanda de afișare a datelor sunt; modulul de recepție IR prezentat în figura nr.III.4.18, telecomandă IR universală și componenta software prezentată la capitolul IV.3.3.3, implementarea acestei componente este prezentată în capitolul V.4.
Date tehnice modul recepție IR 1838
Dimensiune: 6.4 x 7.4 x 5.1MM.
Detecție la unghi de 90 °.
Tensiune de alimentare: 2.7 – 5.5V.
Frecventa de lucru: 37.9KHZ, distanta de receptie 18 m.
Figura III.4.18 Modul receptor IR
Modulul infraroșu pentru recepție a fost conectat la pin-ul 3 al microcontrolerului care a fost setat ca input (figura nr.III.4.19), modulul se inițializează odată cu pornirea stației meteo odată cu inițializarea sistemului software.
Figura III.4.19 Schemă de conectare a modulului receptor IR
Schema bloc din figura nr.III.4.20 prezintă principiul de funcționare a componentei de comandă pentru afișarea datelor și firul de execuție a comenzi de la apăsarea butonului telecomenzii până la etapa finală adică afișarea datelor pe LCD.
Figura III.4.20 Schemă bloc componentă de comandă IR
III.4.6. Componenta de alimentare a stației meteo
Pentru a realiza un circuit de alimentare ca să satisfacă cerințele exprimate în capritolul I.2. referitor la asigurarea autonomiei de funcționare din punct de vedere al alimentării cu energie alternativă (energie solară) am optat pentru realizarea unui circuit de alimentare utilizând panouri fotovoltaice, iar pentru stocarea energiei electrice am utilizat un acumulator Li-Ion de 2000 mAh care furnizează totodată și alimentarea necesară pentru funcționarea stației meteo.
Știm că energiile alternative sunt utilizate tot mai des în viața de zi cu zi astfel devoltându-se noi tehnologii pentru pentru a le putea utiliza cât mai eficient, la fel și în cazul nostru am căutat să implementăm un circuit de alimentare eficient, economic din punct de vedere financiar și totodată performant pentru a asigura furnizarea energiei electrice necesare alimentării stației meteo în condiții optime conform cerințelor.
Circuitul de alimentare și stocare a energiei generate de panouri prezentat în figura nr.III.4.24 are în componența lui următoarele module și componente:
Panouri fotovoltaice, care asigură furnizarea energie electrice transformând energia solară în cea electrică, am utilizat în cadrul proiectului 2 panouri fotovoltaice (figura nr.II.4.21) ce furnizează la capacitate maximă 5,5V 320mA, cele 2 panouri au fost legate în paralel pentru a putea furniza energia necesară încărcării acumulatorului, în condiții optime acumulatorul se va îcărca complet în 6,25 ore conform relației capacitate baterie / capacitate încărcare (2000 / 320 = 6,25 h) în condiții mai puțin bune de exemplu când este înnorat timpul de încărcare va crește exponențial.
Date tehnice panou solar
Dimensiune: 11 x 8 cm
Material: siliciu policristalin
Tensiune la putere maximă: 5.5V
Curent la putere maximă: 160 mAh
Putere maximă: 0.88W
Figura III.4.21 Panou solar
Pentru îcărcarea acumulatorului și furnizarea energiei electrice am utilizat modulul TP4056 (figura nr.III.4.22) care poate furniza un curent maxim de 1A la 4,2V suficienți pentru încărcarea acumulatorului utilizat în cadrul acestui proiect. Modulul are protecție la suprasarcină și protecție care previne descărcarea acumulatorului oprind alimentarea în cazul în care tensiunea furnizată nu este suficientă.
Date tehnice modul încărcare solară TP4056
Tensiune de alimentare: 4.5V – 5.5V;
Curent maxim de încărcare: 1A;
Tensiune maximă de încărcare baterie: 4.2V;
Led indicator încărcare.
Dimensiuni: 25mm x 19mm x 10mm. Figura III.4.22 Modul TP4056
Având în vedere că tensiunea generată de către modulul prezentat anterior poate fluctua în raport cu condițiile de intensitate a luminii, pentru amplificarea și stabilizarea tensiunii am folosit modulul ridicător de tensiune MT3608(figura nr.III.4.23 ce utilizează un circuit inteligent care prin simularea unui inductor transformă o tensiune de intrare mică într-o tensiune mai mare la ieșire. După cum se observă și din datele tehnice prezentate acest modul este alegerea perfectă pentru proiectul nostru.
Date tehnice modul încărcare solară TP4056
Tensiunea de iesire: 28V maxim
Tensiunea de intrare: 2V ~ 24V
Curentul maxim de iesire: 2A
Dimensiune: 36mm x 17mm x 14mm
Temperatura de functionare: -40°C ~ +85°C
Figura III.4.23 Modul MT3608
Pentru stocarea și furnizarea energiei electrice am optat pentru un acumulator Li-Ion de 2000 mAh la 3,7V care la capacitatea maximă luând în calcul consumul total al componentelor active din cadrul sistemului conform relației capacitate / consum (2000mAh / 400mAh = 5h) oferă o autonomie de funcționare încontinuă a stației meteo de până la 5 ore.
Figura nr.III.4.24 prezintă circuitul de alimentare cu energie solară al stației meteo, implementarea și testarea acestui circuit este descrisă în capitolul V.1 al acestui proiect.
Figura III.4.24 Schema electrică a circuitului de alimentare solar
III.5. Aplicații utilizate în cadrul proiectului
Principala funcție a lui Arduino UNO R3 ca dealtfel a tuturor microcontrolerelor bazate pe această platformă este aceea de a controla mai multe sisteme deodată, în cazul de față pe lângă funcțiile obișnuite (lucrul cu senzorii, afișări de date, rularea programului și executarea comenzilor, etc) controlează două sisteme care rulează permanent:
Sistemul de monitorizare a tensiunii de alimentare
Sistemul automat de ventilație al platformei hardware
III.5.1 Sistemul de monitorizarea a tensiunii de alimentare
Sistemul de monitorizarea a tensiunii de alimentare are rolul de a monitoriza în permanență tensiunea de alimentare iar în cazul în care tensiunea scade sub parametri prestabiliți în program avertizează utilizatorul prin aprinderea unui LED roșu. Pentru realizarea acestui sistem am folosit un divizor de tensiune compus din 2 rezistențe pentru a furniza microcontrolerului o tensiune constantă, semnalul cules dintre cele două rezistențe este transmis spre pin-ul analogic a lui Arduino (A2) care este setat ca input. Semnalul sub formă analogică (tensiune) este convertit în semnal digital cu ajutorul convertorului analogic digital încorporat, transformând astfel tensiunea de intrare într-o marime scalară de la 0-1023, formatul digital obținut a fost utilizat pentru afișarea și monitorizarea tensiunii de alimentare.[8]
În figura nr.III.5.1 este prezentată schema sistemului de monitorizare a tensiunii de alimentare.
Figura III.5.1 Schema electronică sistem monitorizare tensiune
III.5.2 Sistemul automat de ventilație al platformei hardware
Acest sistem a fost conceput pentru monitorizarea temperaturii interne a platformei hardware și răcirea ei prin intermediul unui ventilator. Cu ajutorul senzorului de temperatură TMP102 prezentat la capitolul III4.1.1 împreună cu subprogramul de monitorizare a temperaturii din capitolul IV.3.3.1 se controlează temperatura în interiorul stației meteo. Implementarea acestui sitem a necesitat pe lângă senzor și subprogram un circuit de comandă pentru acționarea ventilatorului, circuitul find format dintr-un filtru RC(1K, 100µF) pentru atenuarea zgomotelor produse de ventilator din cauza frecvențelor de puls transmise de PWM, un tranzistor de putere (NPN/BD329) pentru amplificarea pulsului transmis de PWM, 2 LED-uri de control și un ventilator. Schema circuitul este prezentată în figura nr.III.5.2 și funcționează în felul următor; temperatura este monitorizată permanent prin intermediul programului și a senzorului, dacă temperatura din interior depășeste temperatura presetată din program atunci se activează pin-ul 10 (PWM) al microcontrolerului activând ventilatorul și LED-ul de control care confirmă pornirea lui, ventilatorul este controlat gradual de către PWM pe o frecvență de la 0 la 490 Hz care datorită funcției implementate în softul Arduino IDE “analogWrite()” poate fi convertită într-o valoare numerică de la 0 la 255, cu aceste valori putem controla prin intermediul programului turația ventilatorului. În cazul în care temperatura ajunge la punctul critic adică depășețte pragul maxim presetat din program ventilatorul va funcționa la capacitatea maximă totodată aprinzându-se și LED-ul de avertizare temperatură maximă depășită în caz contrar dacă temperatura revine la normal ledurile se vor stinge și ventilatorul se va opri.[20]
Figura III.5.2 Schema electronică sistem automat de ventilație
Capitolul IV
SISTEMUL SOFTWARE
Arduino este un mediu de dezvoltare open source utilizat pentru proiectarea și construirea aplicațiilor electronice, în componența lui intrând de obicei o componentă fizică placa cu circuite programabile denumită dealtfel și microcontroler, cât și componenta software numită IDE(Integrated Development Environment) aceasta din urmă deobicei rulează pe un computer și este utilizată pentru a scrie și încărca programul sau codul în microcontroler.[19]
IV.1. Platforma software
Mediul de dezvoltare integrat Arduino – sau Arduino (IDE) este un soft cu care se lucră ușor având o interfață intuitivă, el conține un editor de text pentru scrierea codurilor, o zonă unde apar mesajele, o consolă de text, o bară de instrumente cu butoane pentru diverse funcții ale aplicației și o multitudine de meniuri. Se conectează facil prin interfața USB la placa de dezvoltare Arduino pentru a comunica și încărca programe.
Programele create folosind Arduino (IDE) se numesc schițe, aceste schițe sunt redactate în editorul de text și se salvează cu extensia.ino. Editorul de text conține funcții consacrate cu ar fi; tăiere, lipire, căutare și înlocuire text.[18]
Zona de mesaje oferă utilizatorului informații despre derularea procesului în timp ce se salvează și se exportă fișiere sau programe afișând deasemenea eventuale erori.
În partea de jos a interfeței se află consola care afișează textul generat de către Arduino (IDE) totodată aici apar și mesajele de eroare la compilarea programului și diverse alte informații. În colțul din dreapta jos se afișează placa de dezvoltare utilizată și portul serial pe care se conectează, iar în partea de sus se află bara de meniuri și instrumente care permit utilizatorului să verifice și să încărce programe, să creeze, să deschidă și să salveze programele sau schițele generate și nu în ultimil rând să utilizeze monitorul serial implementat pentru a monitoriza în timp real rularea unui program.[17]
Programul generat de Arduino conține în general două parți importante, prima parte este secțiunea de “setup” în care se definesc setările primare cum ar fi; configuirarea intrărilor și a ieșirilor, inițializarea modulelor, definirea variabilelor și a constantelor pentru funcții diverse precum și afișarea unor mesaje generice legate de componente. Această secțiune este rulată o singură dată la pornirea sau la resetarea microcontrolerului. Iar în a doua parte se află secțiunea de “loop” unde se execută instrucțiunile în buclă continuă aici după terminarea ultimei instrucțiuni se reaia prima instrucțiune și se continuă acest ciclu până când se întrerupe alimentarea microcontrolerului.
IV.2. Proiectarea software-ului
Ideea realizării unei stații meteo portabile și autonome a plecat de la posibilitatea de a afla date despre condițiile meteorologice în locații greu accesibile sau in zonele unde prin mijloacele clasice (internet, televiziune, mass media) aceste date nu pot fi accesate. Pentru a face posibil acest lucru s-a început prin proiectarea sistemelor de achiziție a datelor, a elementelor de control și a funcțiilor ce trebuie să le îndeplinească sistemul în raport cu integrarea componentelor și a modulelor utilizate.
În vederea implementării cât mai corecte a prezentului proiect a fost creată o schemă logică software a sistemului pentru a avea un tablou complet asupra funcțiilor ce trebuiesc implementate, în proiectarea schemei logice s-a ținut cont de studiul efectuat asupra stațiilor meteo și a condițiilor ce trebuiesc să le îndeplinească acestea și anume; să furnizeze date despre temperatură, umiditate, intensitatea luminii, viteza vântului, indicele UV, nivel precipitații, etc, pe lângă aceste funcții au fost adăugate și elemente de informare cum ar fi afișarea datelor pe un display prin simpla apăsare a uni buton de telecomandă.
Etapele software ale aplicației implementate în acest proiect sunt:[18]
Etapa start, aceasta începe din momentul alimentării sistemului
Etapa de inițializare, cuprinde declararea librăriilor folosite, declararea modulelor, declararea variabilelor în cazul nostru temperatura minimă, temperatura maximă, intensitatea luminii, turație ventilator, declararea pinilor, inițializarea modulului de recepție infraroșu și funcția de reset.
Etapa de Setup cuprinde declararea tipurilor de pini Input, Output, inițializarea modulelor: LCD, RTC și a senzorilor utilizați în componența sistemului precum și afișarea mesajului de întâmpinare pe LCD.
Etapa Loop cuprinde funcțiile implementate ce rulează conform parametrilor stabiliți în etapa de inițializare. Aici sunt implementate două funcții care monitorizează continu doi parametri importanți; tensiunea de alimentare, deoarece stația meteo este alimentată solar această funcție monitorizează permanent tensiunea de alimentare a sistemului iar dacă tensiunea scade sub nivelul setat la inițializare aprinde LED-ul de avertizare, a doua funcție implementată este aceea de monitorizare a temperaturii sistemului, când temperatura sistemului depășește pragul stabilit la inițializare pornește ventilatorul sitemului și se aprinde LED-ul de control ce indică funcționarea ventilatorului.
În figura nr.IV.1 este prezentată schema logică a software-ului implementat în acest proiect, unde putem vedea etapele enumerate anterior; START pentru alimentarea sistemului, void setup() pentru inițializare și void loop() rularea funcțiilor implementate în buclă.
Figura IV.1. Schema logică a sistemului software
IV.3. Implementarea software
Pentru partea de programare a fost utilizat sotware-ul Arduino IDE, programul fiind structurat în concordanță cu mediul de programare utilizat și începe cu includerea librăriilor, definirea pinilor utilizați, variabile și constante pentru apelarea diverselor funcții implementate.
IV.3.1. Inițializarea
Pentru ca aplicația să funcționeze este necesară includerea în program a librăriilor pentru modulele utilizate cum ar fi: librăria pentru LCD, librăria pentru modulul RTC, librăria pentru modulul infraroșu, libraria pentru senzorul DHT11, librăria pentru senzorul TMP102, librăria pentru senzorul BMP280 librăria pentru interfata serială. Definirea pinilor pentru senzorul de temperatură și umiditate, senzorul de lumină, senzor nivel apă, modul recepție infraroșu, LED-uri avertizare, senzor nivel tensiune, pentru ventilator, declararea variabilelor și a constantelor folosite, setarea adreselor pentru LCD și senzori.
IV.3.2. Etapa Setup()
Această etapă rulează o singură dată la initializare și în cadrul ei se declară tipul pinilor Output sau Input, se inițializează modulele, RTC unde poate fi reglată data și ora, LCD, BMP280, comunicarea serială și modul de recepție infraroșu.
IV.3.3 Etapa Loop()
În etapa Loop toate subprogramele create rulează în bucla infinită și apelează pe rând subrutinele de citire a senzorilor folosiți în aplicație, afișând mai apoi valorile pe display în momentul solicitării acestora prin subprogramul de comandă ce utilizează modulul de recepție infraroșu. După ce toate valorile sunt recepționate, programul trece la implementarea structurii logice, asftel în funcție de valorile apărute se iau deciziile necesare, în cazul subprogramului de monitorizare a temperaturii sistemului dacă temperatura depășește limita setată pornește ventilatorul și aprinde LED-ul, la fel și în cazul subprogramului de monitorizare a tensiunii de alimentare, dacă tensiunea este mai mică decât cea setată aprinde LED-ul de avertizare.
Subprogramele controlează funcționarea corectă a sistemelor implementate în cadrul acestui proiect.
IV.3.3.1. Subprogramul de monitorizare a temperaturii sistemului
În subprogramul double sensorRead(void) se citește senzorul de temperatură mai apoi se compară variabila temperatureMax cu temperatura citită, dacă temperatura este mai mare se acționează instalația de ventilație a sistemului în același timp se compară valoarea citită și cu variabila temperatureMin, dacă temperatura este mai mică decât temperatureMin oprește instalația de ventilație, în plus se pot afișa valorile pe LCD la cerere. În figura figura nr.IV.2 este prezentată schema logică a subprogramului de monitorizare a temperaturii sistemului.
Figura IV.2. Schema logică subprogram monitorizare temperatură
IV.3.3.2. Subprogramul de monitorizare a tensiunii de alimentare
Subprogramul începe cu citirea senzorului de tensiune mai apoi implementează algoritmul logic al programului, deoarece citirea se face pe intrarea analogică prima dată se realizează conversia valorilor din analogic la digital după care se compară cu valoarea prestabilită, dacă valoarea citită este mai mică decât cea stabilită se active LED-ul de avertizare, iar dacă valoarea citită este mai mare se oprește LED-ul, în plus se pot afișa valorile pe LCD la cerere. În figura figura nr.IV.3 este prezentată schema logică a subprogramului de monitorizare a tensiunii de alimentare.
Figura IV.3. Schema logică subprogram monitorizare tensiune alimentare
IV.3.3.3. Subprogramul de comandă pentru afișarea datelor pe LCD
Cu ajutorul acestui subprogram se pot afișa datele pe LCD utilizând telecomanda cu infraroșu, după inițializarea modului infraroșu se așteaptă comenzile utilizatorului, dacă modulul infraroșu primește comenzi se vor afișa datele solicitate pe display în caz contrar se revine în bucla principală așteptând o nouă comandă. În figura figura nr.IV.4 este prezentată schema logică a subprogramului de comandă pentru afișarea datelor.
Figura IV.4. Schema logică subprogram comandă afișare date
IV.4.Diagrama de secvență a aplicației
După alimentarea cu tensiune a microcontrolerului se execută în primul rând funcția de inițializare setup (), după executarea acestei funcții se intră în bucla principală unde se execută fără oprire următoarele funcții; apelarea de citire a senzorilor și apelarea subprogramele enumerate anterior în acest capitol, ultima funcție apelată este funcția de comandă a afișării datelor, dacă modulul infraroșu primește date atunci în funcție de informația solicitată activează afișarea datelor pe LCD, dacă modulul nu recepționează date atunci bucla se reaia de la început. Figura nr.IV.5.
Figura IV.5. Diagrama de secvență a aplicației
Capitolul V
IMPLEMENTAREA ȘI TESTAREA COMPONENTELOR DIN CADRUL SISTEMULUI
Implementarea și testarea componentelor hardware cât și a aplicațiilor utilizate în cadrul sistemului a fost realizată în două etape; în prima etapă s-a simulat în mediul virtual funcționarea fiecărui modul și aplicații ce urmau a fi implementate pentru a putea detecta și remedia mai ușor eventualele erori apărute. Simularea și testarea fiind realizate cu ajutorul software-ului “Proteus” prin intermediul căruia am realizat și proiectarea hardware.
În cea de-a doua etapă după finalizarea testărilor virtuale s-a început implementarea fizică a componentelor și interconectarea lor în cadrul sistemului, aceasta s-a realizat tot etapizat urmărind și testând în timp real fiecare modul și circuit implementat.[20]
Construcția proiectului s-a realizat modular urmărind în general schema bloc a sistemului care conține următoarele blocuri(module):
Modulul sau blocul de alimentare
Modulul sau blocul de achiziție al datelor (în principiu senzori)
Modulul sau blocul de procesare a datelor (interfațarea cu µC Arduino UNO)
Modulul de comandă și control (transmisie și recepție IR)
Modulul de afișarea a datelor solicitate (display LCD)
V.1. Implementarea și testarea modulului (blocului) de alimentare
Utilizând schema prezentată în figura nr.V.1. a fost implementată și testată partea de alimentare a sistemului ce utilizează energia solară, testele au avut ca scop verificarea autonomiei acumulatorului și de a testa panourile fotovoltaice în privința furnizării energiei necesare funcționării stației și încărcării acumulatorului.[20]
Pentru a monitoriza încontinuu tensiunea de alimentare s-a utilizat și o aplicație în cadrul proiectului ce monitorizează și afișează la cerere pe LCD tensiunea de alimentare, figura nr.V.2, totodată având și un LED de avertizare în cazul în care tensiunea din circuit este critică.
Acest modul este autonom el furnizând cu ajutorul componentelor și a panourilor solare o tensiune de 9V DC utilizată la alimentarea microcontrolerului, tensiunea măsurată pe circuit este constantă și are valoarea de 5V DC fiind controlată de microcontroler.
Figura V.1. Circuitul de alimentare solar Figura V.2. Afișarea tensiunii de alimentare
V.2. Implementarea și testarea modulului pentru achiziția datelor (senzori)
În această etapă au fost implementați și testați toți senzorii utilizați în acest proiect, testarea primară s-a făcut în mediul virtual per ansamblu simulând diverse condiții meteo prin ajustarea parametrilor monitorizați, figura nr.V.3, iar după efectuarea testelor virtuale s-a trecut la următoarea etapă cea de testare în mod real a componentelor utilizate după montarea lor pe stația meteo, au fost urmărite eventualele neconcordanțe între mediul virtual și cel real cât și apariția eventualelor erori pe perioada funcționării, figura nr.V.4.
Figura V.3. Simulare achiziție date senzori
Figura V.4. Testarea senzorilor după implementare
V.3. Implementarea și testarea modulului de procesare a datelor (µC Arduino UNO)
În această etapă după montarea echipamentelor și realizarea conexiunilor prezentate în figura nr.V.5, s-a testat efectiv funcționarea microcontrolerului și a programului implementat pentru a vedea dacă simulările efectuate în mediul virtual coincid cu cele reale.
Rezultatul testelor poate fi observat în figura nr.V.4 prezentată anterior și confirmă faptul că atât implementarea hardware cât și cea software a fost realizată cu succes conform cerințelor stabilite în primul capitol.
Figura V.5. Finalizarea conexiunilor în vederea testării în timp real
V.4. Implementarea și testarea modulului de comandă (transmisie și recepție IR)
Am ales această variantă de comandă și control a sistemului pentru a facilita accesul la informație cât mai ușor alocând butonelor unei telecomenzi obișnuite diverse funcții, în general aceasta fiind utilizată pentru afișarea datelor pe display.
Testarea s-a realizat prin îcercări repetate utilizând un program de decodare a telecomenzi oferit de platforma software “Arduino IDE” pentru a obține codurilor necesare implementării în programul stației meteo a funcțiilor dorite.[18]
În figura nr.V.6 este prezentată modalitatea prin care a fost decodată telecomanda utilizată și se pot vedea codurile generate pe monitorul serial al interfeței arduino IDE, iar în figura nr.V.7 se testează efectiv funcționarea telecomenzii în cadrul sistemului.
Figura V.6. Decodarea telecomenzi utilizate în cadrul proiectului
Figura V.7. Testarea telecomenzii
V.5. Implementarea și testarea modulului pentru afișarea datelor solicitate
Pentru implementarea modulului de afișare a datelor a fost aleasă varianta optimă ținându-se cont și de numărul de conexiuni limitate oferite de microcontrolerul utilizat în acest proiect, deoarece în cadrul acestui proiect au fost utilizați majoritatea pinilor pentru diverse funcții, am ales să implementez pentru afișarea datelor pe LCD o variantă simplă și economică utilizând un controler pentru display prezentat în figura nr.V.8 care comunică cu microcontrolerul prin protocolul serial I2C, astfel în loc să se conecteze displayul direct utilizând cel puțin 7 pini ai lui “Arduino” sunt utilizați doar 2 pini (SDA și SCL) pentru transmiterea datelor către display. Interfațarea între modul și display (figura nr.V.9) este facilitată de faptul că modulul I2C are 16 pini ce se conectează direct la cele 16 terminale ale LCD-ului conversia fiind realizată automat de către modul.
Testarea s-a realizat utilizând funcțiile programului stației meteo pentru afișarea datelor achiziționate de la senzori, după cum se observă și în figura nr.V.4. datele obținute sunt afișate corect de aici rezultând faptul că, implementarea aleasă în cadrul acestui proiect a fost varianta optimă și corectă.
Figura V.8. Implementarea modulului pentru afișarea datelor
Figura V.9. Interfațarea modulului cu display-ul
Capitolul VI
CONCLUZII
În urma monitorizării constante a valorilor meteo pe un interval de șapte zile (figura nr.VI.1) și după cum rezultă din graficele comparative generate și prezentate în figurile nr. VI.2, VI.3 și VI.4, proiectul își confirmă utilitatea și scopul pentru care a fost creat și anume acela de a oferi date despre starea vremii cât mai precise în zonele rurale sau îndepărtate acolo unde aceste informații nu pot fi accesate în mod convențional (internet, televiziune, telefonie, etc) sau luând în considerare faptul că datele furnizate de stațiile meteo naționale nu coincid întodeauna cu realitatea din zona în care te afli.
Figura VI.1 Tabel monitorizare valori meteo
Figura VI.2 Grafic comparativ temperaturi monitorizare
Figura VI.3 Grafic comparativ presiune atmosferică monitorizată
Figura VI.4 Grafic comparativ umiditate atmosferică monitorizată
După cum se observă în graficele alăturate valorile meteo fluctuează în raport cu locația în care te găsești, măsurătorile au fost efectuate la o distanță de aproximativ 5 Km față de stația meteo locală iar valorile înregistrate nu au coincis cu cele prezentate de site-urile web sau chiar de stația locală, totuși valorile au fost apropiate în acest caz deoarece distanța dintre cele două puncte de observație a fost mică în comparație cu zona monitorizată de către stația meteo locală care oferă predicții despre starea vremii pentru un întreg județ sau chiar pentru o întreagă regiune.
Stația meteo concepută și prezentată în acest proiect se vrea a fi un instrument util, portabil și autonom care să poată veni în ajutorul celor care au nevoie să știe date despre starea vremii pentru locația în care se află în acel moment.
Modul de operare al stației meteo este facil, intuitiv și interactiv iar datorită implementării telecomenzi clasice cu transmisie în spectrul infraroșu utilizată pentru a afișa datele solicitate pe display, fac din aceasta o platformă “user friendly” dedicată tuturor fără a necesita conoștiințe tehnice de specialitate.
Utilizarea energiei solare pentru alimentarea stației meteo îi conferă acesteia portabilitatea și autonomia necesară funcționării pe perioade îndelungate fară a avea nevoie de o sursă de enegie externă contribuind astfel și la protejarea mediului încojurător.
Platforma hardware și software fiabilă, versatilă și recofigurabilă, datorită mediului de dezvoltare și programare facil oferit de “Arduino IDE” și a microcontrolerului “Arduino UNO (Atmega 328p)” utilizat în cadrul acestui proiect, fac din acesta un sistem adaptabil și flexibil facilitând astfel extinderea sau upgradarea lui în funcție de cerințe în orice moment.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: O stație meteo automată (SMA) poate fi definită ca o stație meteorologică la care observațiile despre starea vremii se fac deobicei în mod automat… [303068] (ID: 303068)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
