อยากจะตั้งเวลาเปิด_ปิด Sensor ผ่าน Blynk 1.8.19 (Time Input)
ต้องใส่โค้ดตั้งเวลาเปิดปิดตรงไหนบ้างครับ
(อันนี้โค้ดที่มีอยู่ครับ)
#include <Blynk.h>
#include <dummy.h>
// Blynk token
#define BLYNK_TEMPLATE_ID "TMPLB90HfYyi"
#define BLYNK_DEVICE_NAME "smartfarm"
#define BLYNK_AUTH_TOKEN "w_rK6e46cGNyRSdZBhvupTdRjRGOnB6d"
// Line token
#define TokenLine "AkBM0Nm5TAMUKbvqeq7g9gKhdz8zjvfSAMn5RU2dqBk"
#define TokenLine "jSrg9XHOWqVc09ECWhkx0bzajmKrEXEg6fFhPog6X4U"
#define BLYNK_PRINT Serial
#define RXp2 16
#define TXp2 17
// Define Blynk virtual pin
#define VPIN_TDS V0
#define VPIN_PH V1
#define VPIN_LDR V2
#define VPIN_TEMP V3
char auth[] = BLYNK_AUTH_TOKEN;
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <TridentTD_LineNotify.h>
#include <TimeLib.h>
#include <WidgetRTC.h>
// Your WiFi credentials.
char ssid[] = "A1996";
char pass[] = "Wut18690496";
String tds_msg = "tds_msg";
String ph_msg = "ph_msg";
String ldr_msg = "ldr_msg";
String temp_msg = "temp_msg";
int tds_limit = 10; // แก้ค่า limit tds sensor ที่จะให้แจ้งเตื่อน
float ph_limit = 7.0; // แก้ค่า limit ph sensor ที่จะให้แจ้งเตื่อน
int ldr_limit = 100; // แก้ค่า limit ldr sensor ที่จะให้แจ้งเตื่อน
float temp_limit = 25.0; // แก้ค่า limit temp sensor ที่จะให้แจ้งเตื่อน
bool line_limit_noti = true; // ถ้าจะให้แจ้งเตือนตามค่า limit ที่ set เอาไว้ให้กำหนดค่านี้เป็น true
String dataValue[4] = {"", "", "", ""};
// Define blynk timer
BlynkTimer timer;
// Define real time clock
WidgetRTC rtc;
void setup() {
// Debug console
Serial.begin(115200);
Serial2.begin(115200, SERIAL_8N1, RXp2, TXp2);
// Blynk connect
Blynk.begin(auth, ssid, pass);
// Blynk timer
timer.setInterval(1000L * 600, sendLineNoti);
LINE.setToken(TokenLine);
}
void sendLineNoti(){
Serial.println("Sent Line Noti");
if(line_limit_noti == false){
LINE.notify("ค่าการนำไฟฟ้า: " + dataValue[0] + "\n" + "ค่าPH: " + dataValue[1] + "\n" + "ค่าความเข้มแสง: " + dataValue[2] + "\n" + "อุณหภูมิ: " + dataValue[3] + "*c");
}
if(line_limit_noti == true){
String msg = "";
bool sentFlag = false;
if(dataValue[0].toInt() < tds_limit){ // กำหนดเงื่อนไขในการเตือน tds แก้ <, >, ==
msg += "ค่าการนำไฟฟ้า: " + dataValue[0] + "\n";
sentFlag = true;
}
if(dataValue[1].toFloat() < ph_limit){ // กำหนดเงื่อนไขในการเตือน ph แก้ <, >, ==
msg += "ค่าPH: " + dataValue[1] + "\n";
sentFlag = true;
}
if(dataValue[2].toInt() == ldr_limit){ // กำหนดเงื่อนไขในการเตือน ldr แก้ <, >, ==
msg += "ค่าความเข้มแสง: " + dataValue[2] + "\n";
sentFlag = true;
}
if(dataValue[3].toInt() < temp_limit){ // กำหนดเงื่อนไขในการเตือน temp แก้ <, >, ==
msg += "อุณหภูมิ: " + dataValue[3] + "\n";
sentFlag = true;
}
if(sentFlag){
LINE.notify(msg);
}
}
}
void loop() {
String serialData = Serial2.readString();
if(serialData.length()){
Serial.println(serialData);
bool stopFlag = false;
bool startFlag = false;
int index = 0;
int value_count = 0;
int string_index = 0;
for(index = 0; index < serialData.length(); index++){
if(startFlag == true && ((serialData[index] >= '0' && serialData[index] <= '9') || serialData[index] == '.')){
dataValue[value_count] += serialData[index];
}
else if(startFlag == true && serialData[index] == ':'){
value_count++;
dataValue[value_count] = "";
}
else if(startFlag == true && serialData[index] == '>'){
startFlag = false;
stopFlag = true;
value_count = 0;
Serial.println(dataValue[0]);
Serial.println(dataValue[1]);
Serial.println(dataValue[2]);
Serial.println(dataValue[3]);
Blynk.virtualWrite(VPIN_TDS, dataValue[0]);
Blynk.virtualWrite(VPIN_PH, dataValue[1]);
Blynk.virtualWrite(VPIN_LDR, dataValue[2]);
Blynk.virtualWrite(VPIN_TEMP, dataValue[3]);
}
else{
if(serialData[index] == '<'){
startFlag = true;
dataValue[value_count] = "";
}
}
}
}
Serial.println();
Blynk.run(); // Blynk run
timer.run();
}