Tenho uma dúvida quanto ao código.. eu utilizei display similar, portanto tive que modificar algumas coisas, enfim, acabou dando certo.. porém na lógica que mostra as variáveis no display eu fiz diferente:
#include <DHT.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for SSD1306 display connected using software SPI (default case):
#define OLED_MOSI D7
#define OLED_CLK D5
#define OLED_DC D2
#define OLED_CS D8
#define OLED_RESET D1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
#define DHTPIN D3
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int umidade;
int temperatura;
void setup() {
dht.begin();
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
}
void loop() {
medirTemperaturaUmidade();
mostrarMensagemNoDisplay();
//delay(2000);
}
void medirTemperaturaUmidade() {
umidade = dht.readHumidity();
temperatura = dht.readTemperature(false);
delay(2000);
}
void mostrarMensagemNoDisplay() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print("Temperatura");
display.setTextSize(5);
display.setCursor(20, 20);
display.print(temperatura);
display.setTextSize(2);
display.print("C");
display.display();
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print("Umidade");
display.setTextSize(5);
display.setCursor(20, 20);
display.print(umidade);
display.setTextSize(2);
display.print("%");
display.display();
delay(3000);
}
A minha dúvida é.. ok, o meu deu certo, minha lógica mostra certinho.. mas então por que foi usado da outra maneira, pois como estou iniciando os estudos achei a lógica meio complicada a princípio. Há com certeza algum motivo para o instrutor ter montado o código utilizando a outra lógica, qual seria?
Obrigado !