โปรเจกต์ The Cloud Barbot #cloudgames2022
Device ที่สร้างด้วย Arduino ที่ช่วยให้คุณสามารถเตรียมเครื่องดื่มที่แสนอร่อยได้! #cloudgames2022
Device ที่สร้างด้วย Arduino ที่ช่วยให้คุณสามารถเตรียมเครื่องดื่มที่แสนอร่อยได้! #cloudgames2022
▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์
Barbot ของเราเกิดจากความหลงใหลในการสร้างสรรค์อุปกรณ์ต่างๆ ด้วย Arduino เราคิดว่ามันน่าจะสนุกดีที่จะนำเสนอผลิตภัณฑ์ที่ไม่ธรรมดาสู่ช่อง YouTube ของเราโดยใช้เทคโนโลยีที่ Arduino มอบให้ Barbot ของเราเป็นอุปกรณ์เชื่อมต่อที่สามารถเตรียมเครื่องดื่มแสนอร่อยผ่าน dashboard บน Arduino IoT Cloud หรือใช้ MKR IoT Carrier เป็นรีโมทคอนโทรลสำหรับวางไว้บนโต๊ะก็ได้

dashboard ของ barbot ช่วยให้คุณสามารถปรับปริมาณมิลลิลิตรของของเหลวที่ต้องการสำหรับแต่ละส่วนผสมได้ โดยสามารถเลือกขนาดแก้วได้ตั้งแต่ขั้นต่ำ 0 ถึงสูงสุด 400 ml ด้วย library Barbot Nano Carrier คุณจะสามารถดึงระดับการเติมปัจจุบันของแก้วและแสดงผลเป็นเปอร์เซ็นต์ได้ เครื่องหมายถูกสีเขียวบ่งบอกว่า Barbot พร้อมที่จะรับคำสั่ง start แล้ว
ด้วยการใช้งาน Oplà IoT Kit เราได้นำเสนอรีโมทคอนโทรลสำหรับเตรียมเครื่องดื่มจากระยะไกล โดยไม่ต้องใช้โทรศัพท์มือถือหรือ PC
ด้วยฟังก์ชัน gestures คุณสามารถเปลี่ยนเครื่องดื่มที่ต้องการปรับแต่งได้โดยการเลื่อนมือจากขวาไปซ้าย หรือซ้ายไปขวา เพื่อเลือกดูระดับต่างๆ ที่มีให้
เมื่อใช้ touch button 1 หรือ touch button 4 คุณสามารถเปลี่ยนระดับของเหลวสำหรับแต่ละเครื่องดื่มที่จะผสมได้

touch button 2 ช่วยให้คุณเริ่มการผสมเครื่องดื่มตามระดับที่เลือกไว้
เช่นเดียวกับที่เกิดขึ้นบน dashboard หน้าจอและ led ของ MKR IoT Carrier จะเปลี่ยนเป็นสีเขียวหรือสีแดงตามการทำงานของ Barbot: หากเป็นสีเขียวแสดงว่าพร้อมรับงานใหม่ หากเป็นสีแดงแสดงว่ากำลังยุ่งอยู่กับการเตรียมเครื่องดื่มหรือยังไม่พร้อมใช้งานเต็มที่

เราได้สร้าง library เฉพาะสำหรับ barbot ของเรา เพื่อให้ผู้ใช้เขียน code น้อยลง library ประกอบด้วยไฟล์ barbot.cpp และ barbot.h ซึ่งรวมอยู่ใน code ในหน้านี้แล้ว
CODE TRICKS
ในการสั่งให้ barbot กลับไปยังตำแหน่ง home คุณสามารถใช้ code นี้ใน setup ได้:
// Inizialize barbot
barbotCarrier.begin();
// Barbot tower to home
bool home = false;
barbotCarrier.mixerTowerGoTop();
while (!home) {
home = barbotCarrier.mixerToTop();
}
barbotCarrier.mixerTowerStop();
PUMP ACTIVITY TIME: HOW DOES IT WORK?
เนื่องจากไม่มี level sensors เราจึงพยายามหาวิธีเปลี่ยนค่ามิลลิลิตรที่เราตั้งไว้สำหรับแต่ละระดับให้เป็นหน่วยมิลลิวินาทีของการทำงาน
สูตรที่เราใช้คือ: 60 * มิลลิลิตร / ความเร็วปั๊ม (lt/m)
ในการดำเนินการนี้ ในส่วน setup เราต้องระบุว่าปั๊มที่ใช้สามารถเคลื่อนย้ายของเหลวได้กี่ลิตร ในกรณีของเรา diaphragm pumps มีอัตราการไหล 2 ลิตรต่อนาที ดังนั้นเราจึงตั้งค่าพารามิเตอร์นี้สำหรับปั๊มทั้งหมดใน setup:
//Pumps setup ml/m
barbotCarrier.setPump1LitersOnMinute(2); //2lt/m
barbotCarrier.setPump2LitersOnMinute(2);
barbotCarrier.setPump3LitersOnMinute(2);
barbotCarrier.setPump4LitersOnMinute(2);
barbotCarrier.setPump5LitersOnMinute(2);
จากนั้นเราตั้งค่ามิลลิลิตรสำหรับแต่ละเครื่องดื่มที่จะผสม:
//Pumps setup
barbotCarrier.setPump1Milliliters(400); //for 400ml
barbotCarrier.setPump2Milliliters(400);
barbotCarrier.setPump3Milliliters(400);
barbotCarrier.setPump4Milliliters(400);
barbotCarrier.setPump5Milliliters(400);
เราเปิดการทำงานของปั๊มด้วย :
barbotCarrier.pumpWrite(PUMP1, HIGH);
barbotCarrier.pumpWrite(PUMP2, HIGH);
barbotCarrier.pumpWrite(PUMP3, HIGH);
barbotCarrier.pumpWrite(PUMP4, HIGH);
barbotCarrier.pumpWrite(PUMP5, HIGH);
เราดำเนินการเปิดเครื่องเพียงครั้งเดียวใน setup หรือโดยการใช้ flag ที่เชื่อมโยงกับปุ่ม
ใน loop เราจะตรวจสอบ sleep timer ด้วย:
barbotCarrier.pumpTimerOff(PUMP1, 60 * (barbotCarrier.getPump1Milliliters() / barbotCarrier.getPump1LitersOnMinute()));
barbotCarrier.pumpTimerOff(PUMP2, 60 * (barbotCarrier.getPump2Milliliters() / barbotCarrier.getPump2LitersOnMinute()));
barbotCarrier.pumpTimerOff(PUMP3, 60 * (barbotCarrier.getPump3Milliliters() / barbotCarrier.getPump3LitersOnMinute()));
barbotCarrier.pumpTimerOff(PUMP4, 60 * (barbotCarrier.getPump4Milliliters() / barbotCarrier.getPump4LitersOnMinute()));
barbotCarrier.pumpTimerOff(PUMP5, 60 * (barbotCarrier.getPump5Milliliters() / barbotCarrier.getPump5LitersOnMinute()));
ในตัวอย่างที่เราแนบไว้ในหน้านี้ (Barbot Firmware) ได้มีการสร้าง routine สำหรับการเตรียมเครื่องดื่มตั้งแต่บรรทัดที่ 123 ถึง 175 ซึ่งช่วยให้คุณสามารถดำเนินการต่างๆ ในช่วงเวลาต่างๆ ได้โดยใช้ flag ที่ประกอบด้วยตัวแปร boolean
หมายเหตุ : ระบบนี้ไม่ได้ใช้ level sensors ดังนั้นจึงอาจไม่เสถียรและอาจทำงานผิดเพี้ยนไปจากที่คาดไว้ เราขอแนะนำให้คุณตั้งค่ามิลลิลิตรโดยเผื่อค่าให้น้อยกว่าความเป็นจริงเพื่อลดความผิดพลาดและป้องกันไม่ให้ของเหลวล้นออกจากภาชนะ เราได้ตั้งค่าไว้ที่ 140ml สำหรับภาชนะขนาด 200ml!
วิดีโอสาธิต:
วิดีโอภาษาอิตาลี (มีคำบรรยายภาษาอังกฤษ) :
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้