Calculare indice de confort termic cu senzor DHT

 Autor:   Publicat pe:   Actualizat pe:  2019-06-16T10:57:48Z

Folosind o placă de dezvoltare Arduino, un afișaj și un senzor digital de temperatură și umiditate DHT11 sau DHT22 poți calcula indicele de confort termic (sau indicele temperatură-umezeală) și temperatura resimțită.

Indicele de confort termic (ICT) sau indicele temperatură umezeală (ITU) este un parametru strâns legat de confortul termic. Indicele coroborează temperatura aerului cu umiditatea relativă, utilizând o formulă ce va fi descrisă în continuare. Pragul critic, peste care apare disconfortul, este considerat 80 de unități. Relevanța acestui indice este cel puțin discutabilă, deoarece chiar într-o lună considerată normală din punct de vedere meteorologic, toate zilele se pot afla peste pragul de alertă (65 unități). Formula de calcul a indexului poate fi găsită în articolul [PDF] Thermal Comfort (E. Teodoreanu, I. Bunescu).

După cum îi spune și numele, pentru calcularea ITU sunt necesare temperatura și umiditatea relativă. Măsurarea lor este chiar ușoară folosind senzori digitali de tipul DHT11, DHT22, SHT11, AM2302. Acești senzori măsoară atât temperatura cât și umiditatea, pe care le comunică digital unui microprocesor. Nu necesită calibrare, dar nici acuratețea nu este totdeauna cea mai bună. Se recomandă un senzor DHT22/AM2302 în locul unui DHT11. De asemenea, Bosch produce senzorul BME280 care costă ceva mai mult, dar măsoară inclusiv presiunea atmosferică. Și acesta poate fi folosit pentru calcularea ITU, cu mențiunea că este un dispozitiv care funcționează la 3,3 V, nu mai mult.

Calculare indice de confort termic cu senzor DHT

Montajul cu senzor DHT22 pe placă de test

Pentru calcularea și afișarea indicelui am folosit o placă de dezvoltare Arduino. I-am conectat un afișaj LCD cu 2 rânduri de 16 caractere și câteva LED-uri. Dacă nu ai un afișaj, valorile măsurate pot fi trimise pe portul serial (USB) către computer. Poți extinde acest proiect, adăugând un ceas RTC și un card SD pentru înregistrarea variațiilor temperaturii și umidității pe perioade mai mari de timp. Sau poți înlocui placa de dezvoltare cu una cu conectivitate la rețea (internet).

Schema calculator indice temperatura umezeala cu Arduino si DHT22

Schema de conectare a modulelor la placa de dezvoltare

LCD-ul este conectat la placa de dezvoltare prin 4 fire de date (D4-D7) și 2 semnale de control (E, RS). Un semireglabil este necesar pentru setarea contrastului și un rezistor de 220...470 ohmi este înseriat cu LED-ul ce asigură iluminarea fundalului. Senzorul se alimentează la 5 V, iar pinul de date se conectează la 5 V printr-un rezistor de câțiva kilo-ohmi. Acest rezistor este deja montat dacă folosești un senzor amplasat pe o plăcuță, cum se găsesc prin magazine.

Formula de calcul este următoarea (după E. Teodoreanu, I. Bunescu):

ITU = (T * 1,8 + 32) - (0,55 - 0,0055 * H)[(T * 1,8 + 32) - 58]

unde T este temperatura în grade Celsius și H este umiditatea relativă (%). Indicele folosește de fapt temperatura exprimată în grade Fahrenheit (T * 1,8 + 32 transformă temperatura din grade Celsius în grade Fahrenheit).

Avem nevoie, deci, de valorile temperaturii și umidității de la senzor. Vom folosi bibliotecile oferite de Adafruit: Adafruit Unified Sensor și DHT sensor library. Le poți instala din Arduino IDE, căutându-le în Library Manager Ctrl+Shift+I. Este cel mai simplu mod de a comunica cu senzorul, fie el DHT11 sau DHT22 (AM2302). La începutul schiței, declarăm tipul de senzor și pinul pe care este conectat:

#define PIN_SENZOR     2

DHT senzor(PIN_SENZOR, DHT22);

Dacă folosești DHT11, înlocuiește al doilea parametru al declarației cu DHT11. Dacă folosești BME280, trebuie să folosești altă bibliotecă, dar și un convertor de nivel de la 5 V la 3,3 V.

Este foarte simplu să calculezi indicele temperatură-umezeală:

  t = senzor.readTemperature();
  h = senzor.readHumidity();
  float i = (t * 1.8 + 32) - (0.55 - 0.0055 * h) * ((t * 1.8 + 32) - 58);
  itu = int(i);

Pe lângă afișaj, proiectul conține și trei LED-uri care indică starea de confort termic. LED-ul albastru este aprins dacă ITU este mai mic sau egal cu 65 și semnifică starea de confort. Când ITU depășește 65, dar este mai mic sau egal cu 79, LED-ul galben se aprinde, indicând starea de alertă. Peste 80 de unități, apare starea de disconfort și LED-ul roșu se aprinde. Acest LED este conectat în schemă la pinul 13. Pe acest pin se află și LED-ul de pe placă. La resetarea plăcii și la conectarea prin USB, aceste LED-uri (cel de pe placă și cel roșu) se vor aprinde intermitent.

Un alt parametru folosit pentru evaluarea confortului termic este temperatura aparentă. Este calculat tot din temperatura măsurată și umiditatea relativă. Această „temperatură” este afișată pe multe aplicații pentru telefoane dar și pe site-uri meteo ca temperatura resimțită („se simte ca”). Formula de calcul este ceva mai complicată, dar nu trebuie să ne facem griji. Biblioteca Adafruit pentru senzorii DHT implementează calculul temperaturii aparente în funcția float computeHeatIndex(float temperature, float percentHumidity, bool isFahrenheit=true);. Schița afișează intermitent, pe rândul al doilea, temperatura și umiditatea măsurate, apoi temperatura aparentă calculată conform regresiei Rothfusz și ecuației Steadman.

Resurse

Niciun comentariu :

Trimiteți un comentariu

Vă recomandăm să citiți regulamentul comentariilor înainte de a scrie un comentariu.