#include <DHT.h>
#define DHTPIN 15 // Dátový pin z DHT22
#define DHTTYPE DHT22 // Typ senzora
DHT dht(DHTPIN, DHTTYPE);
// 74HC595 piny
#define DATA_PIN 2
#define CLOCK_PIN 0
#define LATCH_PIN 4
void setup() {
Serial.begin(115200);
// Inicializácia DHT senzora
dht.begin();
// Inicializácia výstupov pre 74HC595
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
}
void loop() {
float teplota = dht.readTemperature(); // čítanie teploty v °C
if (isnan(teplota)) {
Serial.println("Chyba pri čítaní z DHT senzora!");
return;
}
Serial.print("Teplota: ");
Serial.print(teplota);
Serial.println(" °C");
// Mapa teploty na LED pozíciu (0-7)
int ledIndex = map(teplota, 20, 40, 0, 7);
if (teplota < 20) ledIndex = -1;
if (teplota > 40) ledIndex = 7;
byte vystup = 0;
if (ledIndex >= 0 && ledIndex <= 7) {
vystup = (1 << ledIndex); // len jedna LED podľa teploty
}
zobrazNaLedkach(vystup);
delay(2000); // čakanie medzi meraniami
}
void zobrazNaLedkach(byte data) {
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, data);
digitalWrite(LATCH_PIN, HIGH);
}