Kontrolování teploty v pokoji s Arduino Uno

V tomto projektu vám předvedu, jak lze pomocí jednoduchých součástek kontrolovat teplotu a vlhkost v pokoji a nastavit tak např. svoje topení. Výhodou tohoto projektu je snadné zapojení, skript i rozšiřitelnost. Projekt se dá rozšířit pomocí relé modulů, které by zapínaly nebo vypínaly topení.

Schéma zapojení

Zapojení je velmi jednoduché. Stačí na nepájivé pole zapojit teploměr/vlhkoměr DHT11, 3 ledky a odpory. První pin teploměru zapojíme na 5V Arduina, druhý pin zapojíme na 5. digitální pin na Arduinu a poslední, 4. pin zapojíme na zem Arduina. Dále jednoduše přes odpor zapojíme 3 led diody (červenou, zelenou a modrou) můžete samozřejmě použít i RGB diodu, ale výsledný skript i zapojení by bylo o něco těžší.

Zdrojový kód

Zdrojový kód začíná definováním proměnných s pinem LED diod. Dále se importuje knihovna pro teploměr DHT11 a vytvoří se instance. Ve funkci setup se nejprve nastaví naše LED diody jako výstupní a začne sériová komunikace. Dále se spustí komunikace teploměru/vlhkoměru s arduinem.
V nekonečné smyčce loop se nejdříve vytvoří proměnné teploty a vlhkosti, poté se podmínkou if ošetří případné problémy s komunikací. Pokud se vše povede, vypíše se teplota a vlhkost na sériové lince. To celé se opakuje po 1500 milisekundách znovu.
Poté nastává čas na naše diody. Pomocí podmínek if si nastavíme, kdy se má jaká LED rozsvítit. V mém případě jsem nastavil, že pokud teplota bude větší než 21 stupňů, rozsvítí se červená dioda, pokud bude vlhkost větší než 55 procent, rozsvítí se modrá dioda a pokud bude vše v pořádku, bude svítit dioda zelená. Podmínky si samozřejmě můžete nastavit podle svého. Projekt je vhodný například k regulaci správné teploty a vlhkosti pro spánek. Každý totiž ví, že lépe se spí při nizší teplotě než v přetopeném bytu :-D.

int zelena = A0;
int cervena = A1;
int modra = A2;

#include "DHT.h"
#define typDHT11 DHT11
#define pinDHT 5
DHT mojeDHT(pinDHT, typDHT11);

void setup() {
  pinMode(zelena, OUTPUT);
  pinMode(modra, OUTPUT);
  pinMode(cervena, OUTPUT);

  Serial.begin(9600);
  mojeDHT.begin();
}

void loop() {

  float teplota = mojeDHT.readTemperature();
  float vlhkost = mojeDHT.readHumidity();

  if (isnan(teplota) || isnan(vlhkost)) {
    Serial.println("Chyba při čtení z DHT senzoru!");
  } else {
    Serial.print("Teplota: ");
    Serial.print(teplota);
    Serial.print(" stupnu Celsia, ");
    Serial.print("vlhkost: ");
    Serial.print(vlhkost);
    Serial.println("  %");
  }

  if (teplota > 21) {
    digitalWrite(cervena, HIGH);
  }

  else if (vlhkost > 55) {
    digitalWrite(modra, HIGH);
  }

  else {
    digitalWrite(zelena, HIGH);
    digitalWrite(cervena, LOW);
    digitalWrite(modra, LOW);
  }

  delay(1500);
}

 Ukázka funkce zařízení

Použité součástky a moduly:

Další podobné články

OVLÁDÁNÍ VÍCE RELÉ S NEOPIXEL RGB ARDUINEM

Kamarád mi poprosil o pomoc s tím že v současnosti potřebuje v jednom projektu ovládat čtyři reléové moduly, kdy jeden obsahuje šestnáct relátek které zakoupil v [1] a již má hotovou část zapojení přípravku, s tím že časem by chtěl ovládání z PC „po otestování“, ovládat diody pomocí tabletu nebo chytrého telefonu. Na tento počet ovládání relé je potřeba 64 ovládacích pinů, což ani ARDUINO MEGA 2560 s potřebou dalších vstupů které budou potřeba není možné použít. Po návrzích s posuvnými registry kterých by bylo potřeba osm kusů a složitosti zapojení mi napadlo použít pásek NEOPIXEL  s RGB led diodami kdy na ovládání stačí jeden výstup z ARDUINA. Tak že pro pokusy co a jak půjde použít, jsem použil modul relátek osazený dvěma relátky, modul s MOSFET tranzistorem, Neopixel pásek s osmi RGB led diodami WS2812B, fototranzistor GL5528 a bluetooth JDY-33 pro komunikaci s tabletem chytrým telefonem vše zakoupené v [1]. Napsané programy jsou celkem dva jeden pouze pro ovládání Neopixel s osmi RGB led diodami, druhý pak umožňuje ovládat maximálně 255 RGB led použitých v Neopixel pásku. Oba programy umožňují ovládat libovolnou RGB diodu nebo více RGB led diod na Neopixel pásku včetně barev a dají se upravit dle potřeby. Přípravek může posloužit při vlastních pokusech s RGB LED Neopixel pásky a zároveň doplňuje články v [2]. Ovládání RGB diod je zde řešeno s ARDUINO NANO je možné použít i ARDUINO UNO. Programové ovládání RGB led diod na Neopixel pásku je dle požadavků kamaráda.