// Подключаем библиотеки
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <dht.h>
// Определяем размеры матрицы
#define WIDTH 128
#define HEIGHT 64
#define DHT22_PIN 3
DHT dht(DHT22_PIN, DHT22);
// Определяем выводы к которым подключена OLED матрица
const uint8_t disp_SDA = 5;
const uint8_t disp_SCL = 4;
// Создаём объект дисплея
Adafruit_SSD1306 display(WIDTH, HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
// Инициируем I2C к которому подключена матрица
Wire.begin(disp_SDA, disp_SCL);
// Инициируем дисплей
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C, false, false)) {
Serial.println(F("Не удалось инициировать дисплей"));
for(;;);
}
delay(2000);
// Очищаем дисплей
display.clearDisplay();
// выводим массив на дисплей
display.println("Hello World! ^___^");
DHT.read22(DHT22_PIN);
float new_DHT_T = DHT.temperature;
float new_DHT_H = DHT.humidity;
display.println(String(new_DHT_T) +" " + String(new_DHT_H));
display.display();
delay(1000);
}
void readDHT()
{
display.clearDisplay();
// read humidity
float humi = dht.readHumidity();
// read temperature in Celsius
float tempC = dht.readTemperature();
display.println(String(humi) + " " + String(tempC));
delay(5000);
}
void loop() {
// put your main code here, to run repeatedly:
readDHT();
delay(10); // this speeds up the simulation
}
// void setup() {
// }