#include <LiquidCrystal_I2C.h>
#include <TridentTD_Linenotify.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define SSID "EMWiFi_JARUGIT" //ชื่อ WiFi
#define PASSWORD "393000" //พาสเวิร์ด เข้า WiFi
#define LINE_TOKEN "r08BZLTWwjtOlcdQtEoU6a9mxZS8oHsAk8ZrdtjDUwL" //กลุ่มสอนบักบีม
int ledPin = 3;
int digatalPin = 4; //ประกาศตัวแปร ให้ analogPin แทนขา analog ขาที่5
int val = 0;
void setup() {
LINE.setToken(LINE_TOKEN); //เซ็ตค่าโทเคนของกลุ่มสอนบักบีม
WiFi.begin(SSID,PASSWORD); //เริ่มต้นฟังก์ชั่นเชื่อมต่อ WiFi
while (WiFi.status() != WL_CONNECTED) { //การเรียกฟังก์ชั่นการเชื่อมต่อเพื่อทดสอบความผิดพลาดในการเชื่อม WiFi
delay(400); //หน่วงเวลาในการเชื่อมต่อเรื่อยๆ
Serial.println("Conecting to WiFi..."); //เมื่อเข้าฟังก์ชั่น จะเริ่มเชื่อมต่อจนกว่า...
} //เชื่อมต่อสำเร็จ จะเข้าสู่เงื่อนไขข้างล่างต่อไป
Serial.println("เชื่อมต่อ WiFi ได้แล้วครับ"); //เชื่อมต่อสำเร็จ
//เมื่อ println ทำงานแล้วจะทำงานต่อไปจนถึงบรรทัดสุดท้าย
lcd.backlight();
lcd.init();
pinMode(ledPin, OUTPUT); // sets the pin as output
Serial.begin(9600);
lcd.clear(); //คำสั่งเซ็ตอัพสุดท้ายให้จอ LCD เคลียร์สถานะให้ว่าง
}//จบฟังก์ชั่น setup
//เริ่มเข้าฟังก์ชั่น loop
void loop() {
val = analogRead(digatalPin); //อ่านค่าสัญญาณ analog ขา 5 เก็บไว้ในตัวแปร val
val = map(val,0,1023,0,250);
lcd.setCursor(0, 0); // กำหนดให้ เคอร์เซอร์ อยู่ตัวอักษรตำแหน่งที่0 แถวที่ 1 เตรียมพิมพ์ข้อความ
lcd.print("Phase Protection"); //พิมพ์ข้อความ "LCD1602 I2c Test"
lcd.setCursor(1, 1); // กำหนดให้ เคอร์เซอร์ อยู่ตัวอักษรกำแหน่งที3 แถวที่ 2 เตรียมพิมพ์ข้อความ
lcd.print("voltage : " + String(val) + " V"); //พิมพ์ข้อความลงจอ LCD
Serial.println(val); // พิมพ์ค่าของตัวแปร val
if(val>500){
LINE.notifySticker("แรงดันเกินพิกัด โปรดระวัง!!" , 789 , 10891);
}else if(val<500){
LINE.notifySticker("แรงดันลดลงต่ำกว่าพิกัด เริ่มปลอดภัย!!" , 789 ,10858);
}
delay(2000);
}