Termostat

Autor

Introducere

Acest proiect urmărește o implementare minimală a unui termostat. Acesta va afisa data si ora exacta (cu ajutorul unui modul RTC), temperatura si umiditatea (cu ajutorul modulului DHT22) pe un ecran LCD. De asemenea, voi implementa si un ventilator (motor DC + L293D). Voi implementa doua programe, de răcire și încălzire. Cu ajutorul a două potențiometre voi seta temperaturile de referință pentru cele 2 programe. Astfel, dacă temperatura din încăpere este mai mare decât temperatura de referință pentru modul de răcire sau mai mică decât similiara pentru modul de încălzire. De asemenea, pentru confirmarea unei noi setari, voi semnaliza aceasta cu un sunet specific al unui buzzer, dar și cu câte un LED pentru fiecare program (roșu și albastru).

Descriere generală

Schema bloc

Funcționalitate

Circuitul este format din placuta arduino care preia date de la senzorul de temperatura si umiditate, le prelucrează și apoi le afisează pe un ecran LCD. De asemenea, o sa folosesc si un modul RTC care va afisa data si ora pe ecran. Cele două potențiometre au rolul de a seta temperaturile de referință la care să pornească ventilatorul. Astfel, poti sa setezi o temperatura la care acest ventilator sa porneasca automat, ori pe modul de răcire și încălzire.

Pentru ventilator voi utiliza un motoras DC simplu, pe care o sa il folosesc cu ajutorul unui driver L293D. In momentul pornirii, acesta va invarti o elice ca sa simuleze procesul de ventilator. De asemenea, pentru semnalizarea momentul de start al ventilatorului am 2 LED-uri (albastru pentru programul de răcire și roșu pentru programul de încălzire), dar și un buzzer care produce un sunet specific (GoT related :D).

Hardware Design

Listă de piese

  • Arduino Uno
  • LCD 2004 cu I2C
  • Senzor de temperatură si umididtate DHT22
  • Motor DC + Elice
  • Driver L293D
  • Module RTC DS3231
  • Buzzer
  • Fire Tata-Tata
  • Breadboard x2
  • Rezistențe
  • 2x LED
  • 2x Potențiometru

Schemă electrică

Software Design

Mediul de dezvoltare

  • Arduino IDE - cod
  • Fritzing - schema electrică
  • Draw.io - schema bloc

Biblioteci

  • pitches.h - note pentru buzzer
  • LiquidCrystal_I2C.h - ecran LCD
  • DHT.h - temperatură + umiditate

Funcții

  • lcd() - inițializarea ecranului LCD
    1. setCursor()
    2. print()
  • dht() - inițializarea modulului DHT22
    1. readHumidity()
    2. readTemperature()
  • rtc() - inițializarea modulului RTC
    1. now() - preiau momentul în timp
  • map() - mapez valorile unui potențiometru între 17 și 40
  • tone() - redarea sunetului pe buzzer

Notă: Toată logica programului se află funcția loop(), în timp ce în setup() doar inițializez toate modulele și pinii

Rezultate Obţinute

Concluzii

Consider că acest proiect m-a ajutat să mă familiarizeze cu Arduino și perifericele necesare, într-un mod plăcut.

Jurnal

  • 24 Aprilie : alegerea temei proiectului
  • 10 Mai : finalizare schema bloc, introducere si lista de piese
  • 15 Mai : achiziționare piese
  • 18 Mai : schemă electrică
  • 27 Mai : conectare modul DHT22 și ecran LCD
  • 29 Mai : conectare modul RTC
  • 30 Mai : conectare LED-uri, buzzer și potențiometre + retușuri afișare pe LCD
  • 31 Mai : conectare motoraș
  • 1 Iunie : finalizarea proietului
  • 2 Iunie : finalizare wiki + demo

Bibliografie/Resurse

pm/prj2021/agrigore/2048.txt · Last modified: 2021/06/03 14:11 by vlad.sandu0308
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