#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define DS18B20 2
#define OLED_RESET 4
#define azul 6
#define vermelho 4
Adafruit_SSD1306 display(OLED_RESET);
OneWire oneWire(DS18B20);
DallasTemperature Sensor(&oneWire);
float valorTemperatura;
float valorAnterior = -100;
void setup()
{
// put your setup code here, to run once:
Serial.begin(115200);
Sensor.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Serial.println("Lendo temperatura");
pinMode(azul, OUTPUT);
pinMode(vermelho, OUTPUT);
delay(250);
}
void loop()
{
Sensor.requestTemperatures();
valorTemperatura = Sensor.getTempCByIndex(0);
if(valorTemperatura != valorAnterior)
{
valorAnterior = valorTemperatura;
Serial.print("Temperatura: ");
Serial.println(valorTemperatura);
if(valorTemperatura < 30)
{
digitalWrite(azul, HIGH);
digitalWrite(vermelho, LOW);
}
else
{
digitalWrite(azul, LOW);
digitalWrite(vermelho, HIGH);
}
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Trabalho PIA III");
display.drawLine(0, 10, 128, 10, SSD1306_WHITE);
display.setCursor(0, 15);
display.print("Temp: ");
display.print(valorTemperatura);
display.print(" C");
}
display.display();
delay(1000); // this speeds up the simulation
}