#include <esp_task_wdt.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define WDT_TIMEOUT 10
// #define DHTTYPE DHT22
#define intLED 2
#define LDR_LED 4
// #define DHT 33
#define OLED_RESET 16
#define SW 17
#define LDR 35
Adafruit_SSD1306 display(OLED_RESET);
bool intLEDState = false;
unsigned int currentTime = 0;
unsigned int lastTime = 0;
int LDRValue;
float humidity;
float temperature;
// DHT dht(DHT,DHTTYPE);
void setup() {
Serial.begin(115200);
// dht.begin();
// esp_task_wdt_init(WDT_TIMEOUT, true);
// esp_task_wdt_add(NULL);
pinMode(intLED, OUTPUT);
pinMode(LDR_LED, OUTPUT);
// pinMode(DHT, INPUT_PULLUP);
pinMode(SW, INPUT);
pinMode(LDR, INPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3c); //สั่งให้จอ OLED เริ่มทำงานที่ Address 0x3C
display.clearDisplay(); // ลบภาพในหน้าจอทั้งหมด
display.setTextSize(1); // กำหนดขนาดตัวอักษร
display.setTextColor(WHITE);
display.setCursor(0,0); // กำหนดตำแหน่ง x,y ที่จะแสดงผล
display.println(" OLED 0.96 TESTER ");
display.setCursor(0,10);
display.setTextSize(2);
display.setTextColor(BLACK, WHITE); //กำหนดข้อความสีขาว ฉากหลังสีดำ
display.println(" Myarduino");
display.setCursor(0,32);
display.setTextSize(1);
display.setTextColor(WHITE);
display.println("128 x 64 Pixels 0.96");
display.setCursor(0,48);
display.setTextSize(1);
display.setTextColor(WHITE);
display.println(" www.myarduino.net "); // แสดงผลข้อความ www.Myarduino.net
display.display();
digitalWrite(intLED, LOW);
LDRValue = 0;
humidity = 0.0;
temperature = 0.0;
}
void loop() {
currentTime = millis();
LDRValue = analogRead(LDR);
// humidity = dht.readHumidity();
analogWrite(LDR_LED,LDRValue);
if(currentTime - lastTime >= 1000){
lastTime = currentTime;
Serial.print("LDR : ");
Serial.print(LDRValue);
// Serial.print(" | Humidity : ");
// Serial.print(humidity);
Serial.print(" \n");
if(!intLEDState){
digitalWrite(intLED, HIGH);
}else{
digitalWrite(intLED, LOW);
}
if(digitalRead(SW) == HIGH){
Serial.print("Pressed");
}
intLEDState = !intLEDState;
}
}