// Relay ACTIVE HIGH
/* Comment this out to disable prints and save space */
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#include <TridentTD_LineNotify.h>
#define SSID "Wokwi-GUEST"
#define PASSWORD ""
#define LINE_TOKEN "haPDy3YyVD6rCoEV4IwlnRowC0mrZOFj4xOvj78JaDW"
#define BLYNK_TEMPLATE_ID "TMPL65I29JKPY"
#define BLYNK_TEMPLATE_NAME "Quickstart Template"
#define BLYNK_AUTH_TOKEN "XUyfFD_N7c8Wybyh92vNJDRwmNLJe8Q7"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define V_Temp V4
#define V_Humid V5
#define ON HIGH
#define OFF LOW
#define ry1_Pin 23
#define ry2_Pin 22
#define ry3_Pin 19
#define ry4_Pin 18
#define LED1_Pin 2
#define LED2_Pin 27
#define DHTPIN 26
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
unsigned long L_Time, Counter;
void setup() {
Serial.begin(115200); Serial.println();
Serial.println(LINE.getVersion());
WiFi.begin(SSID, PASSWORD);
Serial.printf("WiFi connecting to %s\n", SSID);
while(WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(400); }
Serial.printf("\nWiFi connected\nIP : ");
Serial.println(WiFi.localIP());
// กำหนด Line Token
LINE.setToken(LINE_TOKEN);
// ตัวอย่างส่งข้อความ
LINE.notify("\n Temp : " + String(Temp_R) + " | HUMID : " + String(Humid_R));
// ตัวอย่างส่งข้อมูล ตัวเลข
LINE.notify(2342); // จำนวนเต็ม
LINE.notify(212.43434,5); // จำนวนจริง แสดง 5 หลัก
// เลือก Line Sticker ได้จาก https://devdocs.line.me/files/sticker_list.pdf
LINE.notifySticker(3,240); // ส่ง Line Sticker ด้วย PackageID 3 , StickerID 240
LINE.notifySticker("Hello",1,2); // ส่ง Line Sticker ด้วย PackageID 1 , StickerID 2 พร้อมข้อความ
// ตัวอย่างส่ง รูปภาพ ด้วย url
LINE.notifyPicture("https://preview.ibb.co/j6G51n/capture25610417181915334.png");
LINE.notifyPicture("จตุธาตุ","https://www.fotoaparat.cz/storage/pm/09/10/23/670915_a5351.jpg");
pinMode(LED1_Pin, OUTPUT);
pinMode(LED2_Pin, OUTPUT);
pinMode(ry1_Pin, OUTPUT);
pinMode(ry2_Pin, OUTPUT);
pinMode(ry3_Pin, OUTPUT);
pinMode(ry4_Pin, OUTPUT);
digitalWrite(ry1_Pin, OFF);
digitalWrite(ry2_Pin, OFF);
digitalWrite(ry3_Pin, OFF);
digitalWrite(ry4_Pin, OFF);
// // put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
dht.begin();
Serial.println("dht.begin()");
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
void Random_dat()
{
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
float Temp_R = random(0, 50);
float Humid_R = random(0, 100);
Blynk.virtualWrite(V_Temp, Temp_R);
Blynk.virtualWrite(V_Humid, Humid_R);
Serial.print("\n Temp : " + String(Temp_R) + " | HUMID : " + String(Humid_R));
}
BLYNK_WRITE(V0) // Executes when the value of virtual pin 0 changes
{
if (param.asInt() == 1)
{
digitalWrite(ry1_Pin, param.asInt()); // Set digital pin 2 HIGH
}
else
{
digitalWrite(ry1_Pin, param.asInt()); // Set digital pin 2 LOW
}
}
BLYNK_WRITE(V1) // Executes when the value of virtual pin 0 changes
{
if (param.asInt() == 1)
{
digitalWrite(ry2_Pin, param.asInt()); // Set digital pin 2 HIGH
}
else
{
digitalWrite(ry2_Pin, param.asInt()); // Set digital pin 2 LOW
}
}
BLYNK_WRITE(V2) // Executes when the value of virtual pin 0 changes
{
if (param.asInt() == 1)
{
digitalWrite(ry3_Pin, param.asInt()); // Set digital pin 2 HIGH
}
else
{
digitalWrite(ry3_Pin, param.asInt()); // Set digital pin 2 LOW
}
}
BLYNK_WRITE(V3) // Executes when the value of virtual pin 0 changes
{
if (param.asInt() == 1)
{
digitalWrite(ry4_Pin, param.asInt()); // Set digital pin 2 HIGH
}
else
{
digitalWrite(ry4_Pin, param.asInt()); // Set digital pin 2 LOW
}
}
void loop() {
Blynk.run();
// put your main code here, to run repeatedly:
if (millis() > (L_Time + 1000))
{
Random_dat();
digitalWrite(LED1_Pin, !digitalRead(LED1_Pin));
digitalWrite(LED2_Pin, !digitalRead(LED2_Pin));
// digitalWrite(ry1_Pin, !digitalRead(ry1_Pin));
// digitalWrite(ry2_Pin, !digitalRead(ry2_Pin));
// digitalWrite(ry3_Pin, !digitalRead(ry3_Pin));
// digitalWrite(ry4_Pin, !digitalRead(ry4_Pin));
L_Time = millis();
}
}