DIY เครื่องกดสบู่โฟม 'โมอาย' สุดคูล! กรณีศึกษาการทำ Prototype อุปกรณ์ Smart Hygiene

สวัสดีชาว Maker, ทีม R&D และสายพัฒนานวัตกรรมทุกท่านครับ! ในยุคที่อุตสาหกรรม Smart Home และ Smart Hygiene (สุขภัณฑ์อัจฉริยะ) กำลังเติบโต การสร้าง Prototype เพื่อทดสอบไอเดียถือเป็นหัวใจสำคัญของการทำงานสเกล B2B เลยก็ว่าได้

วันนี้เราจะพามาดูโปรเจกต์สนุกๆ ที่แฝงไปด้วยเทคนิคการพัฒนาฮาร์ดแวร์ระดับมืออาชีพ นั่นคือ "เครื่องกดสบู่โฟมอัตโนมัติรูปปั้นโมอาย (Moai Soap Dispenser)" ที่ผสมผสานงาน 3D Print ด้วยเส้น Marble PLA (ลายหินอ่อน) เข้ากับการออกแบบวงจรเซนเซอร์ IR และการเขียนโค้ดจัดการพลังงาน (Deep Sleep) เพื่อให้แบตเตอรี่ใช้งานได้ยาวนานระดับอุตสาหกรรมครับ!

Moai Soap Dispenser

เตรียมของก่อนลุย (Supplies & BOM)

การจัดหาชิ้นส่วน (Sourcing) ถือเป็นขั้นตอนแรกที่สำคัญ อุปกรณ์หลักๆ ที่ใช้ในโปรเจกต์นี้ประกอบด้วยชิ้นส่วนทางกลและอิเล็กทรอนิกส์พื้นฐานที่หาได้ง่ายครับ:

  • วัสดุ 3D Print: เส้น Marble PLA (ลายหินอ่อน) และ Black PLA
  • กลไกปั๊ม: Foaming pump (หัวปั๊มโฟม) และท่อซิลิโคน (OD 6.5mm / ID 3.5mm)
  • พลังงาน: แบตเตอรี่ 18650, รางถ่าน, พอร์ต USB-C, และโมดูลชาร์จ TP4056
  • สมองกลและเซนเซอร์: ไมโครคอนโทรลเลอร์ ATtiny402, 3mm IR LED (TX) และ Photodiode (RX)
  • วงจรขับ: N-Channel MOSFET (MOT3400), ตัวต้านทาน, คาปาซิเตอร์ (100uf Tantalum, 0805 SMD) และน็อต/Threaded inserts

💡 Pro Tip สำหรับสายอุตสาหกรรม (B2B): หากบริษัทของคุณกำลังพัฒนา Prototype อุปกรณ์ Smart Device หรือกำลังมองหา เส้นพลาสติก 3D Print (Filament) เกรดวิศวกรรมที่ทนทานต่อสารเคมี/ความชื้น ไปจนถึงบอร์ดไมโครคอนโทรลเลอร์และเซนเซอร์คุณภาพสูง ทาง Globalbyte ยินดีเป็นพาร์ทเนอร์จัดหาอุปกรณ์ให้คุณแบบครบวงจร เพื่อลดเวลา Sourcing และเร่งกระบวนการ R&D ของคุณให้ไวขึ้นครับ!

Supplies 1 Supplies 2 Supplies 3 Supplies 4 Supplies 5

Step 1-4: งาน 3D Print - จากไฟล์ STL สู่โปรดักต์จริง

ในขั้นตอนการทำ Prototype เรานำโมเดล 3D โมอายดั้งเดิมมา Remix ด้วย Tinkercad ให้ภายในกลวง เพื่อซ่อนปั๊มน้ำและแผงวงจร (Enclosure Design) จากนั้นใช้ซอฟต์แวร์ Cura ตั้งค่า Slicer โดยแยกขนาดหัวฉีด (Nozzle): ใช้หัว 0.6 mm สำหรับโครงสร้างหลักเพื่อความรวดเร็ว และ 0.4 mm สำหรับฝาครอบ LED เพื่อเก็บรายละเอียดครับ

เมื่อสั่งปริ้นท์ด้วย Marble PLA (ลายหินอ่อน) ผลลัพธ์ที่ได้จะดูพรีเมียมและพรางรอยต่อเลเยอร์ (Layer lines) ได้เนียนกริบสุดๆ เหมาะกับการทำชิ้นงาน Mockup ไปพรีเซนต์ลูกค้ามากๆ ครับ

Tinkercad Design
Cura Slicer Cleaned Prints Print Parts

Step 5-7: งานสมองกลและออกแบบ PCB (Electronics & PCB)

หลักการทำงานคือ ใช้ IR LED (ตัวส่ง) และ Photodiode (ตัวรับ) เมื่อยื่นมือเข้ามา แสง IR จะสะท้อนกลับไปเข้าตัวรับ สัญญาณจะถูกส่งไปที่ไมโครคอนโทรลเลอร์ ATtiny402 (ตัวเล็ก ประหยัดไฟจัด) เพื่อสั่งให้ MOSFET จ่ายไฟขับมอเตอร์ปั๊มโฟมครับ

วงจรนี้ถูกวาดและสั่งทำเป็น PCB (Printed Circuit Board) แบบ Custom จากนั้นใช้เทคนิคการบัดกรีอุปกรณ์ SMD ขนาดเล็ก (อย่างตัวต้านทานเบอร์ 0805) ลงบนแผ่นวงจร ก่อนจะล้างคราบฟลักซ์ด้วยแอลกอฮอล์ (IPA) ให้สะอาดตามมาตรฐานงานอิเล็กทรอนิกส์

Schematic
Manufactured PCB Soldering 1 Soldering 2

Step 8-9: โค้ดดิ้งฉบับเซฟแบตเตอรี่ (Deep Sleep & Ambient Rejection)

นี่คือคีย์เวิร์ดสำคัญของอุปกรณ์ไร้สายในงานอุตสาหกรรมครับ! ถ้าชิปทำงานตลอดเวลา แบตเตอรี่จะหมดภายในไม่กี่วัน เราจึงต้องเขียนโค้ดให้ระบบเข้าสู่โหมด Deep Sleep (หลับลึกกินไฟน้อยมาก) และตื่นขึ้นมาเช็คเซนเซอร์เป็นช่วงสั้นๆ (0.5 วินาที) ถ้าเจอมือก็จะปั๊มสบู่ 1 วินาทีแล้วหลับต่อ

แถมในโค้ดยังมีการทำ Ambient Rejection (ลบกวนแสงสว่างรอบข้าง) โดยการวัดค่าตอนเปิด/ปิด LED แล้วเอามาลบกัน เพื่อป้องกันปัญหาไฟตกกระทบแล้วเครื่องปั๊มสบู่เองจนเลอะเทอะครับ

C++ (ATtiny402 Firmware)
/*
  ATtiny402 — IR + Deep Sleep + Ambient Rejection + Pump Timer
*/
#include <avr/sleep.h>
#include <avr/interrupt.h>

#define PUMP_PIN          PIN_PA6
#define IR_ADC_PIN        PIN_PA1
#define IR_LED_PIN        PIN_PA3

#define DETECT_THRESHOLD  80
#define IR_WARMUP_US      200
#define NUM_SAMPLES       8

#define PUMP_MAX_TICKS    2    // Max pump run: 1 second
#define SLEEP_TICKS       4    // Cooldown: 2 seconds

volatile bool pitFired = false;

ISR(RTC_PIT_vect) {
  RTC.PITINTFLAGS = RTC_PI_bm;
  pitFired = true;
}

void setupPIT() {
  RTC.CLKSEL     = RTC_CLKSEL_INT1K_gc;
  while (RTC.PITSTATUS & RTC_CTRLBUSY_bm);
  RTC.PITINTCTRL = RTC_PI_bm;
  while (RTC.PITSTATUS & RTC_CTRLBUSY_bm);
  RTC.PITCTRLA   = RTC_PERIOD_CYC512_gc | RTC_PITEN_bm;
}

void sleepOneTick() {
  pitFired = false;
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  sei();
  sleep_cpu();
  sleep_disable();
}

void sleepTicks(uint8_t ticks) {
  for (uint8_t i = 0; i < ticks; i++) {
    sleepOneTick();
  }
}

int readIRDifferential() {
  long sumOff = 0, sumOn = 0;
  for (int i = 0; i < NUM_SAMPLES; i++) {
    digitalWrite(IR_LED_PIN, LOW);
    delayMicroseconds(100);
    sumOff += analogRead(IR_ADC_PIN);
    digitalWrite(IR_LED_PIN, HIGH);
    delayMicroseconds(IR_WARMUP_US);
    sumOn += analogRead(IR_ADC_PIN);
    digitalWrite(IR_LED_PIN, LOW);
    delayMicroseconds(100);
  }
  return (sumOn / NUM_SAMPLES) - (sumOff / NUM_SAMPLES);
}

bool isHandDetected() {
  return (readIRDifferential() > DETECT_THRESHOLD);
}

void runPump() {
  digitalWrite(PUMP_PIN, HIGH);
  for (uint8_t tick = 0; tick < PUMP_MAX_TICKS; tick++) {
    sleepOneTick();
    if (!isHandDetected()) break;
  }
  digitalWrite(PUMP_PIN, LOW);
}

void setup() {
  pinMode(PUMP_PIN,   OUTPUT);
  pinMode(IR_LED_PIN, OUTPUT);
  pinMode(IR_ADC_PIN, INPUT);
  digitalWrite(PUMP_PIN,   LOW);
  digitalWrite(IR_LED_PIN, LOW);
  setupPIT();
  sei();
}

void loop() {
  if (pitFired) {
    pitFired = false;
    if (isHandDetected()) {
      runPump();
      sleepTicks(SLEEP_TICKS);
    }
  }
  sleepOneTick();
}

Step 10-17: ประกอบร่างโมอาย! (Final Assembly)

เริ่มจากการฝัง Threaded inserts (น็อตทองเหลืองฝังพลาสติก) ลงในชิ้นส่วน 3D Print ด้วยหัวแร้งความร้อน จากนั้นนำชิ้นส่วน Black PLA มาครอบแบ่งกั้นระหว่าง IR LED และ Photodiode เพื่อไม่ให้แสงกวนกันเอง

ติดตั้งปั๊มโฟมและท่อซิลิโคนเข้าในตัวเครื่อง ขันน็อตยึดแผ่น PCB และแบตเตอรี่ 18650 ปิดฝาหลังให้เรียบร้อย เป็นอันเสร็จสิ้นขั้นตอนการประกอบ Prototype ครับ

IR Sensor Shield
Threaded Inserts Pump Installation Wiring Connections Final Closure

Step 18-21: เติมสบู่แล้วเทสกันเลย! (Testing)

ระบบนี้ออกแบบมาสำหรับ "สบู่โฟม (Foaming soap)" โดยเฉพาะครับ ถ้ามีแต่สบู่เหลวธรรมดา ให้เอาไปเจือจางกับน้ำก่อนเติมลงไปในแท็งก์ เพื่อให้ปั๊มสามารถอัดอากาศผสมออกมาเป็นวิปโฟมสวยๆ ได้

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

พร้อมสร้าง Prototype นวัตกรรม Smart Home ระดับองค์กรหรือยัง?

ติดต่อทีมงาน Globalbyte เพื่อปรึกษาสเปก ขอใบเสนอราคา (B2B) หรือจัดหาวัสดุและอุปกรณ์คุณภาพสูง

ดูสินค้าเส้น 3D Print เกรดวิศวกรรม และบอร์ด IoT เข้ากลุ่ม Community แลกเปลี่ยนความรู้สายพัฒนานวัตกรรม ติดต่อฝ่ายขาย (LINE OA) เพื่อขอราคาโปรเจกต์

อ้างอิงข้อมูลจาก: Globalbyteshop Blog

ต้นฉบับโปรเจกต์โดย: Instructables | Original Link

ดาวน์โหลดเอกสารและไฟล์ที่เกี่ยวข้อง:

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

 

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี