//จำลองesp32 wifi x Blynk บนWokwi
//สุวรรณ แสงดาว
#include <LiquidCrystal_I2C.h>//lcddht22
#include "DHTesp.h"//lcddht22
LiquidCrystal_I2C lcd(0x27, 16, 2); //lcddht22
const int DHT_PIN = 13;//lcddht22
DHTesp dhtSensor;//lcddht22
#define BLYNK_PRINT Serial
// 3 บรรทัดล่างเปลี่ยน token blynk
#define BLYNK_TEMPLATE_ID "TMPL6TAYU9Dsy"
#define BLYNK_TEMPLATE_NAME "Briquette charcoal"
#define BLYNK_AUTH_TOKEN "RZBKfto5Og_Y53HdPV04QhqSWVTkM9YX"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
//รหัส wifi ที่ปล่อยให้ใช้
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int pinLED1 = 2; // ใส่หมายเลขของพิน GPIO ที่เชื่อมกับ LED1
int pinLED2 = 4; // ใส่หมายเลขของพิน GPIO ที่เชื่อมกับ LED2
int pinLED3 = 16; // ใส่หมายเลขของพิน GPIO ที่เชื่อมกับ LED3
int pinLED4 = 17; // ใส่หมายเลขของพิน GPIO ที่เชื่อมกับ LED4
void setup()
{
Serial.begin(9600);
Serial.println("Hello, ESP32!");//lcddht22
lcd.init();//lcddht22
lcd.backlight();//lcddht22
lcd.setCursor(2,0);//lcddht22
lcd.print("Briquette charcoal");//lcddht22
lcd.setCursor(0,1);//lcddht22
lcd.print("Ini essay no 4");//lcddht22
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);//lcddht22
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);//lcddht22
pinMode(pinLED1, OUTPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinLED3, OUTPUT);
pinMode(pinLED4, OUTPUT);
}
void loop()
{
Blynk.run();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
lcd.clear();
lcd.setCursor(0,1);
lcd.print("By:Briquette");
lcd.setCursor(0,0);
lcd.print("Tem:"+ String(data.temperature, 0) + " C ");
lcd.print("Hum:"+ String(data.humidity, 0) + "%");
// ส่งค่าไปยัง Blynk
Blynk.virtualWrite(V5, data.temperature);
Blynk.virtualWrite(V6, data.humidity);
delay(2000); // Wait for a new reading from the sensor (DHT22 has ~0.5Hz sample rate)
}
// ฟังก์ชั่นเปิด-ปิดไฟ LED1 ด้วยการกดปุ่มบนแอปพลิเคชัน Blynk
BLYNK_WRITE(V1)
{
int ledState = param.asInt();
if (ledState == 1) {
digitalWrite(pinLED1, HIGH);
} else {
digitalWrite(pinLED1, LOW);
}
}
// ฟังก์ชั่นเปิด-ปิดไฟ LED2 ด้วยการกดปุ่มบนแอปพลิเคชัน Blynk
BLYNK_WRITE(V2)
{
int ledState = param.asInt();
if (ledState == 1) {
digitalWrite(pinLED2, HIGH);
} else {
digitalWrite(pinLED2, LOW);
}
}
// ฟังก์ชั่นเปิด-ปิดไฟ LED3 ด้วยการกดปุ่มบนแอปพลิเคชัน Blynk
BLYNK_WRITE(V3)
{
int ledState = param.asInt();
if (ledState == 1) {
digitalWrite(pinLED3, HIGH);
} else {
digitalWrite(pinLED3, LOW);
}
}
// ฟังก์ชั่นเปิด-ปิดไฟ LED4 ด้วยการกดปุ่มบนแอปพลิเคชัน Blynk
BLYNK_WRITE(V4)
{
int ledState = param.asInt();
if (ledState == 1) {
digitalWrite(pinLED4, HIGH);
} else {
digitalWrite(pinLED4, LOW);
}
}