#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <SPI.h>
#include <DHT.h> //Inclui a biblioteca DHT Sensor Library
//DHT Definitions
#define DHTPIN 22 //Pino digital 2 conectado ao DHT11
#define DHTTYPE DHT22 //DHT22 selecionado
//TFT Definitions
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
//Variáveis
float h=0,t=0,h_0=0,t_0=0; //Temperatura e Umidade atual e lida
int LDR = 14;
DHT dht(DHTPIN, DHTTYPE); //Inicializando o objeto dht do tipo DHT passando como parâmetro o pino (DHTPIN) e o tipo do sensor (DHTTYPE)
void setup() {
Serial.begin(9600);
dht.begin(); //Inicializa o sensor DHT11
tft.begin();
tft.setRotation(0);
tft.fillScreen(ILI9341_WHITE);
analogReadResolution(10);
}
void loop() {
h = dht.readHumidity(); //lê o valor da umidade e armazena na variável h do tipo float (aceita números com casas decimais)
t = dht.readTemperature(); //lê o valor da temperatura e armazena na variável t do tipo float (aceita números com casas decimais)
int H = h;
int T = t;
int L = analogRead(LDR);
L = map(L, 0, 1024, 100, 0);
int b1 = T;
b1 = map(b1, -40, 80, 0, 250);
int b2 = H;
b2 = map(b2, 0, 100, 0, 250);
int b3 = L;
b3 = map(b3, 0, 100, 0, 250);
int i1 = 70 + (250 - b1);
int i2 = 70 + (250 - b2);
int i3 = 70 + (250 - b3);
tft.setTextSize(2); //Tamanho da fonte da letra
tft.setCursor(20, (i1 - 20)); //Posiciona o cursor
tft.setTextColor(ILI9341_RED); //Cor da fonte da letra
tft.print("Tmp"); //Escreve a indicação de Temperatura
tft.setCursor(20, (i1 - 40)); //Posiciona o cursor
tft.setTextColor(ILI9341_RED); //Cor da fonte da letra
tft.print(T);
tft.print("C");
tft.setCursor(100, (i2 - 20)); //Posiciona o cursor
tft.setTextColor(ILI9341_GREEN); //Cor da fonte da letra
tft.print("Umi"); //Escreve a indicação de Umidade
tft.setCursor(100, (i2 - 40)); //Posiciona o cursor
tft.setTextColor(ILI9341_GREEN); //Cor da fonte da letra
tft.print(H);
tft.print("%");
tft.setCursor(180, (i3 - 20)); //Posiciona o cursor
tft.setTextColor(ILI9341_BLUE); //Cor da fonte da letra
tft.print("Lum"); //Escreve a indicação de Umidade
tft.setCursor(180, (i3 - 40)); //Posiciona o cursor
tft.setTextColor(ILI9341_BLUE); //Cor da fonte da letra
tft.print(L);
tft.print("%");
tft.fillRect(20, i1, 40, b1, ILI9341_RED);
tft.fillRect(100, i2, 40, b2, ILI9341_GREEN);
tft.fillRect(180, i3, 40, b3, ILI9341_BLUE);
delay(2000);
tft.fillScreen(ILI9341_WHITE);
}