เกี่ยวกับโปรเจกต์
ปัญหา :
เรา แทบไม่มี ตัวเลือกเครื่องทำน้ำอัดลมอัจฉริยะเลยสักนิด ส่วนใหญ่ก็ ใช้กับสมาร์ทโฮมไม่ได้ อันที่หาซื้อได้ก็ ราคาแพงโคตร แล้วก็ ดูแลรักษายาก ด้วย
ทางแก้ :
เลยคิดไอเดีย ทำเองแบบประหยัด ขึ้นมา มันทำงานกับ Alexa ได้ด้วย ในหน้านี้จะมี ขั้นตอน ครบถ้วนให้ทำตาม
ผลลัพธ์ :
สุดท้ายแล้วน้องจะได้ เครื่องทำน้ำอัดลมราคาถูกสุดเจ๋ง ที่เชื่อมต่อกับอุปกรณ์สมาร์ทโฮมได้ผ่านการตั้ง Routine ในแอป Alexa น้องก็ ตั้งเวลา ให้มันทำงานได้ด้วย งั้นก็ตั้งให้มันทำน้ำอัดลมให้ ทุกเช้าเลย! มันจะ ทำให้ชีวิตง่ายขึ้นเป็นกอง! และควบคุมจากที่ไหนก็ได้ เพราะมันเชื่อมต่อกับ Arduino Cloud
นอกจากนี้ น้องยังจะได้ เรียนรู้ สกิลใหม่ๆ เกี่ยวกับ IoT และ Arduino อีกด้วย! มันต้องสนุกแน่นอน!
วิดีโอของพี่ใน YouTube
ถ้าน้องเป็นมือใหม่หัดขับ
นี่คือแหล่งข้อมูลสำหรับผู้เริ่มต้น :

โครงสร้าง (เฟรม)
เริ่มแรกเลย สร้างโครงขึ้นมาก่อน พี่เลือกไม้เป็นวัสดุเพราะมันเลื่อยและทาสีง่าย

สุดท้ายพี่ก็เพิ่มแผ่นพลาสติกใส (plexiglass) เข้าไปด้วย ดูเท่ขึ้นอีกเป็นกอง แล้วก็เพิ่มไฟสวยๆ ไปด้วย

พอทำโครงและทาสีเสร็จแล้ว ตอนนี้ก็ต้องเจาะรูสำหรับท่อ
ปั๊ม
จากนั้นต้องคิดว่าจะใช้ปั๊มแบบ เพอริสตัลติก (peristaltic) หรือ ปั๊มลม (air pump) จากนั้นก็เจาะรู 1 หรือ 2 รูสำหรับท่อ

ท่อ (Tubing)
ต้องมี ท่อ ไว้ปั๊มของเหลวนะน้อง แนะนำให้ใช้ท่อแบบ ใส นิ่ม แบบนี้เลย

ข้อต่อ (Fittings)
ถ้าอยากจะ รวม เอาต์พุต 2 อันให้เป็นทางเดียวล่ะก็ พี่แนะนำให้ใช้ข้อต่อแบบนี้จ้า

Opla
จากนั้นก็ ประกอบ Opla เข้าด้วยกัน แล้วยัดลงเคสไปเลย

Neopixel ring
พี่เพิ่ม Neopixel ring เข้าไปด้วย มันคือวง LED แบบ addressable ที่มี หลอด RGB อยู่ข้างใน โปรเจคนี้ใช้แบบ 16 LED นะ

การเดินสาย (Wiring)
จากนั้นก็แค่ บัดกรี ทุกอย่างเข้าด้วยกันตามนี้เลย:

ฮาร์ดแวร์และโครงสร้างพื้นฐาน IoT
แกนหลักของโปรเจคนี้สร้างขึ้นบนสแต็กฮาร์ดแวร์-IoT ที่น่าเชื่อถือ:
- Arduino MKR WiFi 1010: เป็น "สมอง" ของโปรเจค จัดการการสื่อสาร WiFi แบบหลายทิศทางและประสานงานการซิงค์กับคลาวด์ของ Alexa
- โมดูลรีเลย์ (4-Channel): ให้ "ลิงก์พลังงาน" ที่แม่นยำและน่าเชื่อถือสำหรับปั๊มน้ำดื่มแต่ละตัว
- ปั๊มไดอะแฟรม 12V: เป็นอินเทอร์เฟซทางกายภาพความจุสูงสำหรับการจ่ายเครื่องดื่ม
- Amazon Alexa Skill: สำคัญสำหรับการให้อินเทอร์เฟซเสียงที่ชัดเจนและประหยัดพลังงาน
- ตู้โซดาแมชชีน: ให้อินเทอร์เฟซทางกายภาพระดับมืออาชีพและปกป้องชิ้นส่วนภายใน
- สาย Micro-USB: ใช้สำหรับโปรแกรม Arduino และเป็นอินเทอร์เฟซหลักสำหรับคอนโทรลเลอร์ระบบ
Arduino IoT Cloud
เมื่อทุกอย่างพร้อมแล้ว เราก็เริ่มตั้งค่า Cloud ได้เลย เข้าไปที่ Arduino Cloud แล้วล็อกอิน เข้าแท็บ Things และสร้าง Thing ใหม่ ("CREATE THING")

เริ่มด้วยการกด "Select Device" จากนั้นกด "Set up a new device" และตั้งค่าให้เรียบร้อย พอเสร็จแล้ว ด้านล่างหัวข้อ "Network" ให้กด "Configure" มาเริ่มเพิ่มตัวแปรกัน

กด "Add variable" และสร้างตัวแปรเหล่านี้ (ต้องเขียนให้เหมือนในรูปเป๊ะๆ นะ!):

เมื่อเสร็จแล้ว ให้ไปที่ "Dashboards" และกด "Build dashboard" ในแดชบอร์ด ให้เพิ่มปุ่มห้าปุ่ม สวิตช์สองอัน และเกจหนึ่งอัน

ทีนี้มาปรับแต่งวิดเจ็ตกัน เข้าโหมดแก้ไขแล้วกดที่จุดสามจุด กด "Edit settings" ตอนนี้ต้องกด "Link Variable" และลิงก์วิดเจ็ตทั้งหมดตามในรูปเลย


จัดไปวัยรุ่น! เมฆเสร็จแล้ววว งั้นไปต่อที่โค้ดกันเลยดีกว่า สู้งานนะน้อง!
ด้านเทคนิค: การสั่งงานด้วยเสียงและรีเลย์บนคลาวด์
โปรเจคนี้จะเผยให้เห็นเลเยอร์ที่ซ่อนอยู่เบื้องหลังการสั่งเทน้ำอัดลมง่ายๆ:
- เลเยอร์ระบุตัวตน: Amazon Alexa ทำหน้าที่เป็นอินเตอร์เฟซรับเสียงความละเอียดสูง คอยฟังคำสั่งเรา (เช่น "Alexa, pour me a soda") แล้วส่งต่อไปยังคลาวด์
- เลเยอร์แปลงสัญญาณ: ระบบใช้โปรโตคอล WiFi ความเร็วสูง (ผ่านเฟิร์มแวร์ WiFiNINA) ในการรับแพ็กเก็ตข้อมูลและประสานงานงานสำคัญต่างๆ
- เลเยอร์เชื่อมต่อคลาวด์: Arduino IoT Cloud ทำหน้าที่เป็นแดชบอร์ดดูสถานะเครื่องเทน้ำอัดลมแบบ HD (เช่น ปั๊มเปิด/ปิด)
- เลเยอร์ประมวลผลลอจิก: โค้ด Arduino ใช้กลยุทธ์ "ซิงค์กับคลาวด์" คือมันจะอ่านค่าตัวแปรที่กำหนดโดยเสียงจากคลาวด์ แล้วมาจับคู่กับสถานะของรีเลย์ เพื่อควบคุมการเทเครื่องดื่มให้ปลอดภัยและเป็นจังหวะ
- ลูปการสื่อสาร: สตริงเทเลเมทรีจะถูกส่งเป็นจังหวะๆ ไปที่ Serial Monitor ตอนเริ่มต้นปรับเทียบ เพื่อประสานสถานะ
เขียนโค้ด
มาเริ่มเขียนโค้ดกันเถอะ! ก่อนอื่นให้ไปที่แท็บ "Things" (ใน IoT Cloud) จากนั้นเปิด Thing ที่เราตั้งค่าไว้ แล้วกดที่ "Sketch" ตามด้วย "Open full editor"

ทีนี้ก็แค่ก๊อปโค้ดของพี่ด้านล่างหน้านี้ไปวางได้เลย น้องต้องคัดลอกโค้ดในแท็บ "SodaMachine" และ "thingProperties" ไปใส่ในแท็บของน้อง ส่วน "Secret" จะถูกเซ็ตอัตโนมัติ

ต่อไปให้ไปตั้งค่าในส่วน "// settings" ที่ด้านบนสุดของโค้ดพี่ ตอนนี้น้องต้องตั้งค่าขนาดแก้ว โดยการต่อปั๊มเข้ากับไฟ แล้วใช้จับเวลาว่าต้องใช้เวลาเท่าไหร่ถึงจะเทได้ "half" และ "full" (M1 คือมอเตอร์ 1, M2 คือมอเตอร์ 2) หน่วยเป็นมิลลิวินาทีนะจ๊ะ! น้องยังสามารถตั้งชื่อเครื่องดื่มได้ที่บรรทัดที่ 19 และ 25 และตั้งสีไฟได้ที่บรรทัดที่ 29 มันจะเปลี่ยนธีมทั้งหมดของอินเตอร์เฟซเลยล่ะ ห้ามช็อตนะตัวนี้!

โค้ดเสร็จเรียบร้อย! ทีนี้ก็เหลือแค่ ติดตั้ง arduino agent แล้วก็เชื่อม Oplà และ อัพโหลด โค้ดลงไปได้เลย

วิธีทำเครื่องดื่มอัตโนมัติแบบ Step-by-Step (แบบกวนๆ)
กระบวนการจ่ายน้ำอัดลมอัจฉริยะของเราออกแบบมาให้เวิร์คสุดๆ ตามนี้เลย:
- จัดตั้งฐานทัพ (Initialize Workspace): ตั้งปั๊มและรีเลย์ให้เข้าที่ในโครงเครื่อง แล้วต่อสายให้ถูกขาพ่อขาแม่กับ Arduino ให้เรียบร้อย
- เชื่อมต่อคลาวด์ (Setup Cloud Sync): ใน Arduino IoT Cloud ให้สร้างแดชบอร์ดและตั้งค่าคุณสมบัติที่สั่งงานด้วยเสียงได้ (เช่น "Dispense") เพื่อประสานงานการทำงาน
- ลูปคุยกับตัวเอง (Internal Dialogue Loop): สถานีของเราจะคอยตรวจสอบสถานะแบบเรียลไทม์และอัพเดทสถานะปั๊มตามคำสั่งจากคลาวด์และเสียงที่ได้ยิน
- ดูผลลัพท์แบบสดๆ (Visual and Data Feedback Integration): ดูแดชบอร์ดในมือถือตัวเองเต้นเป็นจังหวะไปกับสถานะเครื่อง และตามการตั้งค่าต่างๆ ของเครื่องดื่มจากระยะไกลได้เลย
ตั้งค่า Alexa
ทีนี้เราจะมา ตั้งค่า Alexa กัน ซึ่งจะใช้ได้ทั้งบนมือถือและผลิตภัณฑ์ Echo ต่างๆ ดูวิดีโอประกอบได้เลย:
เตรียมตัวให้พร้อม แล้วไป ลุย กับ Smart Soda Machine กัน! ลองสำรวจฟีเจอร์ทั้งหมด ทั้งบนคลาวด์และ Alexa ดูนะ!

วิธีใช้งาน
นี่คือ คู่มือ วิธีใช้งานผ่านคลาวด์แบบคร่าวๆ:

Cloud games
โปรเจคนี้เกิดขึ้นได้เพราะมีคลาวด์เกมส์สนับสนุนอยู่เบื้องหลังนะ!

โปรเจคนี้ยังได้รับรางวัลอันดับที่ 4 จากงานแข่งขันออกแบบอีกด้วย

ไอเดียพัฒนาต่อ (Future Expansion)
- เพิ่มจอ OLED ไว้โชว์ข้อมูล: ติดจอ OLED ข้างเครื่องเพื่อแสดง "Current IP" หรือ "สัญญาณ WiFi" ก็ได้
- เพิ่มเซนเซอร์วัดระดับน้ำแบบแม่นยำ: ต่อเซนเซอร์อัลตราโซนิคแบบพิเศษเพื่อวัดระดับน้ำในขวดแบบไร้สายและส่งข้อมูลขึ้นคลาวด์
- สร้างเว็บแดชบอร์ดสำหรับเก็บประวัติ: ทำเว็บแดชบอร์ดเฉพาะทางบนสมาร์ทโฟนผ่าน WiFi/BT เพื่อติดตามและบันทึกประวัติการทำเครื่องดื่มทั้งหมด
- เพิ่มลอจิกปรับแต่งการทำงานอัตโนมัติ: เพิ่มโค้ดลอจิกพิเศษให้ระบบเปลี่ยนการทำงานอัตโนมัติตามพฤติกรรมการใช้ของคนใช้!
[!IMPORTANT] เพื่อป้องกันน้ำล้นแก้ว ห้ามลืมตั้งค่า เวลา (volumetric timers) ในโค้ดให้เหมาะสม และต้องมี ระบบ Fail-Safe ในลูปเพื่อรับมือกรณี WiFi หลุดด้วยนะ!
Smart Soda Machine เป็นโปรเจคที่เพอร์เฟกต์สำหรับสายวิทย์-เทคที่อยากได้เครื่องมือหุ่นยนต์แบบอินเทอร์แอคทีฟและสนุกๆ ไปเลย! สู้งานนะน้อง!