#include "DHT.h"
#include <MD_MAX72xx.h>
DHT dht(2, 22);
MD_MAX72XX mx = MD_MAX72XX(MD_MAX72XX::PAROLA_HW, 10, 4);
bool x = true;
bool u = true;
void setup() {
mx.begin();
mx.clear();
dht.begin();
Serial.begin(9600);
pinMode(4, OUTPUT);
pinMode(5, INPUT);
digitalWrite(5, HIGH);
Tempe();
}
void loop() {
if(digitalRead(5) == LOW && x == true && u == true )
{
clear();
Vlhkst();
x = false;
}
if(digitalRead(5) == HIGH && x == false && u == true)
{
x = true;
u = false;
}
if(digitalRead(5) == LOW && x == true && u == false)
{
clear();
Tempe();
x = false;
}
if(digitalRead(5) == HIGH && x == false && u == false)
{
x = true;
u = true;
}
}
void clear(){
for(int i = 0; i<32; i++){
mx.setChar(i, ' ');
}
}
void Vlhkst(){
float V = dht.readHumidity();
char VH[10] = {0};
int V_int = (int)V;
int V_fra = (int)((V - V_int) * 100);
if (V_fra < 0) V_fra = -V_fra;
sprintf(VH, "%d.%1d", V_int, V_fra);
Serial.print("Vlhkost: ");
Serial.println(VH);
mx.setChar(23, VH[0]);
mx.setChar(16, VH[1]);
mx.setChar(9, VH[2]);
mx.setChar(5, VH[3]);
mx.setChar(30, 'V');
}
void Tempe()
{
float T = dht.readTemperature();
char TP[10] = {0};
int T_int = (int)T;
int T_fra = (int)((T - T_int) * 100);
if (T_fra < 0) T_fra = -T_fra;
sprintf(TP, "%d.%1d", T_int, T_fra);
Serial.print("Teplota: ");
Serial.println(TP);
mx.setChar(23, TP[0]);
mx.setChar(16, TP[1]);
mx.setChar(9, TP[2]);
mx.setChar(5, TP[3]);
mx.setChar(30, 'T');
if (T == 10.0){
digitalWrite(4, HIGH);
}
else {
digitalWrite(4, LOW);
}
}