#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "DHTesp.h"
#include <ESP32Servo.h>
Servo myservo;
#define OLED_RESET 16
Adafruit_SSD1306 display(OLED_RESET);
const int DHT_PIN = 12;
int luxxx = 32;
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
display.begin(SSD1306_SWITCHCAPVCC, 0x3c); //สั่งให้จอ OLED เริ่มทำงานที่ Address 0x3C
display.clearDisplay(); // ลบภาพในหน้าจอทั้งหมด
display.setTextSize(1); // กำหนดขนาดตัวอักษร
display.setTextColor(WHITE);
myservo.attach(21);
}
void loop() {
float l = analogRead(luxxx);
map(l,32,4063,0,180);
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.print("Lux: ");
Serial.print(l);
Serial.println(" lx");
Serial.println("---");
display.setCursor(0,0); // กำหนดตำแหน่ง x,y ที่จะแสดงผล
display.println("Temp: " + String(data.temperature, 2) + "°C");
display.setCursor(0,15); // กำหนดตำแหน่ง x,y ที่จะแสดงผล
display.println("Humidity: " + String(data.humidity, 1) + "%");
display.setCursor(0,30);
display.print("Lux: ");
display.print(l);
display.println(" lx");
display.display();
myservo.write(l);
delay(1000);
}