This is an old revision of the document!


Temperature Control

 Student: Ioan Cioraneanu
 Grupa: 332CB

🥀 Indoor Garden System 🌹 -- Buf Sorina Anamaria 331CA

 Student: Buf Sorina Anamaria 
 Grupă: 331CA

Introducere

Masurarea temperaturii si a umiditatii, afisarea lor pe un ecran LCD. Cand tempereatura nu este in parametrii de confort, un ventialor va racori camera sau un rezistor o va incalzi. Camera va fi o incinta mica pentru a se putea observa schimbarile de temperatura.

Descriere generală

Schema bloc

Hardware Design

Lista de piese:

  • Arduino UNO
  • breadboard
  • ventilator
  • heater + bloc aluminiu + radiator
  • placa 4 relee 5V
  • senzor temperatura + umiditate DHT22
  • rezistoare
  • fire

Schema electrica

Software Design

Dupa ce este setata temperatura de referinta circuitul functioneaza idependent.

pre-setup

  • bibliotecile
#include <LiquidCrystal_I2C.h>
#include <DHT_U.h>
  • se defineste senzorul de temperatura si se seteaza referinta(ref_temp)
#define DHTPIN 12
#define DHTTYPE DHT22
#define ref_temp 28.0
  • se initializeaza senzorul si lcd-ul
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 20, 4);
  • se definesc 2 variabile ce vor fi folosite pentru a temporiza heaterul
unsigned long startTime;
unsigned long currentTime;

setup

  • se inițializează senzorul si lcd-ul
dht.begin();
 
lcd.init();                        // initialize the lcd
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("Proiect PM 2022");
lcd.setCursor(0, 3);
lcd.print("Ioan Cioraneanu  WOW");
delay(5000);
  • se seteaza pinii de output
DDRD |= B00000000;
PORTD |= B00000100;                // heater pin 2
PORTD |= B00010000;                // fan pin 4
 
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
  • se salveaza timpul de inceput ce va fi updatat de fiecare data cand heaterul porneste
startTime = millis();

loop

  • se citesc temperatura si umiditatea
float hum = dht.readHumidity();
float temp = dht.readTemperature();
if (isnan(hum) || isnan(temp)) {
  lcd.setCursor(0, 0);
  lcd.print("Read failed!");
  lcd.setCursor(0, 1);
  lcd.print("Please reset");
  return;
}
  • se afiseaza temperatura, umiditatea si temperatura de referinta
lcd.setCursor(0,0); 
lcd.print("Tmp:  Hum:  REF_TMP:");
lcd.setCursor(0,1);
lcd.print(temp);
lcd.setCursor(6,1);
lcd.print(hum);
lcd.setCursor(13, 1);
lcd.print(ref_temp);
  • daca temperatura este mai mare se porneste ventilatorul
if (temp > ref_temp) {
  PORTD &= B11101111;
}
else {
  PORTD |= B00010000;
}
  • daca temperatura este mai mica si au trecut 10 secunde de la ultima alimentare se porneste incalzitorul
currentTime = millis();
 
if (temp < ref_temp && currentTime - startTime > 10000) {
  PORTD &= B11111011;               // start the heater
  delay(500);                       // keep the heater on for 0.5 seconds
  startTime = millis();             // measure the time to pause the heater
  PORTD |= B00000100;               // stop the heater
 
}

Bibliotecile

  • DHT.h ⇒ folosirea senzorului DHT22 pentru înregistrarea temperaturii și umidității
  • LiquidCrystal_I2C.h ⇒ folosirea display-ului LCD cu modul I2C

Mediu de Dezvoltare

Mediul de dezvoltare folosit în realizarea proiectului: Arduino IDE.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

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

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/cristip/temperaturecontrol.1654087391.txt.gz · Last modified: 2022/06/01 15:43 by ioan.cioraneanu
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