#include <WiFi.h>
#include <HTTPClient.h>
#define ssid "CZH"
#define password "88888888"
// สร้าง token https://notify-bot.line.me/th
#define token "dGMErntegQkKEtbrJHfz2sh1MQmStthS5GckeCPE26F"
#define s1 17
int l1 = 14;
int bz = 12;
int rl = 13;
int lred = 27;
int lg = 26;
int m = 35;
int ldr = 5;
/////////////////////////////////////////////////
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password, 6);
Serial.print("Connecting to WiFi.");
while(WiFi.status() != WL_CONNECTED) { // รอจนกว่าจะเชื่อมต่อ WiFi สำเร็จ
delay(1000);
Serial.print(".");
}
Serial.println("Connected to WiFi");
sendLineNotify("System Online");
pinMode(s1, INPUT);
pinMode(ldr, INPUT);
pinMode(m, INPUT);
pinMode(l1, OUTPUT);
pinMode(bz, OUTPUT);
pinMode(rl, OUTPUT);
pinMode(lred, OUTPUT);
pinMode(lg, OUTPUT);
}
/////////////////////////////////////////////////////
void loop() {
if(WiFi.status() == WL_CONNECTED) { // ตรวจสอบการเชื่อมต่อ WiFi
int sv = digitalRead(s1); // อ่านค่าจากสวิต
int ldrv = digitalRead(ldr); // อ่านค่าจากเซ็นเซอร์แสงสว่าง
int mv = analogRead(m); // อ่านค่าจากเซ็นเซอร์ความชื้อ
Serial.print("Moisture Sensor Value:"); ///////แสดงค่าความชื้น
Serial.println(mv);
////////////////////////////////////////////// ความชื้น
if(mv <= 2000) {
digitalWrite(lg,1); }
if(mv > 2000) {
digitalWrite(lg,0); }
////////////////////////////////////////////////////// แสงสว่าง
if(ldrv == 0){
digitalWrite(lred,1); }
if(ldrv == 1){
digitalWrite(lred,0); }
////////////////////////////////////////// สวิต ไลน์ บัสเซอร์ แอลอีดี รีเลย์
if(sv == 0) {
sendLineNotify("กดทำค*ยไรอ่ะ"); // ส่งข้อความไปยังไลน์
digitalWrite(l1,1);
digitalWrite(bz,1);
digitalWrite(rl,1);
}
if(sv == 1) {
digitalWrite(l1,0);
digitalWrite(bz,0);
digitalWrite(rl,0);
}
}
}
/////////////////////////////////////////////////////////////////////////////
void sendLineNotify(String message) { // ฟังก์ชันส่งข้อความ
HTTPClient http;
http.begin("https://notify-api.line.me/api/notify");
http.addHeader("Authorization", "Bearer " + String(token));
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
String encodedMessage = "message=" + urlEncode(message);
int httpCode = http.POST(encodedMessage);
if(httpCode > 0) {
String response = http.getString();
}
else {
Serial.println("Error");
}
http.end();
}
String urlEncode(String value) { // ฟังก์ชันเข้ารหัสข้อความผ่าน URL
String encodedValue = "";
char c;
for(size_t i = 0; i < value.length(); i++) {
c = value.charAt(i);
if(isAlphaNumeric(c)) {
encodedValue += c;
}
else {
encodedValue += String('%');
encodedValue += String(c, HEX);
}
}
return encodedValue;
}