Lab 5
การขับโหลดกระแสไฟฟ้าสูงด้วย Relay
VDO Link : https://www.youtube.com/watch?v=q7YnsLM-y5c
ระดับความยากง่าย
● ปานกลาง
ประมาณเวลาที่ใช้เรียนรู้ + ลงมือปฏิบัติตาม
● 45 นาที
Prerequisite ต้องผ่านหัวข้อหรือใบงานกิจกรรมใดมาก่อน
● Module NETPIE on NodeMCU/ESP8266 Lab 1 การติดตั้ง Arduino IDE และทดสอบการทำงานเบื้องต้นของ NodeMCU/ESP8266 (https://netpie.gitbooks.io/nodemcu-esp8266-on-netpie/content/chapter1.html)
● Module NETPIE on NodeMCU/ESP8266 Lab 2 การติดต่อ Digital Output (https://netpie.gitbooks.io/nodemcu-esp8266-on-netpie/content/lab-2.html)
วัตถุประสงค์
- เพื่อให้เข้าใจการใช้งานและสามารถประยุกต์ใช้งาน Digital Output ได้
- เพื่อให้เข้าใจการใช้งานของรีเลย์ (Relay) เพื่อใช้ในการเปิด-ปิดอุปกรณ์ไฟฟ้า
อุปกรณ์ที่ใช้ในการทดลอง
1.บอร์ด NodeMCU ESP8266 (ESP-12E)
2.Relay Module
3.หลอดไฟพร้อมขั้วหลอดที่สามารถขันสายไฟด้วยน็อตได้
4.สายไฟพร้อมปลั๊กไฟ สามารถหาซื้อได้ที่ร้านอุปกรณ์ไฟฟ้าทั่วไป
5.ไขควง
6.Breadboard
7.สายไฟเชื่อมต่อ (Male to Female)
เนื้อหาเชิงทฤษฎี
การทดลองนี้คือการต่อ Digital Output ของบอร์ด NodeMCU/ESP8266 เข้ากับอุปกรณ์เอาต์พุตเพื่อขับให้ทำงาน โดยในที่นี้เราจะใช้รีเลย์โมดูล (Relay Module) เป็นอุปกรณ์เอาต์พุตเพื่อไปขับอุปกรณ์โหลดสูงอื่นๆ (220 V) อีกทอด เช่น หลอดไฟในบ้าน ดังแสดงในภาพ เป็นต้น
Relay Module
หลักการทำงานวงจรของ Relay module คือการเปิดปิดวงจรด้วยแม่เหล็กไฟฟ้า เมื่อขดลวดเหนี่ยวนำมีกระแสไหลผ่าน จะมีคุณสมบัติเป็นแม่เหล็ก สามารถส่งแรงผลักหรือดูดเพื่อเปลี่ยนตำแหน่งสวิตช์ได้ ดังนั้นใน Relay Module จะประกอบด้วยสองวงจรดังตัวอย่างในรูปข้างล่าง วงจรทางด้านซ้ายเป็นวงจรเพื่อเหนี่ยวนำขดลวดซึ่งจะต่ออยู่กับบอร์ดควบคุม วงจรด้านขวาเป็นวงจรของอุปกรณ์ที่เราต้องการขับ (ในรูปคือหลอดไฟ) โดยมีสวิตช์เปิดปิดวงจรตามแรงดูดของขดลวด หน้าสัมผัสของสวิตช์มี 2 ชนิดคือ
- หน้าสัมผัสปกติเปิดหรือ NO (Normally Open) หมายถึงหน้าสัมผัสที่เปิดในภาวะขดลวดไม่เหนี่ยวนำ
- หน้าสัมผัสปกติปิดหรือ NC (Normally Closed) หมายถึงหน้าสัมผัสที่ปิดในภาวะขดลวดไม่เหนี่ยวนำ
โดยทั่วไปแล้วหน้าสัมผัส NO คือฝั่งที่ทำให้กระแสครบวงจรในฝั่งอุปกรณ์ ดังแสดงในรูปตัวอย่าง นั่นหมายถึงจะต้องมีการจ่ายไฟให้ขดลวดในวงจรด้านซ้าย เพื่อดูดสวิตช์ในวงจรฝั่งขวามาที่หน้าสัมผัส NO วงจรจึงจะปิด และหลอดไฟจะติด การเปิดปิดกระแสผ่านขดลวดในวงจรฝั่งซ้าย กระทำผ่านการควบคุมไฟเลี้ยงทรานซิสเตอร์ เมื่อทำให้เกิดการจ่ายไฟเลี้ยง (VCC) ทรานซิสเตอร์ จะนำกระแส ทำให้วงจรด้านขดลวดปิด และขดลวดจะทำหน้าที่เป็นแม่เหล็ก ซึ่งบอร์ด Arduino จะสามารถเข้ามาควบคุม Relay ได้ที่จุด ln1 กล่าวคือถ้าส่งลอจิก High จะไม่มีการจ่ายไฟเลี้ยง เนื่องจากไม่มีความต่างศักย์ ในทางกลับกัน หากส่งลอจิก Low จะทำให้วงจรปิด และสวิตช์จะเปลี่ยนทิศทาง ดังนั้นวงจร Relay ลักษณะนี้จึงเป็นแบบ Active Low
ขั้นตอนการทดลอง
1.ต่อวงจรรีเลย์โมดูลเข้ากับบอร์ด NodeMCU/ESP8266 และหลอดไฟกระแสสลับตามภาพ
2.เปิดโปรแกรม Arduino IDE แล้วไปที่ File -> New File
3.เขียนโค้ดลงไปในโปรแกรมดังนี้
#define D0 16
#define LED D0
void setup()
{
pinMode(LED,OUTPUT); // setup output
}
void loop()
{
digitalWrite(LED,HIGH); // Pin D0 is HIGH
delay(250);
digitalWrite(LED,LOW); // Pin D0 is LOW
delay(250);
}
คำอธิบายโปรแกรม
การกำหนด #define เป็นกำหนดให้ขา 16 ของ ESP8266 เป็นขา D0 บน NodeMCU และกำหนดให้ขา D0 ของ NodeMCU ต่อกับ LED ที่อยู่บนบอร์ด จึงเรียก LED แทนขา D0
ในส่วนฟังก์ชั่น setup() นั้นกำหนดให้ขา LED เป็นโหมด Digital Output
ส่วนภายในฟังก์ชั่น loop() เริ่มจากสั่งเขียนค่าลอจิก HIGH (5 V) ไปยัง ขา LED จากนั้นประวิงเวลา 250 ms แล้วสั่งให้เขียนค่าลอจิก LOW (0 V) ไปที่ขา LED และประวิงเวลาอีก 250 ms จากนั้นกลับไปยังคำสั่งแรกในฟังก์ชั่น วนลูปซ้ำเช่นนี้ไปเรื่อยๆ
หมายเหตุ หากการกระพริบของหลอดไฟถี่จนเกินไป ทำให้สังเกตผลได้ไม่ชัดเจน สามารถปรับเพิ่มค่าเวลาประวิงได้ตามความเหมาะสม
4.คลิกปุ่ม เพื่อคอมไพล์โค้ด แล้วทำการบันทึกไฟล์เป็น “Relay” ไว้บน Desktop (ดังภาพตัวอย่างด้านล่าง เมื่อคอมไพล์เสร็จสิ้นและไม่มีข้อผิดพลาด ทำการอัพโหลดโดยคลิกปุ่ม
5.จากนั้นสังเกตผลลัพธ์ จะเห็นว่าหลอดไฟกระแสสลับมีการกระพริบติดและดับพร้อมๆ กับหลอด LED ที่อยู่บนบอร์ด NodeMCU/ESP8266
สรุปผล
ในการทดลองนี้ เราทดลองการใช้งาน Digital Output ของบอร์ด NodeMCU/ESP8266 ในการขับอุปกรณ์โหลดสูงผ่านโมดูล Relay โดยผู้ศึกษาจำเป็นต้องรู้ว่าวงจรที่นำไปขับทำงานแบบใด Active Low หรือ Active High เพื่อที่เราจะสามารถเขียนโปรแกรมได้อย่างถูกต้อง
แบบฝึกหัดทดสอบความเข้าใจ
- หากต้องการให้บอร์ด NodeMCU/ESP8266 ไปใช้ควบคุมการเปิดปิดหลอดไฟ 220 VAC จำเป็นต้องใช้อะไรเป็นอุปกรณ์เสริม
- ถ้าหาก Relay module ที่ต่ออยู่ที่ขา D1 จะทำงานก็ต่อเมื่อได้รับลอจิก ‘0’ ต้องคำสั่งที่ทำให้หลอดไฟติด
เฉลย-แบบฝึกหัดทดสอบความเข้าใจ
- Relay module รีเลย์โมดูล
- digitalWrite(D1,LOW);
VDO Link : https://www.youtube.com/watch?v=q7YnsLM-y5c