"ControlMyXMasTree.com" กลับมาแล้วในที่สุด - พร้อมฟีเจอร์ใหม่ที่เราเพิ่มเข้ามา!
หลังจากได้รับคำติชมที่ยอดเยี่ยมเมื่อปีที่แล้วสำหรับของตกแต่งคริสต์มาสที่ควบคุมผ่านเว็บเล็ก ๆ ของเรา และเนื่องจากมีหลายคนที่บอกเราว่าเรานำความสุขเล็ก ๆ น้อย ๆ มาสู่พวกเขาและครอบครัว เราจึงตั้งใจที่จะนำโปรเจกต์นี้กลับมาอีกครั้งในปีนี้อย่างแน่นอน
และนี่คือสิ่งที่เราภาคภูมิใจนำเสนอ: "www.ControlMyXMasTree.com 2.0"


หากคุณยังไม่ได้ดู โพสต์ของปีที่แล้ว ที่ผมอธิบายฟังก์ชันพื้นฐานของระบบ คุณอาจต้องการอ่านโพสต์นั้นก่อน เพราะในที่นี้ผมจะกล่าวถึงเฉพาะการอัปเดตและฟีเจอร์ใหม่ทั้งหมดที่เราเพิ่มเข้ามาเท่านั้น ;)
อุปกรณ์ใหม่
เพื่อเป็นเพื่อนกับ Santa จะได้ไม่ต้องเต้นคนเดียว เราได้เพิ่มต้น X-mas เต้นได้เมื่อปีที่แล้ว ซึ่งแน่นอนว่ากลับมาอีกครั้งในปีนี้ และเชื่อมต่อผ่าน MOSFET เข้ากับตัวควบคุมหลัก ซึ่งก็คือ Arduino Mega 2560.
แต่เรายังเพิ่มอุปกรณ์ใหม่เข้ามาอีกสองอย่าง: บอลลูนลมร้อนและรถบัสบังคับวิทยุขนาดเล็กพร้อมสถานีชาร์จเฉพาะของมัน
รถบัส และสถานีชาร์จ
รถบัสเป็นรถของเล่นแบบ "line follow" ขนาดเล็กที่ผมซื้อมาทางออนไลน์ เดิมทีเราต้องการวาดเส้นบนบอร์ดเพื่อให้รถบัสวิ่งตาม แต่การเคลื่อนที่มันกระตุกเกินไปและรัศมีการเลี้ยวที่ทำได้ก็ค่อนข้างกว้าง ดังนั้นเพื่อนของผมจึงมีความคิดที่จะ 3D print เข็มเล็ก ๆ ซึ่งเราจะนำไปติดที่ใต้ท้องรถบัส และกัดร่องบนบอร์ดเพื่อนำทางเข็มและรถบัสไปตามนั้น เยี่ยมไปเลย!


ผมจึงเปิดรถบัส ถอดแบตเตอรี่และอุปกรณ์อิเล็กทรอนิกส์ออก ยกเว้นมอเตอร์และชุดเกียร์ แล้วใส่ LiPo ขนาดเล็ก, 433MHz receiver และ voltage regulator เข้าไปแทน
เพื่อควบคุมรถบัสและชาร์จมันโดยอัตโนมัติ ผมได้ออกแบบป้ายรถเมล์ขนาดเล็กใน CAD และ 3D print ออกมา เพื่อให้เราสามารถติดตั้ง IR distance sensor เพื่อนับรอบ และที่สำคัญกว่านั้นคือจัดตำแหน่งรถบัสให้ถูกต้องเพื่อรับการชาร์จจากแขนจับที่อยู่เหนือมัน ดังนั้นผมจึงเพิ่มสายไฟเล็ก ๆ สองเส้นที่ด้านนอกของรถบัสให้ดูเหมือนกระจกข้าง ซึ่งสายไฟเหล่านี้เชื่อมต่อกับแบตเตอรี่ที่อยู่ภายใน
ทั้งหมดนี้ควบคุมโดย Arduino Nano ที่อยู่ด้านหลังสถานีรถบัสและเชื่อมต่อกับ 433 MHz transmitter เพื่อเปิดหรือปิดรถบัสและส่งไปชาร์จทุก ๆ 20 รอบ ส่วนกระบวนการชาร์จนั้นจัดการโดย TP4056 5V LiPo charging module ซึ่งเอาต์พุตของโมดูลถูกบัดกรีเข้ากับชิ้นส่วนฟอยล์ทองแดงขนาดเล็กบนแขนจับ
จากนั้น Arduino Nano จะเชื่อมต่อกับ Arduino Mega ตัวหลักผ่าน GPIO pin สองอัน เพื่อแจ้งว่ารถบัสกำลังชาร์จอยู่หรือไม่ และรับสัญญาณว่าเมื่อใดควรเริ่มและหยุด
บอลลูน ลมร้อน
เรายังพบและสั่งโมเดลบอลลูนจากทางออนไลน์ มันเชื่อมต่อกับด้ายไนลอนที่ถูกนำผ่านแกนหมุนสองอันบนเพดาน จนกระทั่งพันเข้ากับแกนหมุนอันที่สามที่ 3D print ขึ้นมา ซึ่งเชื่อมต่อกับเพลาของ stepper motor ตัว stepper motor ถูกควบคุมโดย Arduino Uno ผ่าน A4988 stepper driver
Arduino Uno ตัวนั้นยังเชื่อมต่อกับ Arduino Mega เพื่อรับ 'start flag'
อัปเดต Telegram Bot
ปีที่แล้วเราได้สร้าง Telegram Bot ที่อนุญาตให้ผู้คนส่งข้อความส่วนตัวไปยังจอแสดงผล LED dot matrix มันทำงานบน Arduino MKR1000 น่าเสียดายที่มันไม่ค่อยน่าเชื่อถือเท่าไหร่เมื่อมีข้อความจำนวนมากถูกส่งเข้ามาพร้อมกัน
ดังนั้นในปีนี้เราจึงอัปเกรดและพอร์ต (หรือเขียนใหม่เกือบทั้งหมด) โค้ดทั้งหมดเป็น Python 3 เพื่อให้มันทำงานบน Raspberry Pi ตัว Pi จะส่งข้อความ, เวลาปัจจุบัน และข้อมูลสภาพอากาศ (หากคุณส่งตำแหน่งของคุณ) ผ่าน serial port ไปยัง Arduino Nano ซึ่งควบคุมหน้าจอแสดงผล
สิ่งนี้ยังทำให้เราสามารถบันทึกข้อความทั้งหมดได้ ดังนั้น ในกรณีที่เลวร้ายที่สุด เราสามารถบล็อกผู้ใช้ที่ส่งข้อความเลือกปฏิบัติหรือดูถูกผู้อื่นได้ โชคดีที่ปีที่แล้วเราเจอเพียงไม่กี่กรณีเท่านั้น เราเชื่อมั่นว่ามีคนดี ๆ จำนวนมากอยู่บน Internet ไม่ใช่แค่พวก troll ที่ซ่อนอยู่ภายใต้การไม่เปิดเผยตัวตน
สำหรับการเก็บรายละเอียดขั้นสุดท้าย...
... เราสร้างเนินเขาจากโฟม styrofoam และปูนปลาสเตอร์สำหรับให้รถไฟวิ่งผ่าน และเพื่อทำให้มันดูสวยงามยิ่งขึ้น เราได้เพิ่มสีสัน ต้นไม้เล็ก ๆ และป้ายถนนเข้าไป


หากคุณต้องการทราบข้อมูลเพิ่มเติมหรือมีคำถาม สามารถทิ้งคอมเมนต์ไว้ด้านล่างได้เลยครับ ผมยินดีตอบทุกคำถาม :)
แต่สำหรับตอนนี้ ผมหวังเป็นอย่างยิ่งว่าเราจะสามารถนำความสุขมาให้คุณ ครอบครัว และเพื่อน ๆ ของคุณ และหวังว่าคุณจะ ให้ Santa ได้ เต้นเล็กน้อย!
Tobi
ป.ล. และเช่นเคย ขออภัยในภาษาอังกฤษที่ไม่ดีของผมและข้อผิดพลาดที่อาจมีอยู่มากมายด้วยนะครับ ด้วยความเคารพจากเยอรมนี ;)
รายละเอียดทางเทคนิคเพิ่มเติม
IoT แบบโต้ตอบระดับโลก
หลังจากความสำเร็จในการทำซ้ำครั้งแรก โปรเจกต์นี้เปิดโอกาสให้ทุกคนทั่วโลกสามารถโต้ตอบกับจอแสดงผลคริสต์มาสแบบกายภาพผ่าน web interface สาธารณะได้
- Real-Time Stream Processing: ใช้ Raspberry Pi เป็นโฮสต์ web-server และ Arduino (ผ่าน Serial link) เพื่อขับเคลื่อน physical LED และมอเตอร์ หน้าเว็บมีชุดปุ่ม (เช่น "Change to Blue," "Spin Tree") ที่ส่งคำสั่งเกือบจะทันทีไปยัง Arduino
- Addressable LED Canvas: จัดการ NeoPixels หลายร้อยตัวที่จัดเรียงในรูปแบบ 3D Arduino ใช้ FastLED library เพื่อเปลี่ยนสีที่เลือกโดยผู้ใช้งานทั่วโลกได้อย่างราบรื่น
การโต้ตอบทางสังคม
- Live Video Feedback: มักจะจับคู่กับ live camera stream (ผ่าน Raspberry Pi) ทำให้ผู้ใช้ internet สามารถเห็นผลกระทบทางกายภาพในทันทีจากการ "Click" ของพวกเขาบนจอแสดงผลที่อยู่ห่างออกไปหลายพันไมล์