This is an old revision of the document!


Ventilator inteligent

Introducere

Deși confortul termic poate avea valori diferite în funcție de preferințele fiecăruia, studiile arată că organismul funcționează cel mai bine în anumite condiții. Astfel, nivelul de umiditate și cel al temperaturii din interior sunt doi factori decisivi care contribuie la obținerea unei stări de spirit pozitive, la o odihnă satisfăcătoare și la un corp sănătos. În interior, temperatura nu trebuie să fie constantă pe tot timpul anului, ci trebuie schimbată odată cu sezonul astfel încât organismul să nu sufere un șoc termic atunci când se trecere de la interior la exterior și invers. Proiectul constă în realizarea unui ventilator inteligent care să gestioneze acești parametri și să ajusteze temperatura din cameră în funcție de preferințele utilizatorului.

Descriere generală

Ventilatorul va începe să funcționeze dacă temperatura din cameră depășește un anumit prag setat de către utilizator. Dacă se depășește acest prag, ventilatorul își mărește sau scade turația în funcție de temperatura din cameră. De asemenea, pe ecranul LCD se vor afișa ora, temperatura și umiditatea. În cazul în care sistemul se supraîncălzește și ia foc, flacăra va fi detectată folosind senzorul pentru flăcări iar buzzerul va scoate un sunet.

Schema bloc

Hardware Design

Listă piese

  • Plăcută Arduino UNO R3 ATMEGA328P
  • Breadboard
  • LCD
  • Potențiometru
  • DC Motor
  • Elice
  • Senzor temperatură și umiditate DHT11
  • Flame sensor KY-026
  • Modul Bluetooth HC-05
  • Modul Joystick cu două axe KY-023
  • Rezistențe 1KΩ
  • Tranzistor NPN 2N2222
  • Diodă
  • Buzzer
  • Fire de legătură

Scheme electrice

Pentru realizarea schemelor am utilizat Fritzing.

Components

Schematic

Software Design

Mediu de dezvoltare

Pentru dezvoltare am folosit ArduinoIDE.

Biblioteci importate

Pentru senzori și ecran LCD am utilizat următoarele biblioteci:

  • #include <LiquidCrystal.h> → pentru ecranul LCD
  • #include “DHT.h” → pentru senzorul de temperatură și umiditate DHT11
  • #include <SoftwareSerial.h> → pentru modulul bluetooth
Surse şi funcţii implementate

În funcția setup() se realizează configurările inițiale:

  • afișare mesaj de început;
  • configurare pini(input, output);
  • inițializare variabile auxiliare;
  • introducere parolă + verificare corectitudine valori introduse;
  • introducere temperatură de referință și oră + verificare corectitudine valori introduse.

Parolă

Pentru a introduce parola putem controla joystick-ul pe direcțiile sus-jos-stânga-dreapta folosind funcțiile auxiliare:

  • moveRight();
  • moveLeft();
  • decrease(position);
  • increase(position).

Verificarea corectitudinii datelor se realizează cu funcția checkPassword().

Temperatura de referință

Pentru setarea temperaturii de referință putem controla joystick-ul pe direcțiile sus-jos-stânga-dreapta folosind funcțiile auxiliare:

- partea întreagă a temperaturii:

  • moveRight_temp_intreg();
  • moveLeft_temp_intreg();
  • decrease_temp_intreg(position);
  • increase_temp_intreg(position).

- partea partea zecimală a temperaturii:

  • moveRight_temp_zecimal();
  • moveLeft_temp_zecimal();
  • decrease_temp_zecimal(position);
  • increase_temp_zecimal(position).

Verificarea corectitudinii se realizează cu ajutorul funcțiilor: check_temp_intreg() și check_temp_zecimal().

Ora curentă

Pentru setarea orei curente, atât pentru oră cât și pentru minute, joystick-ul poate fi controlat pe direcțiile sus-jos.

Pentru setarea orei se folosesc funcțiile:

- pentru primul digit:

  • decrease_hour_first(position);
  • increase_hour_first(position).

- pentru cel de-al doilea digit:

  • decrease_hour_second(position);
  • increase_hour_second(position).

Verificarea corectitudinii datelor se realizează folosind check_hour_first() și check_hour_second().

Pentru minute utilizez funcțiile:

- pentru primul digit:

  • decrease_minute_first(position);
  • increase_minute_first(position).

- pentru cel de-al doilea digit:

  • decrease_minute_second(position);
  • increase_minute_second(position).

Verificarea corectitudinii datelor se realizează folosind: check_min_first() și check_min_second().

Tot în funcția setup() se calculează temperatura de referință ca fiind suma dintre partea întreagă și partea zecimală. Asemănător se calculează și ora.

În funcția loop() are loc citirea temperaturii, a umidității, se incrementează timpul și se fac verificările pentru ventilator(dacă trebuie să pornească sau nu), pentru detecția flăcărilor și se transmit datele prin Bluetooth.

Rezultate Obţinute

Concluzii

Download

Jurnal

  • 21.04.2022 - Alegere temă proiect
  • 28.04.2022 - Creare pagină wiki
  • 05.05.2022 - Achiziționare piese

Bibliografie/Resurse

pm/prj2022/dene/ventilatorinteligent.1653679899.txt.gz · Last modified: 2022/05/27 22:31 by andreea.costache99
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