การต่อใช้งานบอร์ด Wemos IoT 1AC
บอร์ด Wemos IoT 1AC เป็น 1 ใน 3 รุ่นในโมเดลบอร์ด Wemos IoT ได้แก่ Wemos IoT 1AC, Wemos IoT 2AC และ Wemos IoT 2DC ที่ออกแบบมาให้ขนาดพอดีกับกล่องกันน้ำ Leetech ขนาด 4×4 นิ้ว เพื่อใช้งานกับบอลวาล์วไฟฟ้าแบบ 220V 3 wire 2 control โดยเฉพาะ ข้อดีของบอลวาล์วประเภทนี้คือไม่ต้องจ่ายไฟเลี้ยงไว้ตลอดการทำงานแค่สั่งเปิดแล้วก็หยุดจ่ายไฟได้ หลักการทำงานคือใช้ Nuetral (N) ร่วมกัน และใช้ Line (L) ในการสั่งเปิดวาล์ว (Open) 1 เส้นและปิดวาล์ว (Close) อีก 1 เส้น วงจรนี้ป้องกันการจ่ายไฟมาที่ Open และ Close พร้อมกันโดยที่ GPIO13 จะเป็นตัวกำหนดเส้นทางว่า Line จะไปทางไหนได้เพียง 1 เส้นทาง ส่วน GPIO12 จะเป็นตัวปล่อยไฟให้ทำงานและหน่วงเวลาเพื่อปิดการจ่ายไฟ
ส่วนประกอบบนบอร์ด Wemos IoT 1AC
- ช่องต่อไฟเลี้ยงกระแสสลับ 220V
- ช่องต่อไฟออกไปยังบอลวาล์วไฟฟ้ามี 3 ขั้วคือ
– Open : เปิดวาล์ว
– Close : ปิดวาล์ว
– N : Nuetral - ช่องต่อปุ่มกดภายนอก มีทั้งหมด 1 ช่อง คือ GPIO0 ทำงานแบบ Active LOW
- ปุ่มกดภายใน มีทั้งหมด 1 ช่อง คือ GPIO0 ทำงานแบบ Active LOW
- ช่องต่อเซนเซอร์อื่นๆเพิ่มเติม ได้แก่ GPIO4, GPIO5, GPIO14 และ A0
พิกัดบอร์ด Wemos IoT 1AC :
โค้ดตัวอย่างสำหรับบอร์ด Wemos IoT 1AC
#define BUTTON1_PIN 0
#define RELAY1_PIN 12
#define RELAY2_PIN 13
bool ValveState = LOW;
void setup() {
pinMode(BUTTON1_PIN, INPUT_PULLUP);
pinMode(RELAY1_PIN, OUTPUT);
pinMode(RELAY2_PIN, OUTPUT);
digitalWrite(RELAY1_PIN, LOW);
digitalWrite(RELAY2_PIN, LOW);
}
void loop() {
if (digitalRead(BUTTON1_PIN) == LOW) {
delay(50); // Debounce delay
if (digitalRead(BUTTON1_PIN) == LOW) {
ValveState = !ValveState;
digitalWrite(RELAY1_PIN, HIGH);
digitalWrite(RELAY2_PIN, ValveState);
delay(10000);
digitalWrite(RELAY1_PIN, LOW);
}
}
}
อธิบายโปรแกรม :
- เช็คสถานะของปุ่มกด 1
- ถ้าปุ่มกดถูกกด (สถานะเป็น LOW) ให้ทำการ debounce และเช็คสถานะอีกครั้งเพื่อยืนยัน
- เปลี่ยนเส้นทางเดินไฟฟ้าระหว่าง Open กับ Close
- จ่ายไฟไปยังวาล์วเป็นเวลา 10 วินาทีแล้วหยุด