#include <Adafruit_SSD1306.h>
#include <OLED_SSD1306_Chart.h>
#include <DHT.h> // Library untuk sensor DHT22
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define SCREEN_ADDRESS 0x3D // Alamat OLED
#define DHTPIN 2 // Ganti dengan nomor pin yang Anda gunakan untuk menghubungkan sensor DHT
#define DHTTYPE DHT22
// OLED_SSD1306_Chart instance
OLED_SSD1306_Chart display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // Konstruktor ini harus dideklarasikan di luar fungsi setup
DHT dht(DHTPIN, DHTTYPE);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.setChartCoordinates(10, 10); // Atur koordinat awal grafik
display.setChartWidthAndHeight(100, 40); // Atur lebar dan tinggi grafik
display.setXIncrement(10); // Atur jarak antar titik di sumbu X
display.setAxisDivisionsInc(10, 5); // Atur pembagian sumbu X dan Y
display.setYLimits(0, 40); // Atur batas minimum dan maksimum pada sumbu Y
display.setYLabelsVisible(true); // Tampilkan label sumbu Y
display.setYLimitLabels("0", "40"); // Label batas sumbu Y
display.setPointGeometry(POINT_GEOMETRY_CIRCLE); // Atur bentuk titik
display.setPlotMode(SINGLE_PLOT_MODE); // Mode plot tunggal
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.display();
delay(2000);
display.clearDisplay();
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
display.updateChart(temperature); // Tambahkan data suhu ke grafik
display.drawChart(); // Gambar grafik
display.display(); // Tampilkan layar OLED
delay(2000);
}