Alexa, Light My Mood
หมายเหตุ: บทความนี้อาจมีการอัปเดตด้วยเนื้อหาที่ทันสมัยกว่า คุณสามารถดูเวอร์ชันล่าสุดได้ที่ Arduino Docs
บทนำ: พลิกโฉมการควบคุมแสงสว่างด้วย Arduino IoT Cloud
ในยุคของ Smart Home การควบคุมอุปกรณ์ด้วยเสียงไม่ใช่ความฝันที่ไกลเกินเอื้อมอีกต่อไป Arduino IoT Cloud คือแพลตฟอร์มที่ทรงพลังที่ช่วยให้การสร้างอุปกรณ์ Internet of Things (IoT) เป็นเรื่องง่ายและรวดเร็ว ในโปรเจกต์นี้ เราจะยกระดับการควบคุมแสงสว่างไปอีกขั้น ด้วยการควบคุม MKR RGB Shield ผ่านระบบสั่งการด้วยเสียงระดับโลกอย่าง Amazon Alexa โดยใช้ Official Arduino Alexa Skill เป็นสะพานเชื่อม
หากคุณยังใหม่กับ Arduino IoT Cloud เราขอแนะนำให้คุณลอง โปรเจกต์เริ่มต้นนี้ เพื่อทำความเข้าใจพื้นฐานของการตั้งค่าบอร์ด การสร้าง Things และการกำหนด Properties ก่อนที่จะเจาะลึกในบทช่วยสอนนี้
ส่วนที่ 1: การตั้งค่าบน Arduino IoT Cloud
ขั้นตอนแรกเริ่มต้นที่ IoT Cloud ซึ่งเราจะสร้าง "Thing" ใหม่และตั้งชื่อที่สื่อความหมาย (เช่น MoodLight_Project) จากนั้น ให้เลือกบอร์ดที่คุณใช้งาน (แนะนำบอร์ดตระกูล MKR ที่มีชิป WiFi เช่น MKR WiFi 1010)
หัวใจสำคัญของโปรเจกต์นี้คือการเพิ่ม Property เพื่อเป็นตัวแทนของ RGB Shield:
- Type: ต้องเป็น ColoredLight เท่านั้น เนื่องจากประเภทนี้ถูกออกแบบมาเพื่อรองรับการควบคุมแสง RGB ที่ครอบคลุม ทั้งการเปิด/ปิด การปรับความสว่าง และการเปลี่ยนสี (Hue/Saturation)
- Permission: ตั้งค่าเป็น Read & Write เพื่อให้ Alexa สามารถส่งคำสั่งไปยังบอร์ดได้ และบอร์ดสามารถรายงานสถานะกลับไปยัง Cloud ได้

ข้อควรระวัง: สำหรับการที่ Alexa จะค้นพบอุปกรณ์ได้ โปรเจกต์นี้ ต้อง ใช้ตัวแปรที่อยู่ในหมวดหมู่ Smart Home เท่านั้น มิฉะนั้น Alexa Skill จะไม่สามารถซิงค์ข้อมูลเพื่อแสดงผลบนแอปได้

เมื่อตั้งค่าเสร็จสมบูรณ์ ให้คลิกปุ่ม Edit Sketch เพื่อเข้าสู่ Web Editor สำหรับการเขียนโปรแกรม
ส่วนที่ 2: การเขียนโปรแกรมเชิงลึก (Arduino Web Editor)
ในส่วนของ Sketch ระบบจะสร้างโครงสร้างพื้นฐานให้เราโดยอัตโนมัติ แต่เราจำเป็นต้องเพิ่ม logic เพื่อควบคุมฮาร์ดแวร์จริง
การติดตั้ง Library ที่จำเป็น
เราจำเป็นต้องใช้ประโยชน์จากความสามารถของสอง Library หลัก:
#include <ArduinoGraphics.h>
#include <Arduino_MKRRGB.h>
- ArduinoGraphics: นี่คือเอนจิ้นหลักที่ช่วยในการวาดรูปทรงและจัดการพิกเซล
- Arduino_MKRRGB: นี่คือ Driver ที่ออกแบบมาโดยเฉพาะเพื่อเชื่อมต่อกับ Matrix LED บน MKR RGB Shield
การเริ่มต้นระบบ (Setup)
ในฟังก์ชัน setup() เราจำเป็นต้องตรวจสอบการเชื่อมต่อของ Shield หากมีปัญหาด้านฮาร์ดแวร์ โปรแกรมจะแจ้งเตือนผ่าน Serial Monitor:
if (!MATRIX.begin()) {
Serial.println("Failed to initialize MKR RGB shield!");
while (1);
}
MATRIX.brightness(10);
- วิศวกรรมการจัดการพลังงาน: เราตั้งค่าความสว่างเริ่มต้นที่ 10 (จาก 255) เพื่อความปลอดภัยเมื่อดึงพลังงานจากพอร์ต USB ของคอมพิวเตอร์ หากคุณต้องการใช้งานเต็มประสิทธิภาพด้วยความสว่างที่สูงขึ้น คุณควรติดตั้งแหล่งจ่ายไฟภายนอก 5V 4A ผ่านช่องเสียบไฟเสริมบน Shield
Callback Function: กลไกการเปลี่ยนสีตามสั่ง
หัวใจของการทำงานคือฟังก์ชัน onMoodLightChange() ซึ่งจะถูกเรียกใช้ทันทีเมื่อใดก็ตามที่ค่ามีการเปลี่ยนแปลงใน Cloud (เช่น เมื่อคุณสั่งการ Alexa)
void onMoodLightChange() {
uint8_t r, g, b;
// Retrieve RGB color values from the moodLight variable received from the Cloud
moodLight.getValue().getRGB(r, g, b);
MATRIX.beginDraw();
if (moodLight.getSwitch()) {
// Display received color values via Serial Monitor for debugging
Serial.println("R:"+String(r)+" G:"+String(g)+ " B:"+String(b));
// Command to fill the entire area of the Matrix with color
MATRIX.fill(r, g, b);
MATRIX.rect(0, 0, MATRIX.width(), MATRIX.height());
}
else {
// If the switch status is OFF, turn off all lights
MATRIX.clear();
}
MATRIX.endDraw();
}
- Logic การทำงาน: โปรแกรมจะดึงค่าสีออกมาเป็น 3 สีหลัก (R, G, B) จากนั้นจะตรวจสอบสถานะของไฟว่าเปิดอยู่หรือไม่ (
getSwitch()) หากเปิดอยู่ จะใช้ฟังก์ชันMATRIX.rectเพื่อเติมเต็มพื้นที่ทั้งหมดของ Shield (7x5 Matrix LED) ด้วยสี ซึ่งจะต้องปิดท้ายด้วยendDraw()เสมอเพื่อให้การแสดงผลมีผลกับ LED จริง
ส่วนที่ 3: การตั้งค่า Amazon Alexa Skill
เมื่อฝั่งฮาร์ดแวร์พร้อมแล้ว ขั้นตอนต่อไปคือการเชื่อมต่อโลกของ Arduino เข้ากับ Amazon Alexa ผ่านสมาร์ทโฟนของคุณ
- ดาวน์โหลดแอป Amazon Alexa (iOS/Android) และเข้าสู่ระบบ
- ทำตามขั้นตอนเพื่อติดตั้ง Arduino Skill ดังภาพด้านล่าง:
1/9: ไปที่เมนู "Devices"
2/9: เลือก "Your Smart Home Skills"
3/9: กด "Enable Smart Home Skills"
4/9: ค้นหา "Arduino" ในช่องค้นหา
5/9: เลือก Official Arduino Skill และกด "Enable to Use"
6/9: เข้าสู่ระบบด้วยบัญชี Arduino Create ของคุณเพื่อเชื่อมโยงข้อมูล
7/9: เมื่อการเชื่อมโยงสำเร็จ ระบบจะแจ้งเตือนว่าได้รับอนุญาตการเข้าถึงแล้ว
8/9: กด "Discover Devices" เพื่อค้นหา Mood Light ของเรา
9/9: รอให้ Alexa สแกนหาอุปกรณ์บน Cloud ของคุณ
ส่วนที่ 4: การจัดการอุปกรณ์ในแอป Alexa
หลังจากค้นพบอุปกรณ์แล้ว คุณจำเป็นต้องตั้งค่าอีกเล็กน้อยเพื่อให้การควบคุมราบรื่นที่สุด
1/5: เมื่อพบอุปกรณ์แล้ว ให้คลิก "Set Up Device"
2/5: คุณสามารถจัดกลุ่มอุปกรณ์ (เช่น ห้องนั่งเล่น) เพื่อการควบคุมแบบกลุ่มได้
3/5: เลือกกลุ่มที่คุณต้องการและคลิก "Next"
4/5: ตั้งค่าเสร็จสมบูรณ์!
5/5: ตอนนี้คุณสามารถควบคุมสีได้โดยตรงจากหน้าจอสมาร์ทโฟนของคุณ
เคล็ดลับ: ชื่ออุปกรณ์ในแอป Alexa จะตรงกับชื่อ Property ที่คุณตั้งไว้ใน Arduino IoT Cloud หากคุณหาไม่พบ ให้ตรวจสอบอีกครั้งว่าคุณเลือกประเภทตัวแปรในส่วน "Smart Home" ถูกต้องแล้ว
สรุป: ลองสั่งการด้วยเสียงของคุณ!
ตอนนี้ทุกอย่างพร้อมแล้ว ลองเริ่มต้นคำสั่งด้วยวลีเหล่านี้:
- ”Alexa, turn on the light in the office” (เปิดไฟ)
- *”Alexa, change th