Neste exemplo em particular, vamos simplesmente exibir a temperatura. leituras de pressão e altitude de um sensor DHt22 em um display OLED. Estes são todos os escudos usados para tornar este um projeto simples de construir.
Sobre o sensor DHT22
O RHT03 (também conhecido como DHT22) é um sensor de temperatura e umidade com comunicação digital de fio único. O sensor é calibrado para operar sem componentes adicionais, para que você possa obter facilmente informações de temperatura e umidade.
Especificações:
Tensão de entrada: 3,3V até 6V
Corrente em medição: 1 a 1,5mA
Corrente em standby: 40 a 50uA
Range de umidade de 0 a 100% RH
Range de temperatura de -40 a 80ºC
Precisão de umidade: +-2%
Precisão de temperatura: +-0.5ºC
Sobre o display OLED i2c
Esse display OLED i2c azul-amarelo de 0,96 polegadas é uma opção muito interessante para quem busca ver uma pequena quantidade de informações e ainda assim ser bem claro. Isso é possível devido à alta taxa de contraste dos displays OLED (Organic Light Emitting Diode).
O chip controlador SSD1306 controla cada pixel 128×64 individualmente via I2C. As telas OLED têm luz própria, portanto, não há necessidade de luz de fundo, aumentando o contraste e economizando muita energia. Para facilitar sua vida, uma tira de 4 pinos foi soldada na qual você pode conectar diretamente à placa de montagem.
Especificações:
– Tensão de operação: 2,2-5,5V
– Controlador: SSD1306
– Cor: Azul e Amarelo
– Comunicação: I2C
– Resolução: 128×64
– Dimensões: 30 x 27mm
– Peso: 10g
Pinagem:
– GND: GND
– VCC: 2,2-5,5V
– SCL: Clock (Nivel Alto 2,2-5,5V)
– SDA: Dados (Nivel Alto 2,2-5,5V)
Requisitos
1 x Wemos Mini
1 x Wemos Dual Base
1 x OLED Shield
1 x DHT Pro Shield
Você pode ver o que montei na foto acima, eu poderia ter empilhado em uma coluna mas queria ver o OLED e também deixar o DHt22 descoberto.
O Código
Várias bibliotecas necessárias - você pode instalá-las através do gerenciador de bibliotecas, ou pode acessar os links abaixo para baixar diretamente do GIT:
- https://github.com/adafruit/DHT-sensor-library
- https://github.com/adafruit/Adafruit_Sensor
- https://github.com/sparkfun/SparkFun_Micro_OLED_Arduino_Library
#include "DHT.h" #include <Wire.h> // Include Wire if youre using I2C #include <SFE_MicroOLED.h> // Include the SFE_MicroOLED library #define DHTPIN D4 // what pin were connected to #define DHTTYPE DHT22 // DHT 22 (AM2302) #define PIN_RESET 255 // #define DC_JUMPER 0 // I2C Addres: 0 - 0x3C, 1 - 0x3D MicroOLED oled(PIN_RESET, DC_JUMPER); // Example I2C declaration DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); oled.begin(); oled.clear(ALL); // Clear the displays memory (gets rid of artifacts) oled.display(); } void loop() { // Wait a few seconds between measurements. delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } oled.clear(PAGE); oled.setFontType(0); // set font type 0, please see declaration in SFE_MicroOLED.cpp oled.setCursor(1, 3); oled.print("Humidity: "); oled.setCursor(1, 12); oled.print(h); oled.print(" % "); oled.setCursor(1, 21); oled.print("Temp :"); oled.setCursor(1, 30); oled.print(t); oled.print(" *C "); oled.display(); }
Veja a Saída
Aqui você pode ver a saída no display oled.
Documentação:
- Datasheet DHT22
- Biblioteca DHT Adafruit (precisa da Biblioteca Adafruit Sensor para funcionar)
- Biblioteca Adafruit Sensor
- Video de Explicação do Produto (por André Michelon - Canal Internet e Coisas)