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======================================================