This is an old revision of the document!
Prezentarea pe scurt a proiectului:
Scopul proiectului meu este de a realiza un sistem de detecție a ploii, care poate memora cantitatea de apă care se află pe senzorul de precipitații la un interval de timp și care poate afișa cantitatea curentă detectată.
Atunci când se apasă un buton, se va face comutarea de la valoarea curentă a precipitațiilor la valorile salvate în memorie.
Schema bloc a proiectului:
Sistemul, la pornirea inițială, va afișa cantitatea de precipitații indicată de senzor la momentul curent de timp.
La apăsarea unui buton(B1), se va comuta la afișarea cantităților stocate în memorie împreună cu ziua și ora acelei înregistrări. Se poate naviga prin înregistrări cu două butoane(înainte(B2) și înapoi(B3)).
Când se dorește revenirea la valorile curent citite, se apasă, din nou, pe butonul (B1).
Lista de componente pe care le voi utiliza:
Schema electrică:
Pinii folosiți în realizarea cablajului sunt următorii:
Pentru realizarea componentei software am folosit mediul de dezvoltare Arduino IDE.
Bibliotecile terțe utilizate sunt:
virtuabotixRTC.h
pentru setarea și preluarea informațiilor de la modulul RTC DS1302.pitches.h
pentru o serie de note folosite în sunetul redat pe Buzzer.Execuția codului este una destul de clară care urmează pașii:
virtualbotixRTC myRTC(6, 7, 2)
și LiquidCrystal_I2C lcd(0x27, 16, 2)
de care va depinde interacțiunea cu modulul RTC și cu ecranul lcd.loop
se verifică dacă ar trebui să înceapă melodia(dacă ultimul status a fost “Heavy Rain” sau “Extreme Rain”), respectiv dacă ar trebui sp continue melodia. La apăsarea butonului B1
, se comută din modul Timp Real(Live Feed)
în modul Memorie(Memory)
sau invers și se setează variabilele necesare fiecărui mod. La comutare între moduri se va afișa, pentru o secundă “Read From Memory”(comutare mod Timp Real → Memorie) sau “Live Feed”(comutare mod Memorie → Timp Real).DD/MM HH:MM RAIN_STATUS
în cazul modului Timp Real
, fie se vor afișa informații salvate în memorie prin care se poate naviga folosind butonul B2
pentru a merge înainte și butonul B3
pentru a merge înapoi în cazul modului Memorie
.void readAndDisplayData()
) se face folosind poziția de fișier. Această parte este ușurată datorită formatului ușor de parsat în care stochez informația(“DD/MM HH:MM,RAIN_QTY RAIN_STATUS,”).char *getRainCategory(int intesity)
), preiau informația de la senzorul de ploaie pe portul analog A0
și o mapez, pe rând, în intervale de intensitate.Surse folosite:
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.