TermicTracker

Autor

Introducere

Proiectul vine in rezolvarea unei probleme recurenta in cadrul caselor care sunt incalzite printr-o centrala termica pe lemne. Proiectul meu isi propune sa trackuiasca in permanenta temperatura apei din interiorul cazanului unde este incalzita apa.

Problema principala este ca daca temperatura apei nu este monitorizata, iar pompele sufera vreo defectiune (eg: li se intrerupe alimentarea, se defecteaza), apa va continua sa creasca in temperatura si daca focul nu este oprit, sistemul poate exploda. Informatiile furnizate de placuta pot functiona drept alarma in cazul unei defectiuni.

Proiectul este o reprezentare in miniatura a unei astfel de situatii, controland pompe, buzzer, led si transmitand informatia pe un server web.

Descriere generala

Schema bloc:

Hardware Design

Componente Hardware

  1. Arduino Uno
  2. Pompa Apa 3-6V
  3. Senzor Temperatura Rezistent la Apa DS18B20
  4. Ecran LCD 1602 - Chip AIP31066
  5. I2C Converter
  6. Buzzer Pasiv
  7. LED RGB
  8. Modul Wireless ESP8266
  9. Rezistente (100ohm, 4.7k ohm, 2k ohm 1k ohm)
  10. Breadboard
  11. Fire tata-tata, mama-tata

Schema hardware

Sonda de temperatura incapsuleaza modulul DS18B20.

Amplasarea legaturilor si a pieselor este aproximativa cu montajul real, dar pot exista diferente!

  • In schema modulul ESP8266 din schema este setat pentru contextul de upload a programului, iar firul de la reset este deconectat.
  • Buzzerul din schema este diferit fata de cel din realitate, dar nu necesita o modificare a proiectului, nefiind un detaliu important.
  • Pompa de apa nu este alimentata la capacitatea sa maxima.
  • Am folosit un divizor de tensiune pentru comunicarea cu ESP8266 pe RX, initial nu am avut in vedere faptul ca RX are un output de ~5V, iar asta poate conduce la o viata mai scurta pentru modulul wireless (se incalzea destul de puternic).
  • Pompa de apa necesita cateodata un impuls mecanic (sa fie miscata) pentru a declansa. Comportamentul acesta nedefinit il consider o problema a piesei.
  • Citirea datelor de la senzorul de temperatura se face avand in paralel o rezistenta de 4.7k Ohm
  • LED-ul RGB este conectat doar pentru RED si BLUE (+ ground), nefolosind in logica aplicatiei alte culori / combinatii de culori.
  • Culorile firelor din schema respecta intocmai proiectul real, pozitia acestora nu este precisa din motive de lizibilitate pentru o schema mai clean.

Software Design

  • Pe arduino ruleaza un cod software care controleaza principalele elemente ale proiectului.
  • Pe ESP8266 a fost incarcat un cod pentru a trimite http post requesturi catre o ruta web.
  • Pentru a testa proiectul am stabilit temperatura limita pentru declansarea starii de alerta ca fiind 27 grade celsius
  • Cat timp temperatura este sub 27 grade C, led-ul este albastru, pompa si buzzerul nu functioneaza. Dupa ce este depasita aceasta temperatura, ledul se face rosu, buzzerul incepe sa emita sunete, iar pompa functioneaza.
  • Modulul ESP8266 transmite mesaje pe parcursul rularii catre un webhook site.
  • Pentru ESP8266 se foloseste boardul Generic ESP8266 Module din ESP8266 BOARDS (3.0.0) si libraria <ESP8266HTTPClient.h> pentru a trimite requesturi.
  • Citirea datelor de la senzorul de temperatura este facilitata de <DallasTemperature.h>, iar pentru ecranul LCD s-a folosit biblioteca <LiquidCrystal_I2C.h>
  • Pentru comunicatia I2C se foloseste <Wire.h>.

Rezultate obtinute

Concluzii

A fost interesant sa termin un proiect IoT, principalele dificultati intalnite au fost:

  • Compatibilitate piese / alte componente care usureaza (I2C pentru LCD), nu ma gandeam ca usureaza atat de mult munca, initial a fost complicat. De asemenea, acum consider ca o placa NodeMCU mi-ar fi facut viata mai usoara.,
  • Comanda pieselor - primul modul esp8266 care mi-a fost livrat a fost un serial port pentru comunicarea cu o alta placuta, eu aveam nevoie de un wifi, am fost nevoit sa cumpar altul.
  • Lipsa echipament - la un urmator proiect mi-as cumpara ampermetru, voltmetru si posibil un oscilometru.
  • Imbinarea firelor, a componentelor si aranjarea lor. Dintr-un punct proiectul meu s-a aglomerat cu foarte multe fire si a trebuit sa reciclez, folosind sficul, cutterul si banda de izolier

Jurnal

  1. Ajung piesele comandate, testez fiecare piesa in parte
  2. Modulul esp8266 wifi a fost confundat cu un serial port, nu-l pot utiliza, comand altul
  3. Pentru a economisi fire, neavand suficiente mama-tata, lipesc folosind banda adeziva si un sfic/bricheta firele.
  4. Modulul LCD se dovedeste foarte incomod fara I2C
  5. Cumpar un I2C pentru a reduce din numarul de porturi necesare. Este nevoie de lipire cu cositor.
  6. Observ ca ESP8266 se incinge foarte tare, apoi nu mai functioneaza, citesc despre problema, in datasheet observ ca alimentarea la RX trebuie sa fie 3.3V, iar eu am 5V (Arduino UNO), creez un divizor de tensiune, degeaba, nu mai functioneaza (a transmis si el cateva http post-uri :-( )

Bibliografie & Resurse

pm/prj2021/cghenea/termictracker.txt · Last modified: 2021/06/02 13:58 by victor.florea2805
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