Ceas digital pentru masurarea temperaturii si umiditatii

Introducere

Am decis programarea unui ceas digital 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 initiala

Schemă bloc varianta finala

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.

  • Circuitul obtinut folosind Fritzing este urmatoarea:

  • Schema electrica generata folosind Fritzing este urmatoarea:

Software Design

Descrierea codului aplicaţiei (firmware):

  • Mediul de dezvoltare utilizat este IDE-ul propus de Arduino.
  • Am utilizat urmatoarele biblioteci:
    • LiquidCrystal_I2C.h
    • Wire.h
    • DHT.h
    • Ethernet.h

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

Rezultatele obţinute în urma realizării proiectului pot fi vazute in urmatoarele poze:

Iar afisarea pe pagina web care se updateaza automat:

Prezentarea demo se afla accesand linkul urmator:

demo

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.

As mentiona si faptul ca am adus schimbari in proiect fata de cum am planuit initial, de exemplu implementarea prin protocolul NTP in loc de modulul bluetooth si renuntarea la buzzer, butoane).

Download

Arhiva cu fişierele obţinute în urma realizării proiectului este urmatoarea: arhiva

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

Resurse Software:

LCD

RTC

Ethernet Shield

Senzor

Resurse Hardware:

Optimus digital

Export to PDF

pm/prj2022/ncaroi/digital-alarm-for-temperature-and-humidity.txt · Last modified: 2022/05/27 20:45 by ioana.encea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0