สารบัญ:

JavaStation (เครื่องชงกาแฟ IoT แบบเติมตัวเองอัตโนมัติ): 9 ขั้นตอน (พร้อมรูปภาพ)
JavaStation (เครื่องชงกาแฟ IoT แบบเติมตัวเองอัตโนมัติ): 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: JavaStation (เครื่องชงกาแฟ IoT แบบเติมตัวเองอัตโนมัติ): 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: JavaStation (เครื่องชงกาแฟ IoT แบบเติมตัวเองอัตโนมัติ): 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: คุยกับเอี้ยก้วย ณ แอนฟิลด์ เรื่องการแชร์ความรู้ใน Community ของนักพัฒนา | LINE DEV Podcast EP.61 2024, กรกฎาคม
Anonim
JavaStation (เครื่องชงกาแฟ IoT แบบเติมเงินอัตโนมัติ)
JavaStation (เครื่องชงกาแฟ IoT แบบเติมเงินอัตโนมัติ)
JavaStation (เครื่องชงกาแฟ IoT แบบเติมเงินอัตโนมัติ)
JavaStation (เครื่องชงกาแฟ IoT แบบเติมเงินอัตโนมัติ)
JavaStation (เครื่องชงกาแฟ IoT แบบเติมเงินอัตโนมัติ)
JavaStation (เครื่องชงกาแฟ IoT แบบเติมเงินอัตโนมัติ)

เป้าหมายของโครงการนี้คือการสร้างเครื่องชงกาแฟแบบควบคุมด้วยเสียงอัตโนมัติเต็มรูปแบบ ซึ่งเติมน้ำอัตโนมัติ และสิ่งที่คุณต้องทำคือเปลี่ยนลูกค้าและดื่มกาแฟของคุณ;)

ขั้นตอนที่ 1: บทนำ

บทนำ
บทนำ

เนื่องจากนี่คือม็อดกาแฟตัวที่สองของฉัน ฉันได้เรียนรู้มากมายในกระบวนการนี้ โดยเฉพาะอย่างยิ่งว่าเครื่องจักรที่ซับซ้อนมากขึ้นที่คุณแก้ไข ปัญหา/ข้อบกพร่องที่คุณจะพบมากขึ้นในระหว่างการทำงานแบบวันต่อวัน เครื่องก่อนหน้านี้เป็นเพียงเครื่องชงกาแฟแบบ 1 สวิตซ์แบบเก่าที่เรียบง่ายพร้อมตัวดัดแปลงรีเลย์

Circolo (เวอร์ชันอัตโนมัติเต็มรูปแบบ) เป็นเครื่องระดับพรีเมียมระดับพรีเมียมของ Dolce Gusto ฉันต้องใช้เวลาหลายชั่วโมงในการค้นหาเครื่องจักรที่เหมาะสม เพราะเครื่องจักรอื่นๆ ทั้งหมดในซีรีส์นี้ใช้คันโยกกลไกด้านบนเพื่อสลับระหว่างการไหลของน้ำเย็นและน้ำร้อนตามที่แสดงในภาพ

ขั้นตอนที่ 2: เลือกเครื่องที่เหมาะสม

เลือกเครื่องที่ใช่
เลือกเครื่องที่ใช่

เครื่องพื้นฐานของฉันไม่เพียงแค่เป็นแบบอัตโนมัติเท่านั้น แต่ยังมีคุณสมบัติที่โดดเด่น เช่น การปิดอัตโนมัติหลังจาก 5 นาที และการจดจำปริมาณกาแฟสุดท้าย (ซึ่งจะทำให้สิ่งต่างๆ ง่ายขึ้นมากในการม็อด) การทำงานพื้นฐานของเครื่อง:

1, กดปุ่มเปิดปิด

2, กดปุ่มน้ำเย็น (มันจะกระจายน้ำไปที่ถ้วยทันที)

3 กดปุ่มน้ำร้อน (จะทำให้หม้อไอน้ำร้อนประมาณ 20-60 วินาทีและเริ่มปล่อยน้ำร้อนไปยังถ้วย) ไฟแสดงการทำงานจะกะพริบเป็นสีแดงในช่วงเวลาสแตนด์บาย จากนั้นจะเป็นสีเขียวถาวรเมื่อหม้อไอน้ำพร้อม

เครื่องนี้ยังมีความสามารถในการตรวจจับข้อผิดพลาดต่อไปนี้:

ถังน้ำเปล่า

ที่วางแก้วไม่เข้าที่

ในทั้งสองกรณี ไฟแสดงการทำงานจะกะพริบระหว่างสีแดง/เขียว

ขั้นตอนที่ 3: การปรับเปลี่ยนฮาร์ดแวร์

การปรับเปลี่ยนฮาร์ดแวร์
การปรับเปลี่ยนฮาร์ดแวร์

ในการเขียนนี้ ฉันจะไม่ให้รายละเอียดเกี่ยวกับการถอดประกอบและประกอบเคสใหม่เพราะมีวิดีโอเกี่ยวกับเรื่องนี้บน YouTube ไมโครโปรเซสเซอร์หลักถูกซ่อนไว้ด้านขวาใต้แผงส่วนหัวซึ่งมีสวิตช์ 2 ตัวอยู่ หม้อน้ำอยู่ทางด้านขวาของเคสแยกจากส่วนอื่นๆ ปั๊มและแผงจ่ายไฟอยู่ทางด้านซ้าย

เครื่องชงกาแฟเป็นสภาพแวดล้อมที่ใช้งานหนักสำหรับอุปกรณ์อิเล็กทรอนิกส์ ไม่มีด้านใดที่เหมาะสมที่สุดที่จะรวมวงจรเข้ากับ ด้านขวาของหม้อน้ำมีพื้นที่มากขึ้น แต่คุณจะจัดการกับความร้อน เห็นได้ชัดว่าวงจรไม่สามารถสัมผัสแผ่นหม้อน้ำหรืออยู่ใกล้ได้ ฉันได้เลือกด้านแหล่งจ่ายไฟ/ปั๊มแล้ว แต่ที่นี่คุณต้องจัดการกับเสียงสะท้อนที่หนักหน่วงจากการทำงานของปั๊มเมมเบรนซึ่งสามารถทำลายวงจรควบคุม / ทำให้สายไฟหลุดออกจากขั้วต่อเมื่อเวลาผ่านไป

แผงจ่ายไฟไม่ได้มีประโยชน์อะไร แต่สามารถใช้เพื่อปลิงไฟ +5V ที่เสถียร (ยกนิ้วให้อีกเครื่องหนึ่งสำหรับเครื่องนี้) ซึ่งสามารถเชื่อมต่อโดยตรงกับพิน VIN ของ Arduino โดยผ่านตัวควบคุมแรงดันไฟฟ้าบนบอร์ด

รายการฮาร์ดแวร์ด่วน (ไม่ใช่ BOM แบบเต็ม ไม่รวมพื้นฐาน):

  1. Dolce Gusto Circulo เวอร์ชันอัตโนมัติเต็มรูปแบบ
  2. 5V โมดูลรีเลย์ 4 ช่องพร้อมออปโตคัปเปลอร์สำหรับ PIC AVR DSP (ฉันแนะนำให้ใช้ 4x SIP-1A05 Reed Switch Relay)
  3. Arduino Micro (ฉันแนะนำให้ใช้ SparkFun Pro Micro หรือใหม่กว่าในอนาคต)
  4. 2PCS 4n35 FSC ออปโตคัปเปลอร์โฟโตทรานซิสเตอร์
  5. 1/2 "ไฟฟ้าโซลินอยด์วาล์วสำหรับน้ำอากาศ N / C ปกติปิด DC 12V
  6. Ultrasonic Module HC-SR04 Distance Measuring Transducer Sensor (ซื้อของแถม แล้วคุณจะรู้ภายหลังว่าทำไม)
  7. 2pcs Raindrop Humidity Detection เซนเซอร์ โมดูล การตรวจจับน้ำฝนสำหรับ Arduino
  8. 1 Xbee
  9. อุปกรณ์ท่อสำหรับบล็อกน้ำ (อาจแตกต่างกันไปขึ้นอยู่กับบ้านแต่ละหลัง ดีที่สุดที่จะซื้อในร้านฮาร์ดแวร์และประกอบเข้าด้วยกันก่อนที่จะซื้อ)

ขั้นตอนที่ 4: การเชื่อมต่อหลักและบอร์ดควบคุม

การเชื่อมต่อหลักและบอร์ดควบคุม
การเชื่อมต่อหลักและบอร์ดควบคุม
การเชื่อมต่อหลักและบอร์ดควบคุม
การเชื่อมต่อหลักและบอร์ดควบคุม
การเชื่อมต่อหลักและบอร์ดควบคุม
การเชื่อมต่อหลักและบอร์ดควบคุม

ต้องเชื่อมต่อจุดวงจรต่อไปนี้:

1, ปุ่มลัด

2, ปุ่มเย็น

3, ไฟ LED สีแดง

4, ไฟ LED สีเขียว

5, ปุ่มเปิดเครื่องหลัก

6, GND ที่ใช้ร่วมกัน

น่าเสียดายที่ฉันทำโน้ต/รูปภาพหายเกี่ยวกับตำแหน่งที่จะประสานสิ่งเหล่านี้บนกระดาน แต่สามารถตรวจสอบย้อนกลับได้อย่างง่ายดายด้วยมัลติมิเตอร์ (เพียงใช้โหมดทดสอบไดโอดเพื่อติดตามสายไฟกลับ) การบัดกรีนั้นไม่ยากเกินไป เลือกจุดด้วยขา SMD และบัดกรีสายไฟที่นั่น

ไฟ LED สีแดง/เขียวตั้งอยู่ติดกันที่สวิตช์เปิดปิด จำเป็นต้องใช้เพื่อระบุสถานะของเครื่อง (เปิดเครื่อง พร้อมชงกาแฟ (หม้อต้มอุ่นขึ้น) ข้อผิดพลาด) ฉันถอดมันออกจากเมนบอร์ดโดยตรงแล้ว เพราะมันยากที่จะเล่นซอกับวงจรเล็กๆ รอบสวิตช์ไฟ

ฉันใช้ออปโตคัปเปลอร์ของ 4N35 เพื่อเชื่อมต่อกับ Arduino อย่างปลอดภัยและอ่านสถานะของ LED แนวคิดดั้งเดิมคือการใช้ 5 รายการและทำทั้งการอ่านและการควบคุมสวิตช์ด้วย (สร้างวงจรที่เงียบสนิท) น่าเสียดายที่ชิปตัวนี้ไม่สามารถสร้างความต้านทานต่ำพอที่จะจำลองการกดปุ่ม ดังนั้นฉันจึงถูกบังคับให้ใช้รีเลย์ ฉันใช้โมดูลรีเลย์ 4 แชนเนลทั่วไปที่ฉันมีอยู่ แต่ถ้าฉันต้องทำซ้ำโครงการนี้ ฉันจะใช้รีเลย์ Reed ขนาดเล็ก (SIP-1A05 Reed Switch Relay พร้อมฟลายแบ็คไดโอดภายใน) ซึ่งสามารถเชื่อมต่อโดยตรงกับเอาต์พุตของ Arduino พิน (โหลด ~ 7mA) เพื่อให้ทุกอย่างสามารถวางบนโครงสร้างบอร์ด 2 ระดับได้

สายไฟขนาดเล็ก 5 เส้นสามารถดึงลงมาข้างสายไฟข้างใต้แผงจ่ายไฟได้อย่างง่ายดาย

ในการใช้พื้นที่ในเครื่องอย่างมีประสิทธิภาพมากขึ้น ฉันตัดสินใจแยกอุปกรณ์อิเล็กทรอนิกส์ออกเป็น 2 แผงหลัก:

ด้านซ้ายเป็นแผงควบคุมหลัก ด้านขวา (ที่ฉันเรียกว่าบอร์ดสื่อสาร) ถือ Xbee และถึงแม้ว่าจะไม่แสดงบนภาพ แต่เซ็นเซอร์น้ำ 2 ตัว (สำหรับการตรวจจับน้ำล้น) ถูกบีบอยู่ด้านหลัง ที่ด้านบนของนาฬิกาเรียลไทม์ (ตัวเลือกสำหรับเวลาทำงาน:)) และบอร์ดรีเลย์ 4 แชนเนลที่อยู่ถัดจากปั๊มที่ด้านล่างห่อด้วยฟองน้ำและติดกาวเล็กน้อยเพื่อป้องกันเสียงสะท้อน

สำหรับบอร์ดสื่อสาร ฉันไม่ได้กังวลกับการทำ PCB เพียงแค่ใช้เขียงหั่นขนมธรรมดาเพราะไม่มีอะไรเกิดขึ้นมากนัก มีการเชื่อมต่อ 6 กับกระดานหลัก:

Vcc (5V), GND, Xbee (TX), Xbee (RX), เซ็นเซอร์น้ำ1 (ข้อมูล), เซ็นเซอร์น้ำ2 (ข้อมูล)

ขั้นตอนที่ 5: การควบคุมการไหลของน้ำและกลไกการเติม

การควบคุมการไหลของน้ำและกลไกการเติม
การควบคุมการไหลของน้ำและกลไกการเติม
การควบคุมการไหลของน้ำและกลไกการเติม
การควบคุมการไหลของน้ำและกลไกการเติม
การควบคุมการไหลของน้ำและกลไกการเติม
การควบคุมการไหลของน้ำและกลไกการเติม

ฉันได้ออกแบบเครื่องนี้โดยคำนึงถึงความปลอดภัย ทำให้ผู้โจมตี/ความผิดปกติไม่สามารถสร้างความเสียหายร้ายแรงจากน้ำให้กับบ้านได้ เนื่องจากเครื่องจะเชื่อมต่อกับก๊อกน้ำและอินเทอร์เน็ตตลอด 24 ชั่วโมงทุกวันไม่เว้นวันหยุด นี่คือสิ่งที่วงจรป้องกัน 555 ต่อไปนี้ทำบนโซลินอยด์

โปรดทราบว่าโซลินอยด์ทำงานจากแหล่งจ่ายไฟ 12V ซึ่งฉันยังสามารถบีบลงไปที่ด้านล่างของเครื่องชงกาแฟถัดจากปั๊มและบอร์ดรีเลย์ เพื่อไม่ให้สิ้นเปลืองพลังงาน บอร์ดรีเลย์ 4 ช่องจะสลับแหล่งจ่ายไฟหลัก 230V ไปยังอะแดปเตอร์โดยตรง จากนั้นจึงเปิดโซลินอยด์ แน่นอนว่ามีความล่าช้าในการปิดเครื่องสองสามไมโครวินาที ซึ่งคุณต้องคำนวณสำหรับการยุบของสนามแม่เหล็กทั้งบนโซลินอยด์ + บนอะแดปเตอร์เมื่อดึงปลั๊ก

ฉันใช้แจ็คขนาด 3.5 มม. มาตรฐานเพื่อเชื่อมต่อบล็อกน้ำภายนอกด้วยลวดยาว 3 ม. และท่อพีวีซีเส้นผ่านศูนย์กลางขนาดเล็กที่ออกมาจากบล็อกไปยังเครื่องชงกาแฟ

ส่วนบนของถังเก็บน้ำถูกเจาะออกเพื่อรองรับท่อนี้ จากนั้นจึงดึงลงมาที่ด้านล่างของถัง ฉันจะสังเกตว่ามันสำคัญมากที่จะต้องป้อนท่อลงไปที่ด้านล่างที่ด้านข้างโดยไม่ผ่านตรงกลางและเข้าไปยุ่งกับเซ็นเซอร์อัลตราโซนิก

หลังจากที่โซลินอยด์ขับเคลื่อนบนวงจรจะปิดโดยอัตโนมัติหลังจาก ~ 4 วินาที (ซึ่งน่าจะเกินเวลาพอที่จะเติมถังให้เต็ม) และยังคงอยู่ในสถานะนี้จนกว่าจะถึงรอบการเปิดเครื่องครั้งต่อไป วงจรนี้เป็นแนวป้องกันสุดท้ายสำหรับการทำงานผิดพลาด และทำงานแบบสแตนด์อโลนจากเครื่องชงกาแฟ หากรีเลย์ในเครื่องเกิดขัดข้องและปิดสนิท น้ำอาจท่วมบ้าน การป้องกันนี้จะไม่เกิดขึ้น

หากนี่ยังดีไม่พอสำหรับคุณหรือไม่สามารถปิดน้ำได้ หรือคุณไม่ต้องการเล่นซอกับบล็อกน้ำ ลองดูโครงการ WasserStation ของฉันซึ่งสร้างขึ้นเพื่อขยายถังเก็บน้ำขนาดเล็กของเครื่องชงกาแฟ

ขั้นตอนที่ 6: การตรวจจับน้ำท่วม

การตรวจจับน้ำท่วม
การตรวจจับน้ำท่วม
การตรวจจับน้ำท่วม
การตรวจจับน้ำท่วม
การตรวจจับน้ำท่วม
การตรวจจับน้ำท่วม

มีเซ็นเซอร์น้ำเพิ่มเติม 2 ตัวสำหรับการป้องกัน:

  • Sensor1: ที่ด้านหลังของถังสำหรับตรวจจับน้ำล้นจากถัง
  • Sensor2: ที่ด้านล่างของเครื่องชงกาแฟสำหรับการตรวจจับน้ำล้นถ้วย

เซ็นเซอร์ทั้งสองนี้จะทริกเกอร์การขัดจังหวะซึ่งจะปิดน้ำทันที เปิดไฟแสดงข้อผิดพลาด และยกเลิกการทำงานของโปรแกรมเพื่อป้องกันการโจมตี เช่น การทำกาแฟนับล้านและน้ำท่วมบ้านในลักษณะนั้น หลังจากที่โปรแกรมออกจากเครื่องแล้ว เครื่องจะไม่ตอบสนองต่อสิ่งใดๆ อีกต่อไป และจะต้องทำการ Powercycled ด้วยตนเอง

ในกรณีที่คุณสงสัยว่าจะเกิดอะไรขึ้นถ้าเซ็นเซอร์อัลตราโซนิกถูกน้ำท่วม (มันเกิดขึ้นครั้งเดียว:))

มันทำให้ระดับน้ำกลับคืนมาแบบนี้เป็นเวลาสองสามวัน แต่ถึงแม้หลังจากที่มันแห้ง มันก็ไม่แม่นยำอีกเลยและฉันต้องเปลี่ยนมัน ตัวเครื่องได้รับการออกแบบมาให้ทำงานจากน้ำประปาเย็น ดังนั้นการนึ่งด้วยความร้อนจะไม่ทำให้เซ็นเซอร์เสียหาย เซ็นเซอร์นี้จะแม่นยำจนกว่าระดับน้ำจะอยู่ห่างจากเซ็นเซอร์ 2-3 ซม.

รูปทรงวงรีของถังทำให้การคำนวณระดับน้ำทำได้ยาก จึงมีการวัดและฮาร์ดโค้ดลงในโปรแกรมเพื่อให้สอดคล้องกับเปอร์เซ็นต์

ขั้นตอนที่ 7: การทดสอบและการประกอบขั้นสุดท้าย

การทดสอบและการประกอบขั้นสุดท้าย
การทดสอบและการประกอบขั้นสุดท้าย
การทดสอบและการประกอบขั้นสุดท้าย
การทดสอบและการประกอบขั้นสุดท้าย
การทดสอบและการประกอบขั้นสุดท้าย
การทดสอบและการประกอบขั้นสุดท้าย

เครื่องอยู่ในสถานะสุดท้ายซึ่งเกือบจะปิดบังร่องรอยการแฮ็กใด ๆ และหากไฟ LED แสดงสถานะ 3 ดวงและพอร์ตดีบัก USB ไม่อยู่ที่นั่น คุณจะไม่สามารถบอกได้ว่ามีอะไรเกิดขึ้นอีกในขณะที่เครื่องนั้นสามารถเชื่อมต่อ Wifi ได้ เซิร์ฟเวอร์ Quake:)

เมื่อฉันแก้ไขอุปกรณ์ ฉันมักจะให้ความสำคัญกับการใช้งานด้วยตนเองเป็นอันดับแรก หลังจากแฮ็กแล้ว ใครๆ ก็ใช้เครื่องได้เหมือนเดิม ยกเว้นถังเก็บน้ำที่ไม่สามารถถอดออกได้ง่าย เว้นแต่คุณจะออกแบบส่วนระบบน้ำอัตโนมัติให้เสร็จสมบูรณ์ เครื่องสามารถเติมได้ ณ จุดนี้ด้วยการรวมท่อขนาดเล็ก + กรวยเท่านั้น

ขั้นตอนที่ 8: รหัสควบคุมกาแฟ

รหัสควบคุมกาแฟ
รหัสควบคุมกาแฟ

ค้นหาซอร์สโค้ด Arduino ที่สมบูรณ์ที่แนบมาด้านล่าง

คำอธิบายสั้น ๆ ของรหัส:

ลูปหลักเรียกฟังก์ชัน xcomm() รับผิดชอบการประมวลผลคำสั่ง ชงกาแฟ เปิด/ปิดเครื่อง

รหัสด้านล่างสามารถเข้าถึงได้เฉพาะในกรณีที่มีการควบคุมด้วยตนเอง เพิ่มตัวนับสถิติเพื่อติดตามจำนวนกาแฟที่ผลิตและเติมน้ำในถังโดยอัตโนมัติ

คำสั่งสามารถส่งผ่าน Xbee หรือผ่านพอร์ต USB (ต้องเปิดใช้งานการดีบักในตอนเริ่มต้น) เมื่อการสื่อสารเข้ามาจากไฟ LED สีส้มจะกะพริบเป็นเวลาหนึ่งวินาทีเพื่อแสดงกิจกรรมเครือข่าย คำสั่งต่อไปนี้ถูกนำไปใช้:

1,CMSTAT – สถิติการสืบค้นจากเครื่อง

เครื่องจะเก็บสถิติเกี่ยวกับจำนวนกาแฟร้อน/เย็น/ชงเอง และยังได้รับเวลาทำงานจาก RTC ซึ่งจะไม่ล้นหลังจาก 3x วัน ดังนั้นอาจนานหลายปี:P

2, CMWSTART – เริ่มชงกาแฟและเครื่องดื่มร้อนด้วยน้ำร้อน

3 CMCSTART – เริ่มชงชาเย็นและเครื่องดื่มเย็น ๆ ด้วยน้ำเย็น

กระบวนการร้อนและเย็นเริ่มต้นด้วยการเรียกใช้ฟังก์ชันสแตนด์บาย () ซึ่งจะตรวจสอบเพิ่มเติมจากนั้นจึงกดปุ่มเปิดปิด หลังจากนี้ โปรแกรมจะรอไฟเขียว (เมื่อหม้อต้มร้อนขึ้น) จากนั้นจะจำลองการกดปุ่มร้อน/เย็น หลังจากนั้นจะรอ 50 วินาที (ซึ่งมากเกินพอสำหรับกาแฟแก้วที่ใหญ่ที่สุด) จากนั้นปิดเครื่อง สิ่งนี้จะไม่จำเป็นด้วยซ้ำเพราะเครื่องที่ยอดเยี่ยมนี้จะปิดเครื่องโดยอัตโนมัติหลังจากต้มกาแฟ 5 นาที แต่ทำไมต้องสิ้นเปลืองพลังงาน? โดยวิธีการที่การใช้พลังงานสแตนด์บายของเครื่องแม้หลังจากการปรับเปลี่ยนจะน้อยกว่า 2 วัตต์

การเติมน้ำและการรักษาความปลอดภัย

เครื่องนี้ได้รับการออกแบบโดยคำนึงถึงความปลอดภัย ดังนั้นจึงเป็นไปไม่ได้ที่ผู้โจมตีจะสามารถควบคุมน้ำได้ท่วมบ้านทั้งหลัง ความล้มเหลวของฮาร์ดแวร์จะไม่ส่งผลให้เกิดความเสียหายร้ายแรงเช่นกัน ถัดจากเซ็นเซอร์ฮาร์ดแวร์มีการป้องกันในตัวรหัสสำหรับการเติม ตัวนับที่ทริกเกอร์รูทีน ISR หากไม่มีการเติมเครื่องใน x วินาที (เช่น อาจเกิดขึ้นได้หากเซ็นเซอร์อัลตราโซนิกทำงานผิดปกติและจ่าย 20% หลังจาก x วินาทีเมื่อเริ่มการเติม)

ไม่มีการรับรองความถูกต้อง ใครๆ ก็สามารถใช้เครื่องภายในช่วงคลื่นวิทยุที่รู้คำสั่งต่างๆ ได้ ดังนั้นฉันจึงเปลี่ยน Xbee piconet ID เริ่มต้นเป็นอย่างอื่น นอกจากนี้ ERR_INVALIDCMD ยังสามารถแสดงความคิดเห็นได้ และเครื่องจะไม่สนใจคำสั่งที่ไม่รู้จักใดๆ

บัก

บั๊กกาแฟสองเท่า: สิ่งที่น่ารำคาญที่สุดเกี่ยวกับบั๊กนี้คือมันเริ่มเกิดขึ้นสองสามเดือนหลังจากใช้เครื่องด้วยรหัสเดียวกัน หลังจากออกคำสั่งกาแฟแล้ว ก็ทำกาแฟ ปิดแล้วเปิดใหม่อีกครั้ง และทำกาแฟอีก 1 ต่อกับผู้อุปถัมภ์คนเดิม

ฉันต้องเริ่มแก้ไขการทำซ้ำคำสั่งจากระดับ Android เพราะฉันได้ดำเนินการส่งรหัสอีกครั้งในกรณีที่แพ็กเก็ตสูญหาย ปรากฎว่าทั้ง Android, ซอฟต์แวร์ควบคุม C หรือเคอร์เนล Linux บน raspi2 ไม่รับผิดชอบต่อสิ่งนี้แทนที่จะเป็น Xbee

หลังจากออก echo “CMCSTART”>/dev/ttyACM0 บนโหนดควบคุม มันจะออกมาสองครั้งที่ปลายอีกด้านหนึ่ง ฉันสรุปได้ว่าคลื่นความถี่ 2.4Ghz ในบ้านของฉันเริ่มอิ่มตัวจากอุปกรณ์วิทยุจำนวนมากในช่วงนี้ ซึ่งทำให้ Xbee เรียกใช้การส่งซ้ำในเลเยอร์วิทยุ และข้อมูลถูกส่งสองครั้ง (ไม่เสมอไป) เมื่อคำสั่งแรกเข้ามาในฟังก์ชัน xcomm() ของเครื่องจักรแล้ว ก็เริ่มประมวลผลคำสั่งนั้น แต่คำสั่งที่สองเข้ามาทันทีหลังจากที่รออยู่ในบัฟเฟอร์ Xbees และเมื่อลูปเสร็จสิ้น ก็เริ่มประมวลผลคำสั่งที่สอง เพื่อแก้ไขปัญหานี้ ฉันได้แนะนำ 3 เกณฑ์ในโค้ดเพื่อให้ไม่สามารถชงกาแฟได้มากกว่า 1 แก้วใน 2 นาที นอกจากนี้ ยังมีข้อจำกัดใน CSTAT แต่เพื่อไม่ให้รบกวนรหัสควบคุม C/Android ระบบจะทำการตอบกลับเพียง 2 วินาทีเท่านั้น

มีการกำหนดเกณฑ์สุดท้ายสำหรับเคาน์เตอร์กาแฟแบบแมนนวล เพราะเมื่อเครื่องถึงสถานะพร้อม (หม้อต้มอุ่นขึ้น ไฟสีเขียว) ได้บันทึกเหตุการณ์สีเขียวหลายร้อยครั้งทำให้จำนวนกาแฟเพิ่มขึ้น

ขั้นตอนที่ 9: ข้อควรพิจารณาในการออกแบบและความคิดสุดท้าย

หลังจากมีปัญหามากมายจากการสื่อสารของ Xbee ฉันจะไม่แนะนำ Xbee สำหรับโครงการนี้ ใช้วิทยุ 433Mhz ราคาถูกมาตรฐานพร้อม VirtualWire และลด Bps เพื่อความเสถียรหรือฝัง Raspberry PI Zero พร้อมการเชื่อมต่อ Wifi ลงในเครื่องชงกาแฟโดยตรง

ตามวันที่แสดง เป็นโครงการเก่า ต้องขออภัยในรายละเอียดเล็กๆ น้อยๆ ที่ขาดหายไป เช่น การเชื่อมต่อจากวงจรควบคุมไปยังขาพินที่แม่นยำบนเมนบอร์ด โครงการนี้ต้องใช้ความรู้ด้านเทคนิคในระดับหนึ่งเพื่อดำเนินการด้วยตนเอง หากคุณพบข้อบกพร่อง/ปัญหาใดๆ หรือต้องการมีส่วนร่วมในบทช่วยสอนนี้ โปรดแจ้งให้เราทราบ

ซอฟต์แวร์ควบคุม วิธีการควบคุมด้วยเสียงเป็นอีกส่วนหนึ่ง ซึ่งจะทำให้คุณสามารถเตรียมกาแฟได้โดยใช้คำสั่งเสียงก่อนจะลุกจากเตียง

ตอนนี้ฉันได้กรอกเอกสารเกี่ยวกับระบบกักเก็บน้ำของฉัน (WasserStation) และอัปเดต CoffeeControlCode เป็นเวอร์ชันล่าสุดแล้ว ซึ่งรวมถึงการเติมน้ำอัตโนมัติด้วย หากคุณใช้เครื่องเดียวกันในการสร้าง การเติมจะทำงานอย่างไม่มีที่ติ (โดยไม่มีการดัดแปลงใดๆ ในโค้ด) เนื่องจากระดับน้ำถูกปรับเทียบกับถังเก็บน้ำของ Circolo

แนะนำ: