This is an old revision of the document!
Ceas digital pentru masurarea temperaturii si umiditatii
Introducere
Am decis programarea unui ceas digital cu alarma pentru a monitoriza temperatura si umiditatea din aer folosind un modul pentru sincronizare si afisand pe o pagina simpla web.
Descriere generală
Funcționalitate
Routerul prin intermediul ethernetului shield permite buna functionare a senzorului, deoarece pot aparea anumite incosistente. Datele pentru masurarea temperaturii si a umiditatii sunt preluate de un senzor DHT11. Ceasul isi mentine ritmul prin intermediul modulului, dar exista si optiunea prin sincronizare folosind protocolul NTP.
Schemă bloc
Hardware Design
Piesele utilizate pentru realizarea proiectului sunt urmatoarele:
Componente | Cantitate |
Arduino Uno | 1 |
Senzor umiditate temperatura | 1 |
Breadboard | 1 |
Real-Time Clock Module(RTC) | 1 |
Display 1602 interfata I2C | 1 |
Ethernet Shield | 1 |
Fire de legatura | |
Shieldul Ethernet a fost lipit deasupra placutei Arduino UNO, iar modulul RTC, precum si senzorul de temperatura si umiditate au fost amplasate pe breadboard.
Datele preluate de la senzor sunt apoi afisate in afara bradboardului, pe ecranul displayului, afisandu-se de asemenea si ziua cu ora.
Software Design
Descrierea codului aplicaţiei (firmware):
Din aceste biblioteci am folosit functii predefinite (de exemplu, primele doua mentionate sunt pentru afisarea pe ecranul displayului cu interfata I2C, biblioteca DHT pentru preluarea, respectiv prelucrarea datelor de la senzor. Ethernet.h este biblioteca folosita pentru a sincroniza datele.)
In plus, setez pinii pentru temperatura, umiditate iar apoi este implementata o functie separata de a trimite pachete de date primite de la senzor, utile pentru a afisa atat pe ecranul displayului, cat si pe pagina web locala care isi da refresh automat periodic. De asemenea, implementarea paginii web locale este realizata in cadrul functiei de loop, facandu-se verificarile necesare.
As mentiona aici faptul ca daca nu conectam la internet prin cablu, sau nu avem o retea locala proprie, datele primite de la senzor sunt pierdute si nu se mai poate afisa astfel nimic.
Rezultate Obţinute
Concluzii
Consider ca a fost un proiect interesant, fiind prima materie la care am putut combina atat partea software, cat si cea hardware, putand astfel sa aplicam conceptele de la curs, respectiv laborator.
Fiind primul proiect de acest fel, am realizat un ceas digital minimalist ce prelucreaza datele de le senzor, bazandu-se pe protocolul NTP pentru sincronzizare, apoi afisandu-le pe ecranul LCD, respectiv pe pagina web destul de simpla (realizata folosind pur si simplu basic HTML) ce se actualizeaza automat.
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
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*.
Jurnal
Fiind primul proiect de acest fel, am ales implementarea separata si testarea functionalitatii fiecarei piese separat.
Astfel, prima data am asezat displayul LCD pe board si am testat buna functionare a acestuia. Apoi, asemanator am procedat si cu celelalte piese(mai intai senzorul, apoi adugarea RTC ului).
Desi initial am dorit adaugarea unui modul bluetooth si realizarea unei aplicatii android minimaliste, am considerat ca este mai interesant sa folosesc protocolul NTP pentru prelucrarea si sincronizarea datelor, deoarece in acest fel am putut aplica mai multe concepte dobandite la materii precum PC, respectiv RL.
Cateva din problemele intalnite au fost:
Pentru a afisa datele, m-am folosit de Ethernet, avand astfel nevoie de internet prin cablu(datorita Shieldului Etherner utilizat). In lipsa internetului prin cablu, pachetele cu date se pierd, neputand astfel sa fie afisate. Solutia gasita a fost de a configura un router pentru a avea o retea locala, insa prin aceasta varianta, in unele situatii data si ora nu sunt la fel de precise precum folosirea internetului prin cablu
O alta problema a fost la afisarea paginii web care a trebuit sa fie de asemenea in concordanta cu routerul propriu configurat pentru a putea fi vazuta
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe *Resurse Software* şi *Resurse Hardware*.
Export to PDF