พอลองรันแล้วตามภาพค่ะ และ line ก็ไม่มีแจ้งเตือน ใดๆ
โค้ด
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <SimpleDHT.h>
#include <SimpleTimer.h>
#include <time.h>
#include <TridentTD_LineNotify.h>
char auth[] = "Ul3cq98pci8XCXbMoVrwQzVdHYPWN9bA";
char ssid[] = "iPhone";
char pass[] = "12345678";
char server[] = "blynk-cloud.com";
int port = 80;
#define LINE_TOKEN "peqzGflNSyWdjgZh0lQwKsTEHLXOQWQVPfLsQPyTDzz"
int DHTSENSOR = 15; //GPIO15 (ADC2_CH3)
byte temperature = 0;
byte humidity = 0;
//ระบุรุ่นเซ็นเซอร์รุ่น
SimpleDHT22 dht22(15);
BlynkTimer timer;
//กำหนดให้ขาควบคุม Relay ใช้ขา GPIO
#define Relay6Pin 19 // โซลินอยด์น้ำ
#define Relay7Pin 18 // ปั๊มน้ำ
#define Relay8Pin 23 // พัดลมระบายอากาศ
#define Relay9Pin 22 // พัดลมฮีตเตอร์
#define Relay10Pin 5 //ฮีตเตอร์
void sendSensor() {
//กำหนดตัวแปรเก็บค่าอุณหภูมิ
byte temperature = 0;
//กำหนดตัวแปรเก็บค่าความชื้นสัมสัทธ์
byte humidity = 0;
//อ่านค่าจากเซ็นเซอร์
dht22.read(DHTSENSOR, &temperature, &humidity, NULL);
while (temperature == 0) {
//อ่านค่าจากเซ็นเซอร์
dht22.read(DHTSENSOR, &temperature, &humidity, NULL);
Serial.println("DHT22 get failed");
delay(1500);
}
//ส่งค่า humidity V13 ไปยัง blynk server
Blynk.virtualWrite(V13, humidity);
//ส่งค่า temperature V12 ไปยัง blynk server
Blynk.virtualWrite(V12, temperature);
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% | ");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("C");
}
void setup() {
//เรียกใช้งาน Serial Monitor
Serial.begin(115200);
Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8080);
//ตั้งเวลาส่งข้อมูลให้ Blynk Server ทุกๆ 1 วินาที
timer.setInterval(5000L, sendSensor);
pinMode(Relay6Pin, OUTPUT);
pinMode(Relay7Pin, OUTPUT);
pinMode(Relay8Pin, OUTPUT);
pinMode(Relay9Pin, OUTPUT);
pinMode(Relay10Pin, OUTPUT);
digitalWrite(Relay6Pin,HIGH);// ให้รีเลย์ไม่ทำงานก่อนเสมอ
digitalWrite(Relay7Pin,HIGH);// ให้รีเลย์ไม่ทำงานก่อนเสมอ
digitalWrite(Relay8Pin,HIGH);// ให้รีเลย์ไม่ทำงานก่อนเสมอ
digitalWrite(Relay9Pin,HIGH);// ให้รีเลย์ไม่ทำงานก่อนเสมอ
digitalWrite(Relay10Pin,HIGH);// ให้รีเลย์ไม่ทำงานก่อนเสมอ
}
void loop() {
Blynk.run();//แอพblynkเริ่มการทำงาน
timer.run();
String LineText;
String string1 = "อุณหภูมิ";
String string2 = " °C";
LineText = string1 + temperature + string2;
Serial.print("Line ");
Serial.println(LineText);
LINE.notify(LineText);
}
void Line_Notify(String LINE_Token, String message) {
String msg = String ("message=") + message;
WiFiClientSecure client;
if (!client.connect("notify-api.line.me", 443)) {
Serial.println("connection failed");
return;
}
String req = "";
req += "POST /api/notify HTTP/1.1\r\n";
req += "Host: notify-api.line.me\r\n";
req += "Content-Type: application/x-www-form-urlencoded\r\n";
req += "Authorization: Bearer " + String(LINE_Token) + "\r\n";
req += "Content-Length: " + String(msg.length()) + "\r\n";
req += "\r\n";
req += msg;
client.print(req);
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}