กลับไปหน้ารวมไฟล์
alexa-light-my-mood-309d23.md

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:

  1. Type: ต้องเป็น ColoredLight เท่านั้น เนื่องจากประเภทนี้ถูกออกแบบมาเพื่อรองรับการควบคุมแสง RGB ที่ครอบคลุม ทั้งการเปิด/ปิด การปรับความสว่าง และการเปลี่ยนสี (Hue/Saturation)
  2. Permission: ตั้งค่าเป็น Read & Write เพื่อให้ Alexa สามารถส่งคำสั่งไปยังบอร์ดได้ และบอร์ดสามารถรายงานสถานะกลับไปยัง Cloud ได้
หน้าจอ Dashboard หลังจากตั้งค่า Property เสร็จสมบูรณ์

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

การเลือกตัวแปรในหมวดหมู่ Smart Home

เมื่อตั้งค่าเสร็จสมบูรณ์ ให้คลิกปุ่ม 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 ผ่านสมาร์ทโฟนของคุณ

  1. ดาวน์โหลดแอป Amazon Alexa (iOS/Android) และเข้าสู่ระบบ
  2. ทำตามขั้นตอนเพื่อติดตั้ง Arduino Skill ดังภาพด้านล่าง:

ส่วนที่ 4: การจัดการอุปกรณ์ในแอป Alexa

หลังจากค้นพบอุปกรณ์แล้ว คุณจำเป็นต้องตั้งค่าอีกเล็กน้อยเพื่อให้การควบคุมราบรื่นที่สุด

เคล็ดลับ: ชื่ออุปกรณ์ในแอป Alexa จะตรงกับชื่อ Property ที่คุณตั้งไว้ใน Arduino IoT Cloud หากคุณหาไม่พบ ให้ตรวจสอบอีกครั้งว่าคุณเลือกประเภทตัวแปรในส่วน "Smart Home" ถูกต้องแล้ว


สรุป: ลองสั่งการด้วยเสียงของคุณ!

ตอนนี้ทุกอย่างพร้อมแล้ว ลองเริ่มต้นคำสั่งด้วยวลีเหล่านี้:

  • ”Alexa, turn on the light in the office” (เปิดไฟ)
  • *”Alexa, change th

ข้อมูล Frontmatter ดั้งเดิม

title: "Alexa, Light My Mood"
description: "Learn how to control your MKR RGB Shield using Arduino IoT Cloud and Amazon Alexa."
author: "Arduino_Genuino"
category: "Internet of Things, BT & Wireless"
tags:
  - "home automation"
  - "internet of things"
  - "alexa"
views: 25515
likes: 9
price: 1999
difficulty: "Easy"
components:
  - "1x Voice Controlled Light Bundle"
tools: []
apps:
  - "1x Arduino IoT Cloud"
  - "1x Amazon Alexa Official Arduino Skill"
  - "1x Arduino Web Editor"
downloadableFiles:
  - "https://create.arduino.cc/editor/Arduino_Genuino/42c17c42-6c91-43fe-9079-125f6ce94d9b/preview"
documentationLinks: []
passwordHash: "8f6c3be95a564f15a3e0afe5bc3141f9089165d58d3fa2fcbcd940f872ed295f"
encryptedPayload: "U2FsdGVkX1/iTVmfPSVDI9pxB11B9Zrb2m8M1Dm8Sw/s3mS96JXu2Si7XwozbQJjj9b/9wmuRmNMW60Q7jlvAtQVhNXT7PCgKL01s0uB5N1ZUscsQH/dTjl3gPtW2WrftZA4EtGlUbxZfttk3Oi8MzEp2pTX9UGM4Ut/e5n+scltu652TZBQOGLGPlK6IWx8"
seoDescription: "Learn to control the MKR RGB Shield using Arduino IoT Cloud and Amazon Alexa to create the perfect mood lighting."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/alexa-light-my-mood-309d23_cover.jpg"
lang: "th"