รบกวนช่วยหน่อยครับวิธี ทำให้ไลน์แจ้งเตือนครั้งเดียว

Thanet_Totong (Thanet Totong) October 30, 2020, 7:15am #1

Lcd2333.ino (1.6 KB)

Thanet_Totong (Thanet Totong) October 30, 2020, 10:24am #2

#include <TridentTD_LineNotify.h>
#define SSID        "Kk"      
#define PASSWORD    "ete16041n"     
#define LINE_TOKEN  "7c8VpxOiAukgJlmeKIyMvu1DK3HjsfISu8IkDlbf5tU"   
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
Servo myservo;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int digitalPin = D3;
int digitalPin1 = D5;
int val = 0;
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(1000);
  }
  Serial.printf("\nWiFi connected\nIP : ");
  Serial.println(WiFi.localIP());
  LINE.setToken(LINE_TOKEN);
  myservo.attach(D4);
  pinMode(digitalPin, INPUT); 
  pinMode(digitalPin1, INPUT);
  Serial.begin(9600);
}

void loop() {
  val = digitalRead(digitalPin);  
  Serial.print("val = "); 
  Serial.println(val); 
  if (val == 1) { 
    myservo.write(90);
    lcd.begin();
    lcd.print("No");
    lcd.setCursor(0, 1);
    lcd.print("FOOD");
    LINE.notify("กำลังเติมอาหาร");
    }
  else {
    myservo.write(0);
    lcd.begin();
    lcd.print("CAT");
    lcd.setCursor(0, 1);
    lcd.print("Food");
    LINE.notify("อาหารเต็มแล้ว");
    delay(1000); 
  }
  val = digitalRead(digitalPin1);
  Serial.print("val = ");
  Serial.println(val);
  if (val == 0)
  {
    LINE.notify("ถังใกล้หมด");
  }
  else {
    LINE.notify("อาหารเต็มถังแล้ว");
  }
  delay(1000);
 }
  
    
 
 }

Thanet_Totong (Thanet Totong) October 30, 2020, 7:21am #3

ปัญหาคือไลน์มันส่ง วนไปวนมาตลอดเวลา อยากให้ไลน์ส่งแค่ครั้งเดียวในแต่ละครั้ง แก้ยังไงบ้างครับ

PUYIOT October 30, 2020, 10:18am #4

ลองดูครับ @Remy_Martin ทำไว้แล้วครับ

Remy_Martin (Permpol Thanapunnamas) October 30, 2020, 1:15pm #5

ใน live ผมอธิบายไว้ด้วยครับ ลองดู