Esp8266 + Loadcell แจ้งเตือนข้อความผ่าน line อยากให้แจ้งเตือนแค่1 ครั้งจนกว่าจะเข้าเงื่อนไขใหม่

Esp8266 + Loadcell แจ้งเตือนข้อความผ่าน line อยากให้แจ้งเตือนแค่1 ครั้งจนกว่าจะเข้าเงื่อนไขใหม่ ปัจจุบันแจ้งเตือนรัวๆ พี่ๆเพื่อนๆท่านใดพอจะมีแนวทางและแนวคิดในการเขียนโค๊ดเพิ่มเติมไหมครับ ตรงเงื่อนไข ขอบคุณครับ

#include <TridentTD_LineNotify.h> 
#include "HX711.h" 
#include <Wire.h> 
#include <LiquidCrystal_I2C.h> 
#define DOUT D3
#define CLK D4
HX711 scale(DOUT, CLK);
float calibration_factor = -96650; 
#define SSID        "" 
#define PASSWORD    ""
#define LINE_TOKEN  "" 
LiquidCrystal_I2C lcd(0x3F, 16, 2);
int led1 = D5; 
int led2 = D6; 
int led3 = D7; 

void setup() {
Serial.begin(115200);
Serial.println(F("Start System"));
Serial.println("Press T to tare");
scale.set_scale(-242950); 
scale.tare(); 
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
lcd.begin();//ตั้งค่าเริ่มการใช้งานจอ LCD
lcd.backlight();//ตั้งค่าเริ่มต้นให้ไฟพื้นหลังจอ LCD ทำงาน
lcd.print("WELCOME");//แสดงข้อความ WELCOME ที่หน้าจอ LCD
 
  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.setToken(LINE_TOKEN);// กำหนด Line Token
}


void loop() {
  lcd.setCursor(0, 0); 
  lcd.print("  FEAS  SYSTEM"); 
  lcd.setCursor(5, 1); 

float s = scale.get_units();
 lcd.print(s); 
 lcd.setCursor(14, 1);
 lcd.print("KG");
 Serial.print("Weight: ");
 Serial.print(scale.get_units(), 2); 
 Serial.println(" kg"); 
 if(Serial.available())
 {
 char temp = Serial.read();
 if(temp == 't' || temp == 'T')
 scale.tare(); //Reset the scale to zero
 }

  
//=======================================Check IF======================================================
  if ( s > 0.7 && s < 0.8){
    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW);
    LINE.notify("ถังดับเพลิง*พร้อมใช้งาน*");
    delay(1000);  
  }

  
  if ( s > 0.1 && s < 0.7)  {
    digitalWrite(led1, LOW);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    LINE.notify("ถังดับเพลิง*ไม่พร้อมใช้งาน*น้ำหนักน้อยผิดปกติ");
    delay(1000);
  }
 
  if ( s > 0.8)  {
    digitalWrite(led1, LOW);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    LINE.notify("ถังดับเพลิง*ไม่พร้อมใช้งาน*น้ำหนักมากผิดปกติ");
    delay(1000);
  }

  if ( s <= 0)  {
    digitalWrite(led1, LOW);
    digitalWrite(led2, HIGH);
    LINE.notify("ถังดับเพลิง*ถูกนำไปใช้งาน*");
    delay(1000); 
  }

  } 
//=======================================Check IF======================================================

ดูตัวอย่างนี้ครับ

1 Likes

ขอบคุณมากครับ สามารถทำได้แล้วครับ