Internet of Things (IoT)NodeMCU 73
ขาพอรตของโมดูล NodeMCU มีความสามารถในการขับกระแสไฟฟาเมื่อทํางานเปนพอรต เอาตพุตไดสูงสุด 15mA ที่ +3.3V ซึงเพี ่ ยงพอตอกับโหลดกําลังไฟฟาตํา่ อาทิ LED หรือโมดูล LCD หาก ตองการนําไปขับโหลดกําลังไฟฟาสูง เชน หลอดไฟ หรือเครืองใช ่ ไฟฟา จะตองกระทําผานวงจรขับ โหลดกระแสไฟฟาสูง ซึงมี ่ อุปกรณหลักเปนตัวชวยคือ รีเลย หรือ โซลิดสเตตรีเลย ในบทนีจะนํ ้ าเสนอถึงขอมูลเบืองต ้ นและแนวทาง ตลอดจนตัวอยางการเขียนโปรแกรมเพือควบ ่ คุมใหโมดูล NodeMCU-12E ทํางานกับอุปกรณและวงจรขับโหลดกระแสไฟฟาสูงโดยใชอุปกรณทีเรี่ ยก วา โซลิดสเตตรีเลย (solid state relay) อันเปนรีเลยทีใช ่ อุปกรณอิเล็กทรอนิกสกําลังทําหนาทีในการตั ่ ด ตอแรงดันไฟฟา มีการแยกระบบกราวดของตัวควบคุมหรือบอรดไมโครคอนโทรลเลอรออกจากวงจร ขับโหลดกระแสไฟฟาสูงออกจากกัน ทําใหลดปญหาดานสัญญาณรบกวนลงไดอยางมาก
รูปที่ 5-1 วงจรภายในและการทํางานของโซลิดสเตตรีเลย
74 Internet of Things (IoT)NodeMCU
5.1 ความรูเบื้องตนเกี่ยวกับโซลิดสเตตรีเลย โซลิดสเตตรีเลย (solid-state relay) คือรีเลยที่ไมมีกลไกเคลื่อนไหว ภายในจะเปนอุปกรณสาร กึ่งตัวนําทั้งหมด ประกอบดวย LED อินฟราเรด และออปโตไตรแอก ดังแสดงวงจรภายในตามรูปที่ 5-1 สัญญาณควบคุมแรงดันตํ่าจะถูกสงมายัง LED อินฟราเรด เมื่อ LED ทํางานจะขับแสงอินฟราเรด ไปยังออปโตไตรแอก เพือให ่ นํากระแสไฟฟา ที่ขาเอาตพุตของออปโตไตรแอกก็จะมีตอกับไฟสลับ แรงดันสูง ทําใหแรงดันตํ่าจากวงจรควบคุมและแรงดันไฟสูงทางฝงของโหลดหรืออุปกรณไฟฟาที่ นํามาตอจะถูกแยกออกจากอยางเด็ดขาด และใชการเชื่อมโยงทางแสงในการควบคุมการทํางานแทน ปกติจะพบอุปกรณแบบนี้ในเครื่องจักรอุตสาหกรรม แตปจจุบันมีการนํามาใชในเครื่องใชไฟฟาใน บาน อาทิ ในเครื่องซักผาอัตโนมัติ เปนตน
5.2 แนะนําบอรดโซลิดสเตตรีเลยสําหรับการทดลองและใชงานไดจริง บอรดโซลิดสเตตรีเลยที่นํามาแนะนําในบทนี้คือ ZX-SSR01 ดังแสดงหนาตาและสวน ประกอบตางๆ ในรูปที่ 5-2 โดยบอรดขับโซลิดสเตตรีเลย ZX-SSR01 ใชโซลิตสเตตรีเลยเบอร S202S02 ผลิตโดย Sharp Microelectronics ประเทศญีปุ่ น (http://sharp-world.com) เปนอุปกรณหลัก มีขอมูล ทางเทคนิคที่สําคัญดังนี้
L N AC INPUT
G S +
INPUT
ZX-SSR01
S202S02
+
L N OUTPUT
CAUTION ! HIGH VOLTAGE
Solid-State Relay driver ON-OFF AC voltage
รูปที่ 5-2 แสดงสวนประกอบสําคัญของบอรดขับโซลิดสเตตรีเลย ZX-SSR01
Internet of Things (IoT)NodeMCU 75
รูปที่ 5-3 ตัวถัง การจัดขา และไดอะแกรมการทํางานของโซลิดสเตตรีเลยเบอร S202S20 โซลิดสเตตรีเลย S202S20 มีตัวถัง, การจัดขา และไดอะแกรมการทํางานภายในแสดงดังรูปที่ 5-3 จะเห็นวามีการแบงสวนการทํางานเปน 2 สวนทีแยกจากกั ่ น นันคื ่ อ LED อินฟราเรดสําหรับรับ สัญญาณควบคุมแรงดันตํา่ และสวนของวงจรออปโตไตรแอกหรือสวิตชไฟฟาแรงดันสูงทีทํ่ างานดวย แสง วงจรทังสองส ้ วนจะเชือมโยงกั ่ นดวยแสง ทําใหกราวดของแรงดันตําไม ่ ไดเชือมต ่ อกับวงจรไฟฟา กระแสสลับโดยตรง ทําใหไมเกิดการรบกวนหรือแรงดันกระชากยอนกลับไปทําใหวงจรสวนควบคุม เสียหายได ในสวนของวงจรออปโตไตรแอกภายในโซลิดสเตตรีเลยยังมีวงจรเล็กๆ ทีเรี่ ยกวา วงจรกระตุน ทีมุ่ ม 0 องศาหรือ zero crossing trigger ซึงทํ ่ าหนาทีจั่ ดการใหสัญญาณกระตุนการทํ างานของไตรแอก เกิดขึนที ้ มุ่ ม 0 องศาของสัญญาณไฟสลับ เพือช ่ วยลดสัญญาณรบกวนและทําใหการนํากระแสไฟฟาของ ไตรแอกทําไดอยางเต็มที่ คุณสมบัติทางเทคนิคที่สําคัญมีดังนี้ อินพุตรับแรงดันไฟตรงไดตั้งแต 1.2 ถึง 35Vdc ตองตอตัวตานทานจํากัดกระแสไฟฟา เพิมเติ ่ ม เพือให ่ เกิดแรงดันตกครอม LED อินฟราเรดภายในไมเกิน 1.4V กระแสไฟฟากระตุนทางอินพุตตํ่าสุด 8mA กระแสไฟฟาอินพุตสําหรับการกระตุนใหทํางานควรมีคา 16 ถึง 24mA และกระแส ไฟฟาอินพุตสําหรับหยุดการทํางานมีคา 0 ถึง 0.1mA ขับโหลดไฟสลับไดตั้งแต 80 ถึง 240Vac กระแสไฟฟาสูงสุด 8A ความถี่ 47 ถึง 63Hz
มีตัวถังเปนแบบ SIP 4 ขา ติดตั้งลงบนแผนวงจรพิมพได
หากนํามาใชขับโหลดทีต ่ องการกระแสไฟฟาสูงกวา 3A จะตองติดตังแผ ้ นระบายความ
รอนที่ดานหลังของตัวถัง
76 Internet of Things (IoT)NodeMCU
ZX-SSR01 Solid State Relay driver board INPUT
D3/GPIO0
AC INPUT
NodeMCU-12E*
OUTPUT
รูปที่ 5-4 ตัวอยางวงจรใชงานโมดูล NodeMCU-12E กับบอรดขับโซลิดสเตตรีเลย ZX-SSR01
5.3 แนวทางการใชงานโมดูล NodeMCU-12E กับบอรดขับโซลิดสเตตรีเลย ตัวอยางวงจรสําหรับใชงานโมดูล NodeMCU-12E กับบอรดขับโซลิดสเตตรีเลย ZX-SSR01 แสดงในรูปที่ 5-4 อาจกลาวไดวา นีคื่ อวงจรเตารับไฟสลับแบบควบคุมดวยไมโครคอนโทรลเลอร โดย เตารับนี้จะทํางานเมื่อไดรับสัญญาณลอจิก “1” จากไมโครคอนโทรลเลอร และหยุดทํางานเมื่อไดรับ สัญญาณลอจิก “0” ในดานการเขียนโปรแกรมควบคุม ทําไดงายๆ โดยมีขั้นตอนดังนี้ 1. กําหนดใหขาพอรตของ NodeMCU-12E ที่ใชงานเปนเอาตพุต 2. เขียนขอมูล “1” ไปยังขาพอรตที่ตอกับอินพุตของ ZX-SSR01 หากตองการใหโซลิด สเตตรีเลยทํางาน 3. เขียนขอมูล “0” ไปยังขาพอรตที่ตอกับอินพุตของ ZX-SSR01 หากตองการใหโซลิด สเตตรีเลยหยุดทํางาน
Internet of Things (IoT)NodeMCU 77
5.4 ตัวอยางการทดลองใชงาน NodeMCU-12E เพือขั ่ บโหลดกระแสไฟฟาสูงดวยโซลิดสเตตรีเลย การใชงาน NodeMCU-12E กับบอรดขับโซลิดสเตตรีเลยไมมีความยุงยากในเชิงการเขียน โปรแกรม เนื่องจากมีการทํางานคลายกับการขับ LED โดยเมื่อสงขอมูล “1” ไปยังบอรด ZX-SSR01 จะทําใหโซลิดสเตตรีเลยทํางาน LED ที่ใชแสดงสถานะจะติดสวาง หากสงขอมูล “0” ก็จะเปนการ สั่งใหโซลิดสเตตรีเลยหยุดทํางาน LED ที่ใชแสดงสถานะจะดับลง (1) ทําการตอวงจรตามรูปที่ 5-5 ในตอนแรกยังไมตองตอไฟสลับ 220Vac และโหลด (ในที่นี้ แนะนําเปนโคมไฟหลอดไสขนาด 10W แตไมเกิน 100W) เขามายังบอรด ZX-SSR01
A0
G S +
+
POWER
5
D1
NodeMCU carrier board
16
+5Vdc
D0
AX-NodeMCU
Vin
D1
INPUT
4
TxD0 RxD0
+Vcc +5V +3V3
D10
1
D9
3
0
D3 14
D5 13
D7 5
WiFi
D8
D0 16 D1 5 D2 4 D3 0 D4 2 +3V3 GND D5 14 D6 12 D7 13 D8 15 D9 3 D10 1 GND
ESP-12E
D4
A0 RSV RSV SD3 10 D12 SD2 9 D11 INT/SD1 MOSI/CMD MISO/SD0 SCK/CLK GND +3V3 EN nRST GND
GPIO
12
INT/SD1 MOSI/CMD MISO/SD0 SCK/CLK
D2
D3 GPIO
D6
SD2
D11 9
ADC SELECT
ON
2
VR
TxD2
SD3
D12 10
A0
Solid-State Relay driver ON-OFF AC voltage
+S
ZX-SSR01
CAUTION ! HIGH VOLTAGE
D
OUTPUT
INPUT
D3/GPIO0
ZX-SSR01 Solid State Relay driver board
AC INPUT
SW1
ZX-SWITCH01
S202S02
D1/GPIO5
L N OUTPUT
R1 4.7k
L N AC INPUT
+3.3V
NodeMCU-12E*
IoT Education Kit
รูปที่ 5-5 วงจรทดลองใชงานโมดูล NodeMCU-12E กับบอรดขับโซลิดสเตตรีเลย ZX-SSR01 เพื่อสราง เปนวงจรเตารับควบคุมดวยไมโครคอนโทรลเลอร (ในทีนี่ คื้ อ NodeMCU-12E)
78 Internet of Things (IoT)NodeMCU
#define sw1 D1 // Declare variables #define SSR1 D3 int st_sw1 = 0; int st_1 = 0; int last_st_sw1 = 0; // Set current state void setup() { pinMode(SSR1, OUTPUT); pinMode(sw1, INPUT); } void loop() { st_sw1 = digitalRead(sw1); // Read the input switch status if ((st_sw1 == 0) && (last_st_sw1 == 1)) // Check switch pressing { st_1 = ~st_1; // Toggle digitalWrite(SSR1, st_1) // Activate Solid-state relay delay(250); // Short delay } last_st_sw1 = st_sw1; // Keep the current status of switch }
โปรแกรมที่ 5-1 ไฟล NodeMCU_SSR.ino โปรแกรมสําหรับใชงาน NodeMCU-12E กับโซลิดสเตตรีเลย (2) เขียนโปรแกรมที่ 5-1 ทําการคอมไพลและอัปโหลดไปยัง NodeMCU-12E จากนั้นทําการ รันโปรแกรม เมือเริ ่ มทํ ่ างาน โซลิดสเตตรีเลยบนบอรด ZX-SSR01 ยังไมทํางาน จนกวาจะมีการกดสวิตช ที่ตอกับขาพอรต D1 เมื่อมีการกดสวิตช NodeMCU-12E จะทําการสงขอมูล “1” ออกไปยังขาพอรต D3 เพือขั ่ บใหโซลิดสเตตรีเลยบนบอรด ZX-SSR01 ทํางาน LED ที่ใชแสดงสถานะ Active ของบอรด ZX-SSR01 ติดสวาง และจะหยุดทํางานเมื่อมีการกดสวิตชที่ตอกับขาพอรต D1 อีกครั้ง (3) จากนั้นปลดไฟเลี้ยงวงจรออก ทําการเชื่อมตอสายไฟสลับ 220Vac และโคมไฟเขามายัง บอรด ZX-SSR01 โดยยังไมตองเสียบปลักเพื ๊ อจ ่ ายไฟสลับ ในขันตอนนี ้ ต้ องใชความระมัดระวังอยางสูง อยาใหเกิดการลัดวงจรอยางเด็ดขาด (4) เสียบปลั๊กเพือจ ่ ายไฟสลับ 220Vac เขาสูบอรด ZX-SSR01 (5) จายไฟใหแกวงจรของ NodeMCU-12E จากนั้นกดสวิตช จะเห็นโคมไฟทํางาน และหยุด ทํางานเมื่อกดสวิตชอีกครั้ง (6) หลังจากทดลองเสร็จแลว ใหถอดปลักไฟสลั ๊ บ 220Vac ออกกอนเปน ลําดับแรก เพื่อลดความเสี่ยงในการทํางานกับไฟสลับแรงดันสูง