สารบัญ:

IronForge เครื่องปิ้งขนมปัง NetBSD: 9 ขั้นตอน (พร้อมรูปภาพ)
IronForge เครื่องปิ้งขนมปัง NetBSD: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: IronForge เครื่องปิ้งขนมปัง NetBSD: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: IronForge เครื่องปิ้งขนมปัง NetBSD: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: NetBSD - Not Just For Toasters 2024, พฤศจิกายน
Anonim
IronForge เครื่องปิ้งขนมปัง NetBSD
IronForge เครื่องปิ้งขนมปัง NetBSD
IronForge เครื่องปิ้งขนมปัง NetBSD
IronForge เครื่องปิ้งขนมปัง NetBSD
IronForge เครื่องปิ้งขนมปัง NetBSD
IronForge เครื่องปิ้งขนมปัง NetBSD

โครงการนี้ไม่ได้เริ่มต้นเป็นเครื่องปิ้งขนมปัง แต่ในที่สุดก็กลายเป็นหนึ่งเดียว

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

www.embeddedarm.com/blog/netbsd-toaster-powered-by-the-ts-7200-arm9-sbc/

เครื่องปิ้งขนมปัง NetBSD ดั้งเดิม โครงการนี้เป็นเพียงเรื่องตลกสำหรับผู้ที่ไม่รู้:

“เป็นที่ทราบกันมานานแล้วว่าระบบปฏิบัติการ NetBSD ที่คล้ายกับ UNIX นั้นพกพาได้กับเครื่องทุกประเภท ยกเว้นเครื่องปิ้งขนมปังในครัวของคุณ”

มาสร้างเครื่องปิ้งขนมปังที่ใช้ NetBSD และ:

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

ขั้นตอนที่ 1: การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์

การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์
การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์
การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์
การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์
การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์
การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์
การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์
การทำงานของเครื่องปิ้งขนมปังและการเลือกฮาร์ดแวร์

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

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

เครื่องปิ้งขนมปัง Severin AT 2509 (1400W)

www.severin.de/fruehstueck/toaster/automati…

นี่เป็นแบรนด์ที่แพร่หลายในเยอรมนี โดยมีราคาประมาณ 40-50 ยูโรในขณะที่เขียนว่าใหม่เอี่ยม

คุณลักษณะสำคัญที่ผู้ผลิตโฆษณา:

● ตัวเรือนสแตนเลสหุ้มฉนวนความร้อน

● สิ่งที่แนบมากับการคั่วกลิ้งแบบบูรณาการ

● ก้านย่างแบบสล็อตยาว 2 อันสำหรับขนมปัง 4 แผ่น

● อุปกรณ์อิเล็กทรอนิกส์เวลาย่างพร้อมเซ็นเซอร์อุณหภูมิ

● ปรับระดับการฟอกหนังได้

● ระดับการละลายน้ำแข็งพร้อมไฟแสดงสถานะ

● ขั้นตอนการวอร์มอัพโดยไม่ต้องฟอกเพิ่มเติมด้วยไฟควบคุม

● ปุ่มปลดล็อคแบบแยกพร้อมไฟแสดงสถานะ

● ตัวแบ่งส่วนข้อมูลขนมปังวางตรงกลางเพื่อให้ด้านทั้งสองด้านเป็นสีน้ำตาลเท่ากัน

● ปิดเครื่องอัตโนมัติเมื่อแผ่นขนมปังติดขัด

● ถาดรองเศษขนมปัง

● กรอสายเคเบิล

แม้ว่าผู้ผลิตไม่ได้อ้างว่าสามารถปรับอุณหภูมิได้ แต่ก็ทำให้เกิดความเข้าใจผิด 2 จุด:

● ขั้นตอนการวอร์มอัพโดยไม่ต้องฟอกเพิ่มเติมด้วยไฟควบคุม

● อุปกรณ์อิเล็กทรอนิกส์เวลาย่างพร้อมเซ็นเซอร์อุณหภูมิ

เพื่ออ้างถึงการอ้างสิทธิ์เหล่านี้ มาดูกันว่าเครื่องทำงานอย่างไร:

1 ในสถานะปกติ 230V หลักจะถูกตัดการเชื่อมต่ออย่างสมบูรณ์ ไม่มีส่วนใดของเครื่องปิ้งขนมปังถูกขับเคลื่อน

2 เมื่อผู้ใช้ดึงคันโยกลง (ซึ่งดึงขนมปังลงมาด้วย) อุปกรณ์จะเชื่อมต่อองค์ประกอบความร้อนทั้งสองด้าน

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

จากนั้นจะใช้วงจรเรียงกระแสไดโอดตัวเดียวเพื่อสร้าง 10V DC ซึ่งจ่ายไฟให้กับแผงควบคุมหลักของเครื่องปิ้งขนมปัง

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

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

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

ตอนนี้วงจรควบคุมระดับทหารหมดหนทางแล้ว มาควบคุมเต็มรูปแบบบนเครื่องปิ้งขนมปังกันดีกว่า

ขั้นตอนที่ 2: รายการฮาร์ดแวร์

รายการฮาร์ดแวร์
รายการฮาร์ดแวร์
รายการฮาร์ดแวร์
รายการฮาร์ดแวร์
รายการฮาร์ดแวร์
รายการฮาร์ดแวร์

นี่ไม่ใช่ full bom อีกครั้ง ไม่รวมพื้นฐานทั้งหมดเช่นสายไฟและสกรู:

  • เครื่องปิ้งขนมปัง 1x AT 2509 (1400W) หรือเครื่องปิ้งขนมปังอื่น ๆ ที่คุณเลือก
  • 1x Arduino Pro Micro
  • 1x5 นิ้วหน้าจอสัมผัสแบบ Resistive LCD แสดงผล HDMI สำหรับ Raspberry Pi XPT2046 BE
  • 1x Raspberry PI 2 หรือ Raspberry PI 3
  • 1x SanDisk 16GB 32GB 64GB การ์ด Ultra Micro SD SDHC 80MB/s UHS-I Class10 w Adapter (สำหรับ PI)
  • 2x SIP-1A05 รีเลย์สวิตช์กก
  • 1x1PCS MAX6675 โมดูล + K Type Thermocouple Temperature Sensor สำหรับ Arduino (แนะนำให้ซื้ออะไหล่)
  • 1x เอาต์พุต 24V-380V 25A SSR-25 DA โซลิดสเตตรีเลย์ PID Temperature Controller
  • 1x Mini DC-DC Buck Converter ขั้นตอนลงโมดูลพาวเวอร์ซัพพลายสำหรับ aeromodelling (ซื้อมากกว่านี้เพื่อทดแทน)
  • 2x Rotary Encoder Module Brick Sensor Development Board สำหรับ Arduino (สวิตช์โรตารี่ + กลาง แนะนำให้ซื้อมากกว่านี้เพื่อทดแทน)
  • 2x WS2812B 5050 RGB LED Ring 24บิตRGB LED
  • 1x1mm A5 โปร่งใส Perspex แผ่นอะคริลิคพลาสติก Plexiglass Cut 148x210mm Lot
  • อะแดปเตอร์ 1x12V 2A DC (1A ก็น่าจะเพียงพอสำหรับ Pi+Screen+Ardu แต่จะดีกว่าในกรณีที่คุณจะเชื่อมต่ออุปกรณ์เพิ่มเติมผ่าน USB ซึ่งจะทำให้กระแสไฟไหลออกมากเกินไป)
  • 1x PCS HC-SR501 IR อินฟราเรดแบบไพโรอิเล็กทริก IR PIR Motion เซนเซอร์ โมดูลตรวจจับ
  • 2x Jumper Wire 5 Pin Female to Female Dupont Cable 20cm for Arduino (สำหรับโรตารี่ควรซื้อมากกว่านี้)
  • 2x อลูมิเนียมอัลลอยด์ Volume KNOB 38x22mm สำหรับ 6mm Potentiometer SHAFT Silver
  • รีเลย์ 230V 1x
  • กลุ่มตัวเมียแถวเดี่ยว 2.54 มม. + ตัวเชื่อมต่อส่วนหัวที่แตกหักได้สำหรับการเชื่อมต่อ
  • อุปกรณ์เสริมสำหรับ Xbee mod: 1X10P 10pin 2mm Female Single Row Straight Pin Header Strip XBee Socket
  • ตัวเลือกสำหรับ Xbee mod: 1 Xbee
  • อุปกรณ์เสริมสำหรับ Xbee mod: 1x Jumper Wire 4 Pin Female to Female Dupont Cable 20 ซม. สำหรับ Arduino (ระหว่าง Xbee Raspi)

สำหรับแหล่งจ่ายไฟ คุณต้องใช้ 12V แทน 5V เนื่องจากโซลินอยด์จะไม่อยู่ที่ระดับแรงดันต่ำนั้น อย่าลืมเพิ่มฟลายแบ็คไดโอดบนโซลินอยด์

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

ขั้นตอนที่ 3: การดัดแปลงเคส: ด้านหลังคือด้านหน้า

การดัดแปลงเคส: ด้านหลังคือด้านหน้า
การดัดแปลงเคส: ด้านหลังคือด้านหน้า
การดัดแปลงเคส: ด้านหลังคือด้านหน้า
การดัดแปลงเคส: ด้านหลังคือด้านหน้า
การดัดแปลงเคส: ด้านหลังคือด้านหน้า
การดัดแปลงเคส: ด้านหลังคือด้านหน้า

หลังจากถอดวงจรควบคุมหลักออกแล้ว ยังมีรูน่าเกลียดขนาดใหญ่ที่มองออกไปที่ตำแหน่งของสวิตช์ ดังนั้นฉันจึงตัดสินใจว่าจะใช้ด้านนั้นเป็นด้านหลังและแก้ไขกล่องรวมสัญญาณที่มี SSR (Solid State Relay -> สำหรับ การควบคุมความร้อน) + รีเลย์ 230V AC (สำหรับการตรวจจับพลังงาน) + อะแดปเตอร์ 12V ที่ให้พลังงานทั้งวงจร

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

ฉันได้เสียบปลายเครื่องตรวจจับของเทอร์โมคัปเปิล MAX6675 ที่ด้านล่างของเครื่องปิ้งขนมปังบนขอบตรงข้ามกับคันโยกหลัก (ซึ่งมันจะขัดแย้งกับกลไกของคันโยก)

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

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

สายไฟของ MAX6675 นั้นยาวพอที่จะป้อนผ่านด้านล่างของเครื่องไปยังรูที่นำสายเคเบิลออกได้อย่างง่ายดาย

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

  • 1 สายจากองค์ประกอบความร้อน -> ไปที่SSR
  • 1 สายจาก 230V (ควรจุดสีน้ำตาลร้อน) -> ไปที่SSR
  • 2 สายจาก 230V พร้อมสถานะปิดสวิตช์ -> ไปที่ Start Relay
  • 2 สายจาก 230V หลักใน -> ไปที่อะแดปเตอร์ 12V ที่ด้านหลัง
  • สายไฟหุ้มฉนวนจากเทอร์โมเซนเซอร์

และนั่นคือทั้งหมดที่คุณต้องใช้ในการควบคุมเครื่องปิ้งขนมปัง

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

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

อะแดปเตอร์ DC 12V ต่อเข้ากับสายไฟหลักโดยตรง (ฉันได้เพิ่มสวิตช์เปิด/ปิดพิเศษที่ด้านหลัง) สิ่งนี้จะให้พลังงานคงที่สำหรับวงจร เครื่องปิ้งขนมปังในโหมดสแตนด์บายใช้พลังงานเพียง: 5.5 W เมื่อเปิดหน้าจอ และ 5.4W เมื่อปิดอยู่

ขั้นตอนที่ 4: Front Arcyclic Board

กระดานอาร์ไซลิกด้านหน้า
กระดานอาร์ไซลิกด้านหน้า
กระดานอาร์ไซลิกด้านหน้า
กระดานอาร์ไซลิกด้านหน้า
กระดานอาร์ไซลิกด้านหน้า
กระดานอาร์ไซลิกด้านหน้า

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

คุณจะเห็นว่าแผ่นเพล็กซี่มีรอยร้าวเล็กๆ รอบการเจาะ ดังนั้นคุณจึงรู้ว่าควรหลีกเลี่ยงสิ่งใดหากต้องการออกแบบให้สมบูรณ์แบบ

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

ฉันไม่ได้ทำแบบร่างการออกแบบที่เหมาะสมสำหรับแผ่น Plexiglass ขนาด 148x210 มม. แค่พยายามปรับทุกอย่างให้สมมาตรและอยู่ในแนวเดียวกัน ดังนั้นฉันขอโทษที่ฉันไม่สามารถจัดทำโครงร่างใดๆ สำหรับส่วนนี้ที่คุณต้องทำเองได้ อย่างไรก็ตาม ฉันมี 1 คำแนะนำ:

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

มีตัวเว้นวรรค 6 ตัวที่ออกแบบมาเพื่อยึดแผงด้านหน้าทั้งหมดให้เข้าที่ แต่ในตอนท้ายเนื่องจากตัวหมุนที่มีความยาวสั้น ตัวหมุนด้านล่าง 2 ตัวจะไม่ถูกป้อนผ่านแผง

ฉันใช้ตัวเว้นวรรคสำหรับเมนบอร์ดพีซีปกติระหว่างโรตารี่และแผง plexi และยังเพิ่มอีก 2-2 หลังโรตารีเพื่อเพิ่มความเสถียรเมื่อกดปุ่ม

ขั้นตอนที่ 5: วงจรควบคุมเครื่องปิ้งขนมปัง

วงจรควบคุมเครื่องปิ้งขนมปัง
วงจรควบคุมเครื่องปิ้งขนมปัง
วงจรควบคุมเครื่องปิ้งขนมปัง
วงจรควบคุมเครื่องปิ้งขนมปัง
วงจรควบคุมเครื่องปิ้งขนมปัง
วงจรควบคุมเครื่องปิ้งขนมปัง

นี่เป็นหนึ่งในโครงการที่ขยายพิน Arduino ทั้งหมดให้เต็มจริง ๆ:) RX และ TX ถูกสงวนไว้สำหรับส่วนขยายโมดูลการสื่อสารในอนาคต

แผงวงจรหลักจ่ายไฟให้กับทุกสิ่งผ่านตัวแปลงบั๊ก (Arduino, Raspi, Screen, SSR, รีเลย์) ที่นี่ฉันจะทราบว่าตัวควบคุมแรงดันไฟฟ้านี้ไม่ทันสมัยอย่างแน่นอน ไม่สามารถผ่านแรงดันไฟฟ้าขาเข้า 12V DC มากเกินไปได้ หากคุณตัดสินใจที่จะใช้ประเภทเดียวกันทุกประการ ตรวจสอบให้แน่ใจว่าอะแดปเตอร์ของคุณมีแรงดันไฟฟ้าวงจรเปิด 12V ที่เสถียร (ไม่เหมือนอะแดปเตอร์ WRT54G โดยที่คุณจะเห็นควันวิเศษออกมาในไม่กี่วินาที)

ฉันทำให้บอร์ดเป็นแบบโมดูลาร์มากที่สุดโดยใช้ซ็อกเก็ตที่ฉันทำได้ นอกเหนือจากรีเลย์ 2 กก. ทุกอย่างสามารถเปลี่ยนได้อย่างง่ายดาย

รีเลย์กกที่ยอดเยี่ยมทั้งสองนี้มาพร้อมกับฟลายแบ็คไดโอดและกินไฟไม่เกิน 7mA เพื่อให้สามารถเชื่อมต่อโดยตรงกับพิน Arduino ใดๆ (ฉันจะแนะนำสิ่งเหล่านี้ต่อไปในโครงการในอนาคตของฉันด้วย) หน้าที่ของรีเลย์:

หนึ่งคือการเปิดโซลินอยด์เมื่อเริ่มกระบวนการปิ้งขนมปัง (เพื่อดึงคันโยกลง)

หนึ่งคือการเปิดและปิดหน้าจอโดยอัตโนมัติในกรณีที่ตรวจพบการเคลื่อนไหว

ฉันคิดว่าการรันหน้าจอ HDMI ตลอด 24 ชั่วโมงทุกวันไม่ได้ให้อายุการใช้งานที่ยาวนาน (โดยเฉพาะสิ่งที่ฉันใช้นั้นเป็นเพียงของปลอมราคาถูก ไม่ใช่ WaveShare ดั้งเดิม:

และพีซีของคุณสามารถเปิดหน้าจอเมื่อคุณเข้าห้องได้หรือไม่ ฉันไม่คิดอย่างนั้น เครื่องปิ้งขนมปัง BSD ทำได้!

โดยทั่วไปแล้วหน้าจอจะจับเวลาค้างไว้ 10 นาทีซึ่งจะชนโดยอัตโนมัติทุกครั้งที่มีการเคลื่อนไหวอีกครั้ง สมมุติว่าเปิดเครื่องแล้วมีการเคลื่อนไหวอีกครั้งในอีก 9 นาทีต่อมา ซึ่งหมายความว่าเครื่องจะเปิดต่อไปอีก 10 นาที การเปิดและปิดไม่ดีต่อสุขภาพสำหรับวงจรใดๆ ยกเว้น SSR

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

ในการออกแบบดั้งเดิม น่าจะมีรีเลย์อีกตัวบนบอร์ดสำหรับเปิดชุดลำโพง 2.1 ก่อนที่ Raspberry pi จะส่งเสียงเตือนในตอนเช้า (นอกจากนี้ยังเพิ่มเพลงได้ง่ายมากเมื่อการปิ้งขนมปังเสร็จสิ้น) แต่เนื่องจากนี่คือเหตุผล IoT รบกวน? มันแค่ขอให้ raspi อื่นในเครือข่ายของฉันทำสิ่งนั้นให้ฉันด้วย RCSwitch มาตรฐาน 433Mhz

ตามปกติแล้วจะมีข้อผิดพลาดเล็กๆ น้อยๆ เกิดขึ้นกับบอร์ดเวอร์ชัน 0.4 สิ่งที่สามารถเห็นได้จากรูปภาพ คือตัวเชื่อมต่อ 5V อีก 2 ตัวและตัวเชื่อมต่อสำหรับรีเลย์อินพุตบน Arduino pin 10 ถูกทิ้งไว้

ฉันได้แก้ไขสิ่งเหล่านี้ในเวอร์ชัน 0.5 และฉันยังสร้างเวอร์ชันที่ไม่ใช่ Xbee ด้วย

เนื่องจากนี่เป็นบอร์ด 2 ชั้นเพียงแค่ดาวน์โหลดเลย์เอาต์เหล่านี้และ DIY จะยาก คุณจะต้องพิมพ์ทั้ง 2 ด้านให้แม่นยำ แกะสลักบอร์ดและหาวิธีเชื่อมต่อด้านข้าง ดังนั้นฉันจะเชื่อมโยงในภายหลังในโปรเจ็กต์ที่แชร์ของ Easyeda. ขอแนะนำให้สั่งซื้อโดยตรงจากพวกเขา

ขั้นตอนที่ 6: Xbee Mod

Xbee อยู่ที่นี่เพียงเพื่อควบคุมเครื่องชงกาแฟโดยตรงผ่านมัน เพราะมันค่อนข้างใกล้กับในระยะไกลและไม่มีสิ่งกีดขวางระหว่างทั้งสอง

มันไม่เกี่ยวอะไรกับเครื่องปิ้งขนมปังหรือรหัสเครื่องปิ้งขนมปังเลย

เกี่ยวกับม็อด Xbee: นี่เป็นทางเลือกโดยสมบูรณ์ นั่นคือเหตุผลที่ฉันรวมแผนผังสำหรับบอร์ดนี้ทั้งที่มีและไม่มี Xbee Xbee ถูกบัดกรีโดยตรงในพอร์ต UART ฮาร์ดแวร์ RX/TX ของ Raspberry PI (ttyAMA0) ซึ่งแม้จะนำออกไปที่ขั้วต่อของหน้าจอ แต่หน้าจอไม่ได้ใช้งาน (ใช้อินเทอร์เฟซ SPI เพื่อสื่อสารพิกัดสัมผัสระหว่าง PI กับตัวมันเอง).

ฉันทุ่มเทพอร์ตอนุกรมแยกต่างหากบน PI สำหรับการสื่อสาร Xbee แทนที่จะส่งข้อความผ่าน Raspberry -> Arduino -> ตัวแปลง 5v3v -> Xbee -> อุปกรณ์อื่น ๆ วิธีนี้ไม่ใช่ปัญหาที่กระบวนการปิ้งขนมปังจะบล็อก MCU ทั้งหมด

ขั้นตอนที่ 7: รหัสควบคุมเครื่องปิ้งขนมปัง

โค้ดนี้ค่อนข้างง่ายเนื่องจากมีการสื่อสารทางเดียวระหว่าง Arduio -> Raspberry PI

อุปกรณ์นี้ไม่เหมือนกับเครื่องชงกาแฟที่ไม่สามารถควบคุมจากโทรศัพท์หรือคอมพิวเตอร์ได้ด้วยตนเองด้วยการควบคุมแบบแฟนซี

หน้าที่เดียวของ PI ที่นี่คือการบันทึกข้อมูลและแสดงกราฟที่ดี ไม่ใช่ขวดสำหรับการทำงานของเครื่องปิ้งขนมปัง มันสามารถปิดอย่างสมบูรณ์หรือลบออกจากโครงการนี้ Arduino ทำงานทั้งหมด

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

ภายใน rotary_read_temp() และ rotary_read_time() จะมีการเปลี่ยนแปลงตัวแปร global_temp และ global_time นี่เป็นที่เดียวในโค้ดที่ค่าเหล่านี้สามารถเปลี่ยนแปลงได้ และจะเก็บค่าไว้ระหว่างเหตุการณ์การฉลอง

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

ไฟ LED จะถูกปิดเป็นระยะทุกๆ 10 นาทีในกรณีที่ไม่มีเหตุการณ์การหมุนล่าสุด

การรวมกันของ 2 ฟังก์ชันนี้จะส่งผลให้:

1, สมมติว่าสถานะว่าง

2, โรตารี่ใด ๆ ที่ย้าย (หากมีการปรับก่อนหน้านี้ ค่าเหล่านี้จะถูกเรียกคืนจากหน่วยความจำและแสดงบนไฟ LED)

3, หากกระบวนการปิ้งขนมปังไม่เริ่มต้นและไม่มีเหตุการณ์การปรับแต่งเพิ่มเติม ไฟจะดับลงอีกครั้ง

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

กระบวนการปิ้งขนมปังหลัก (ด้าน Arduino):

สิ่งนี้จะเริ่มต้นเมื่อระบบถูกทริกเกอร์จากรีเลย์อินพุตเริ่มต้น (230V) (และทั้งเวลาและอุณหภูมิจะแตกต่างจากศูนย์) การไหลของโปรแกรมมีดังต่อไปนี้ที่ด้าน Arduino:

1, เปิดโซลินอยด์เพื่อกดคันโยก

2, เปิด SSR เพื่อให้ความร้อนขึ้น

3 ขึ้นอยู่กับเวลาที่เริ่มการปิ้งแบบวนซ้ำซึ่งนับถอยหลัง ในแต่ละลูปส่งข้อมูลต่อไปนี้ไปยังคอมพิวเตอร์:

-TEMPERATURE (เดิมเป็นค่าทศนิยม แต่ถูกส่งเป็น 2 สตริง CSV)

-TIME ยังคงอยู่ (เป็นวินาที ซึ่งจะถูกแปลงกลับเป็นรูปแบบ mm:ss อีกด้านหนึ่ง)

4, ในแต่ละวงขึ้นอยู่กับอุณหภูมิที่ตั้งไว้เปิดหรือปิด SSR เพื่อควบคุมกระบวนการปิ้ง

5 เมื่อสิ้นสุดลูปปิ้ง คำสั่ง IRONFORGE_OFF จะถูกส่งไปยังคอมพิวเตอร์

6, ปิด SSR แล้วปล่อยโซลินอยด์

7, เล่นเกม LED เพื่อโชว์ออฟ (ที่นี่คุณสามารถเพิ่มเล่นเพลงหรือการกระทำอื่น ๆ ที่คุณต้องการได้)

8, ไฟ LED ดับ

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

กระบวนการปิ้งหลัก (Raspberry PI Side):

raspberry pi รันโปรแกรมควบคุม head C กับผู้ใช้ที่ไม่ได้รับสิทธิพิเศษซึ่งรับผิดชอบการโต้ตอบทั้งหมดบนเดสก์ท็อป

ฉันตัดสินใจใช้ Conky สำหรับการแสดงกราฟทั้งหมดเพราะฉันใช้มันมานับสิบปีแล้วและดูเหมือนว่าจะใช้งานง่ายที่สุดสำหรับงาน แต่ก็มีบางอย่างที่น่าสนใจ:

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

-Conky ชอบที่จะพังโดยเฉพาะอย่างยิ่งเมื่อคุณฆ่าและโหลดซ้ำ

ด้วยเหตุผลประการที่สอง ฉันตัดสินใจวางไข่ลูกไก่ทั้งหมดผ่านกระบวนการควบคุมที่แยกจากกันเพื่อเฝ้าระวัง

lua ที่ไม่ได้ใช้งานพื้นฐานใช้ 2 conkies แยกกัน (1 สำหรับข้อมูลสภาพอากาศและอีกอันสำหรับนาฬิกา)

เมื่อการปิ้งเริ่มต้น:

1, Arduino ส่งสัญญาณโปรแกรมราสเบอร์รี่ pi C ผ่านซีเรียลด้วย IRONFORGE_ON

2, โปรแกรมควบคุม C หยุด 2 เธรด conky และโหลดใน conky lua ที่ 3 สำหรับการปิ้ง

3, โปรแกรมควบคุม C เขียนทั้งค่าอุณหภูมิและเวลาเพื่อแยกไฟล์ข้อความที่อยู่ใน ramdisk (เพื่อไม่ให้ดำเนินการ RW ที่ไม่จำเป็นใน SDcard) สิ่งที่ conkies กำลังอ่านและแสดงโดยอัตโนมัติ โปรแกรมมีหน้าที่สร้างเวลาที่เหลือให้อยู่ในรูปแบบ MM:SS เช่นกัน

4 เมื่อสิ้นสุดการปิ้งโปรแกรม C จะหยุดเธรดการปิ้งปัจจุบันและรีสตาร์ท 2 conkies เพื่อกลับไปที่การแสดงสภาพอากาศและเวลาอีกครั้ง

5, สำหรับการตรวจจับสัญญาณเตือนโปรแกรม C สามารถหยุดกระบวนการเล่นเพลงจาก cron ได้โดยตรงเมื่ออยู่ในสถานะไม่ได้ใช้งานใด ๆ ของโรตารี่จะถูกผลักเข้ามา

ขั้นตอนที่ 8: ขนมปังปิ้งทั้งหมดของคุณเป็นของเรา: NetBSD Vs Raspbian

ขนมปังปิ้งทั้งหมดของคุณเป็นของเรา: NetBSD Vs Raspbian
ขนมปังปิ้งทั้งหมดของคุณเป็นของเรา: NetBSD Vs Raspbian

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

ชิปสัมผัสของ LCD คือ XPT2046 หน้าจอใช้ SPI เพื่อส่งพิกัดอินพุตเคอร์เซอร์กลับไปที่ Raspberry

www.raspberrypi.org/documentation/hardware…

  • 19 อินพุตข้อมูล TP_SI SPI ของ Touch Panel
  • 21 TP_SO SPI เอาต์พุตข้อมูลของ Touch Panel
  • 22 TP_IRQ Touch Panel ขัดจังหวะ ระดับต่ำในขณะที่ TouchPanel ตรวจพบการสัมผัส
  • 23 TP_SCK SPI นาฬิกาของ Touch Panel
  • 26 TP_CS การเลือกชิปจอสัมผัส ใช้งานต่ำ

ในขณะที่เขียนนี้ฉันไม่ทราบหน้าจอสัมผัส (โล่) ที่เข้ากันได้กับ Raspberry PI ซึ่งมีไดรเวอร์ NetBSD ที่ใช้งานได้สำหรับทัชแพด

ขั้นตอนที่ 9: ปิดรายการและสิ่งที่ต้องทำ

รายการปิดและสิ่งที่ต้องทำ
รายการปิดและสิ่งที่ต้องทำ

ยินดีต้อนรับความช่วยเหลือ การสนับสนุน การแก้ไขในโค้ดเช่นเคย

นี่เป็นแฮ็คที่เพิ่งเสร็จสิ้น ดังนั้นฉันจะอัปเดตโปรเจ็กต์ด้วยโค้ดที่หายไปในภายหลัง (โค้ดควบคุม Raspberry pi C, Conky luas เป็นต้น) นอกจากนี้ ฉันวางแผนที่จะสร้างอิมเมจ sdcard ขนาด 8GB/16GB ที่ปรับขนาดได้อัตโนมัติซึ่งมีทุกอย่าง เนื่องจาก Raspberry PI เป็นฮาร์ดแวร์มาตรฐาน ใครก็ตามที่ตัดสินใจสร้างโปรเจ็กต์ก็สามารถดาวน์โหลดรูปภาพ เขียนมันลงใน sdcard และเครื่องปิ้งขนมปังจะทำงานได้หลังจากบูทเครื่องเหมือนกับของฉัน การตั้งค่าเครือข่ายจำเป็นสำหรับเวลาที่ถูกต้อง (NTP) และการแสดงอุณหภูมิเท่านั้น

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

นอกจากนี้ ยังวางแผนที่จะเพิ่มระยะเวลาการปรับขนาดอัตโนมัติตามอุณหภูมิที่ตั้งไว้เพื่อให้สามารถขยายกรอบเวลาสูงสุด 5 นาทีนี้หากอุณหภูมิลดลง

แนะนำ: