การต่อใช้งานบอร์ด Wemos IoT 2DC

บอร์ด Wemos IoT 2DC เป็น 1 ใน 3 รุ่นในโมเดลบอร์ด Wemos IoT ได้แก่ Wemos IoT 1AC, Wemos IoT 2AC และ Wemos IoT 2DC ที่ออกแบบมาให้ขนาดพอดีกับกล่องกันน้ำ Leetech ขนาด 4×4 นิ้ว และออกแบบวงจรให้ใกล้เคียงกับ Sonoff BASIC R2 แต่เพิ่มส่วนของรีเลย์เข้ามาอีกชุดหนึ่ง และช่องต่อเซนเซอร์แบบ XH2.54 เป็นทางเลือกหนึ่งสำหรับคนที่ไม่อยากโมสายไฟ Sonoff เอง บนบอร์ดใช้ไมโครคอนโทรลเลอร์ ESP8266 สามารถเขียนโปรแกรมเองหรือ flash firmware Tasmota ก็ได้

ส่วนประกอบบนบอร์ด Wemos IoT 2DC 

  1. ช่องต่อไฟเลี้ยงกระแสตรง 5-30 โวลต์ แรงดันไฟขาออกจะเท่ากับไฟเลี้ยง
  2. ช่องต่อไฟออกเพื่อนำไปต่อใช้งานเครื่องใช้ไฟฟ้ากระแสตรง สามารถต่อ + และ – ออกไปใช้งานได้เลย มีทั้งหมด 2 ช่อง ได้แก่ GPIO12 และ GPIO13 ทำงานแบบ Active HIGH
  3. ช่องต่อปุ่มกดภายนอก มีทั้งหมด 2 ช่อง คือ GPIO0 และ GPIO2 ทำงานแบบ Active LOW
  4. ปุ่มกดภายใน มีทั้งหมด 2 ช่อง คือ GPIO0 และ GPIO2 ทำงานแบบ Active LOW
  5. ช่องต่อเซนเซอร์อื่นๆเพิ่มเติม ได้แก่ GPIO4, GPIO5, GPIO14 และ A0

พิกัดบอร์ด Wemos IoT 2DC : 

โค้ดตัวอย่างสำหรับบอร์ด Wemos IoT 2DC

#define BUTTON1_PIN 0
#define BUTTON2_PIN 2
#define RELAY1_PIN 12
#define RELAY2_PIN 13

bool relay1State = LOW;
bool relay2State = LOW;

void setup() {
  pinMode(BUTTON1_PIN, INPUT_PULLUP);
  pinMode(BUTTON2_PIN, INPUT_PULLUP);
  pinMode(RELAY1_PIN, OUTPUT);
  pinMode(RELAY2_PIN, OUTPUT);
  digitalWrite(RELAY1_PIN, relay1State);
  digitalWrite(RELAY2_PIN, relay2State);
}

void loop() {
  if (digitalRead(BUTTON1_PIN) == LOW) {
    delay(50); // Debounce delay
    if (digitalRead(BUTTON1_PIN) == LOW) {
      relay1State = !relay1State;
      digitalWrite(RELAY1_PIN, relay1State);
      while (digitalRead(BUTTON1_PIN) == LOW); // Wait for button release
    }
  }
  
  if (digitalRead(BUTTON2_PIN) == LOW) {
    delay(50); // Debounce delay
    if (digitalRead(BUTTON2_PIN) == LOW) {
      relay2State = !relay2State;
      digitalWrite(RELAY2_PIN, relay2State);
      while (digitalRead(BUTTON2_PIN) == LOW); // Wait for button release
    }
  }
}

อธิบายโปรแกรม :

  • เช็คสถานะของปุ่มกด 1 และ 2
  • ถ้าปุ่มกดถูกกด (สถานะเป็น LOW) ให้ทำการ debounce และเช็คสถานะอีกครั้งเพื่อยืนยัน
  • สลับสถานะของรีเลย์
  • รอจนกว่าปุ่มกดจะถูกปล่อย (สถานะเป็น HIGH) ก่อนจะกลับไปเช็คอีกครั้ง
Facebook Comments