ขอช่วยหน่อยครับผมจะทําให้แจ้งเตือนทางไลน์ โหมดความชื้นแจ้งเตือนได้แล้วแต่โหมดตั้งเวลาไม่รู้เป็นไร
เมือครบเงื่อนไขมันไม่แจ้งเตือนและบอร์ดจะWiFiหลุดlสลับกับconnect แต่เมื่อนําโค้ดของแจ้งเตือนทางไลน์ใช้งานได้ปกติWiFiไม่หลุด
โค้ดที่ผมใช้
//#include <SimpleTimer.h>
#include <TridentTD_LineNotify.h>
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
int sensorValue = 0; //ตัวแปรค่า Analog
int outputValue = 0; // ตัวแปรสำหรับ Map เพื่อคิด %
const int analogInPin = A0;
char auth[] = " 5P9n_RZO42xfyhVN58c9mPlogQyRRSEc";
char ssid[] = "iPhone";
char pass[] = "12345678";
int led = D0;
int t_slider = 0;
int buton = 0;
int one = D4;
int manul = 0;
char sever[] = "oasiskit.com";
int port = 8080;
bool lock1 = false; // ล็อกคําสั่งปั๊มนํ้าทํางาน
bool lock2 = false;// ล็อกคําสั่งปั๊มนํ้าหยุดทํางาน
bool lock3 = false;// ล็อกคําสั่งtimer
bool lock4 = false;// ล็อกคําสั่งtimer
#define LINE_TOKEN "y348hPh9EzC3A5SF71V0hgxAYj2uQjb1Tfg7y8ARe1u"
BLYNK_WRITE(V4)
{
manul = param.asInt();
digitalWrite(led,0);
}
BLYNK_WRITE(V1)
{
t_slider = param.asInt();
Blynk.virtualWrite(V7, t_slider);
delay(100);
}
BLYNK_WRITE(V2)
{
buton = param.asInt();
digitalWrite(led,0);
}
BLYNK_WRITE(V3)
{
if (param.asInt() == 0)
{digitalWrite(led, 1);
if (lock3 == false){LINE.notify("ครบเวลากําหนดปั๊มนํ้าทํางาน");
lock3 = true;}}
else {
lock3 = false;
}
if (param.asInt() == 1)
{digitalWrite(led, 0);}
}
BLYNK_CONNECTED() {
Blynk.syncAll();
digitalWrite(one,HIGH);
}
void setup()
{
Blynk.begin(auth, ssid, pass,"oasiskit.com", 8080);
pinMode(led, OUTPUT);
Serial.begin(9600);
pinMode(one,OUTPUT);
LINE.setToken(LINE_TOKEN);
}
void loop()
{
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 100, 0);
Blynk.virtualWrite(V0, outputValue);
if (buton == 1) {
if (outputValue < t_slider)
{digitalWrite(led, 1);
if(lock1 == false){
LINE.notify("ความชื้นตํ่ากว่ากําหนดปั๊มนํ้าจึงทํางาน");
lock1 = true; }}
else
{
lock1 = false;
}
if (outputValue > t_slider)
{digitalWrite(led,0);
if(lock2 == false){
LINE.notify("ความชื้นเกินกําหนดปั๊มนํ้าหยุดทํางาน");
lock2 = true;}}
else{
lock2 = false;
}}
if (manul == 1){
digitalWrite(led, 1);}
Blynk.run();
}
ตั้งหัวข้อกระทู้ให้หน่อยครับ
1.คำถาม หรือปัญหา คืออะไร
2.ในส่วนที่สองจะเป็นรายละเอียดหรือ เนื้อหา ที่ขยายความออกมา
ได้ไหมคับแบบนี้
ผมแนะนำควรตั้งแบบนี้นะครับ
ใส่โค้ตแจ้งเตือนผ่านไลน์ แล้วทำให้ wifi หลุด
แก้แล้วคับ
โปรดช่วยแก้ปัญหาให้ผมหน่อยคับ
serial print ออกมาดูครับว่ามันขึ้นว่าไร
ให้พริ้นตรงไหนคับ
เหมือนมันรีเซ็ตตัวเอง
ใส่ delay เข้าไปใน loop หน่อยครับ
void loop()
{
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 100, 0);
Blynk.virtualWrite(V0, outputValue);
if (buton == 1) {
if (outputValue < t_slider)
{digitalWrite(led, 1);
if(lock1 == false){
LINE.notify("ความชื้นตํ่ากว่ากําหนดปั๊มนํ้าจึงทํางาน");
delay(100);
lock1 = true; }}
else
{
lock1 = false;
}
if (outputValue > t_slider)
{digitalWrite(led,0);
if(lock2 == false){
LINE.notify("ความชื้นเกินกําหนดปั๊มนํ้าหยุดทํางาน");
delay(100);
lock2 = true;}}
else{
lock2 = false;
}}
if (manul == 1){
digitalWrite(led, 1);}
Blynk.run();
delay(100);
}
ลองลดคำให้เหลือแค่ ความชื้น
ดูครับ ทุกจุดเลยนะ
ยังรีเซ็ตตัวเองคับมันแจ้งเตือนนะแต่มันรีเซ็ตตัวเอง
แต่ถ้าเอาตรงนี้
if (lock3 == false){LINE.notify("ครบเวลากําหนดปั๊มนํ้าทํางาน");
lock3 = true;}}
else {
lock3 = false;
}
ออกคือปกตินะ
ผมว่าลองจัด รูปแบบ ให้ดีๆ ก่อนนะครับ มันมองยากขีดปีกกาติดกันเยอะเลย
ถ้าขี้เกียจจัดก็ใช้ ตัวช่วยจัดก็ได้
ผมว่าปัญหามันอยู่ตรงนี้อ่ะครับ เรากำหนด รับเป็น 0 ซึ่งปกติมันก็เริ่มเป็น 0 อยู่แล้ว มันก็ส่ง line รัวๆ เลย ไม่รีเซตก็แปลกละครับ
ต้องแก้ยังไงคับ