1 คะแนน โดย GN⁺ 2025-11-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โปรเจ็กต์สร้าง จอขนาดเล็กสำหรับแสดงข้อมูลเวลารถไฟ BART มาถึงแบบเรียลไทม์ เพื่อจำลองบรรยากาศของป้ายบนชานชาลาจริง
  • ใช้ Seeed Studio XIAO ESP32C6 และ จออักขระ OLED สีแดง 20x4 เป็นฮาร์ดแวร์หลัก
  • ไม่ประมวลผลข้อมูลจาก GTFS Realtime API โดยตรง แต่สร้าง เซิร์ฟเวอร์ตัวกลาง (middleware) เพื่อแปลงเป็น API แบบง่ายแล้วให้ ESP32 เรียกใช้
  • เพิ่ม รายละเอียดอย่างฉลากและสกรู ลงบนเคสที่พิมพ์ด้วย 3D เพื่อให้มีรูปลักษณ์คล้ายป้าย BART จริง
  • ชิ้นงานที่เสร็จแล้วติดตั้งไว้ใต้ชั้นวางเหนือจอมอนิเตอร์ และแสดง เวลามาถึง, ข้อความด้านความปลอดภัย และนาฬิกา เพื่อจำลองความรู้สึกของชานชาลาในพื้นที่ภายในอาคาร

ฮาร์ดแวร์

  • โปรเจ็กต์นี้ประกอบด้วย Seeed Studio XIAO ESP32C6, SPI Red 20x4 Character OLED Display, และ SparkFun Logic Level Converter
    • ESP32C6 ทำหน้าที่ขับจอแสดงผลและดึงข้อมูลเวลารถไฟ BART มาถึง
    • ใช้ตัวแปลงลอจิกเลเวลเพื่อให้แรงดันไฟฟ้าเข้ากันได้
  • เลือกใช้โมดูล OLED สีแดงจาก BuyDisplay เพื่อถ่ายทอดความรู้สึกของป้ายบนชานชาลา BART จริง
    • แม้ PCB จะใหญ่กว่าตัวจอเล็กน้อยและส่งผลต่อขนาดสุดท้าย แต่ก็ยอมรับได้เพื่อความพึงพอใจด้านภาพลักษณ์
  • อุปกรณ์ทั้งหมดบัดกรีลงบน perfboard และเชื่อมต่อด้วย header pin ทำให้สามารถ ติดตั้งเข้ากับจอได้โดยตรงในลักษณะคล้ายคาร์ทริดจ์

โครงสร้างเฟิร์มแวร์

  • BART Official API ใช้รูปแบบ GTFS Realtime ที่พัฒนาร่วมกับ Google
  • เนื่องจากยากต่อการพาร์สโดยตรงบน ESP32 จึงสร้าง เซิร์ฟเวอร์ตัวกลาง (middleware) ขึ้นมา
    • เซิร์ฟเวอร์จะดึงข้อมูล GTFS แล้วแยกเฉพาะข้อมูลที่ต้องใช้
    • จากนั้นแปลงเป็น API แบบง่าย ที่ ESP32 เรียกใช้ได้
  • โค้ดที่เกี่ยวข้องเผยแพร่ไว้ใน GitHub repository (filbot/bart-proxy)

เดโมและการประกอบ

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

งานเก็บรายละเอียดและรูปลักษณ์ภายนอก

  • เก็บผิวชิ้นส่วนที่พิมพ์ 3D ด้วย การขัด, ลงไพรเมอร์ และพ่นสี
  • พิมพ์โลโก้ผู้ผลิตป้าย BART จริงและหมายเลขชานชาลาด้วย เครื่องพิมพ์ฉลาก Brother แล้วนำไปติดตั้ง
  • ไฟล์โมเดล 3D ที่เสร็จสมบูรณ์สามารถดาวน์โหลดได้จาก Makerworld

ผลลัพธ์สุดท้าย

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

1 ความคิดเห็น

 
GN⁺ 2025-11-12
ความคิดเห็นบน Hacker News
  • เป็นโปรเจ็กต์ที่เจ๋งมาก เมื่อก่อนฉันก็เคยออกจากบ้านตามตารางเวลาสถานีเหมือนกัน แต่ไม่นานก็ ตระหนักว่ามันไม่ได้มีประโยชน์อะไร
    แค่ออกไปตอนที่สะดวก ความเครียดจากการต้องวางแผนก็หายไป และถึงเวลาเฉลี่ยที่ต้องรอจะเพิ่มขึ้นนิดหน่อยก็ยังสบายใจกว่ามาก

    • ฉันอยู่ฟินแลนด์ และหน้าหนาวมันหนาวมาก เลยทำ อุปกรณ์ฮาร์ดแวร์ ที่แสดงเวลาออกของรถรางใกล้บ้านขึ้นมาเอง
      วันที่อุณหภูมิประมาณลบ 20 องศา การรอ 1 นาทีกับ 7 นาทีต่างกันมากจริงๆ
    • เวลาเฉลี่ยที่ต้องรออาจยาวกว่าการเพิ่มขึ้นเพียงครึ่งเดียวด้วยซ้ำ นี่เป็นเพราะ Waiting Time Paradox ซึ่งเป็นปรากฏการณ์ Inspection Paradox ในบริบทของการขนส่ง
      ดูเพิ่มเติมได้ในบทความ Medium
    • ฉันก็มีประสบการณ์แบบเดียวกัน ตอนเช้าที่พลาดรถ BART ไปพอดีกลับดีกว่าเสียอีก
      ช่วงเวลานั้นฉันสามารถทำ SSR flashcards หรืออ่านหนังสือเพื่อปรับอารมณ์ให้สงบได้
      โดยเฉพาะสถานี South San Francisco ที่เพดานสูงมาก และยังได้ยินเสียงนกพิราบอีก เลยให้บรรยากาศเหมือนโบสถ์เลย
    • ฉันจะเช็กตารางเวลาเฉพาะตอนที่รถบัสหรือรถไฟมาทุก 10 นาทีขึ้นไปเท่านั้น ส่วนรถรางเกือบจะมาภายใน 10 นาทีเสมอ ก็เลยออกไปเลย
    • ถ้าเป็นเส้นทางที่รถไฟมาทุก 30 นาที เรื่องก็อีกแบบ ในกรณีแบบนี้ การไปให้ตรงเวลามีคุณค่าอย่างชัดเจน
  • ฉันก็ทำอะไรคล้ายๆ กันไว้เหมือนกัน เป็น โปรเจ็กต์จอสี ที่ใช้ข้อมูลขนส่งของสวิตเซอร์แลนด์ และทำออกมาเป็นสินค้าแล้วด้วย
    ดูบทความโปรเจ็กต์และเว็บไซต์สินค้า
    ใช้ข้อมูลสาธารณะที่รัฐบาลให้มาบน ESP32-S3

    • สงสัยว่าคำนวณอัตราแลกเปลี่ยนถูกไหม ประมาณ 1449CHF ดูเหมือนจะราว 1800 ดอลลาร์ แต่ก็ไม่แน่ใจ
  • งานออกมาดีมาก การเลือกจอก็ยอดเยี่ยม
    ถ้าอยากลด middleware, ลองใช้ LLM รุ่นใหม่แปลงภาษาโค้ดดูก็เป็นวิธีหนึ่ง
    ESP แรงพอที่จะจัดการงาน API เองได้อยู่แล้ว ดังนั้นถ้าให้ LLM ช่วยแปลงก็จะได้ ผลด้านการเรียนรู้ สูงด้วย

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

  • ทุกครั้งที่เห็นจอนี้ ก็เหมือนมี เสียงประกาศของ BART ดังขึ้นมาในหัวโดยอัตโนมัติ
    บทความที่เกี่ยวข้อง: บทความเกี่ยวกับเสียงประกาศ BART

  • เป็นงานประกอบที่เท่มาก น่าจะช่วยเปลี่ยนบรรยากาศในห้องไปได้เยอะเลย

  • มีข้อเสนอด้านฟังก์ชันอย่างหนึ่ง — อยากให้เพิ่ม เสียงหุ่นยนต์
    อ้างอิง: บทความเกี่ยวกับเสียงประกาศ BART

    • เมื่อก่อนที่ Noisebridge เคยทำโปรแกรมที่ประกาศเวลามาถึงของ BART ด้วยเสียงสังเคราะห์
      แต่คนอื่นบอกว่ามันเสียงดังเกินไป เลยต้องปิดอย่างรวดเร็ว
    • สำหรับฉัน เสียงที่ฟังไม่ชัดแต่มีเสน่ห์นั้น ยังเป็นความทรงจำชวนคิดถึง
      สมัยก่อนถ้าชานชาลาเปลี่ยน ก็ต้องคอยเช็กเองทั้งหมด
    • ระบบสังเคราะห์เสียง แบบเก่าของ BART ยังน่าประทับใจอยู่เลย ตอนนั้นมันล้ำสมัยมาก และทุกวันนี้ฟังก็ยังให้ความรู้สึกเหมือนอนาคต
      พอเห็นบทความนั้นก็คิดขึ้นมาว่า “ต้องหาเสียงนี้ให้เจอ” แล้วก็เหมือนเจอสิ่งนั้นพอดี
  • ฉันได้แรงบันดาลใจจาก การออกแบบ real-time API ที่เรียบง่ายและสะอาดมาก
    ทำให้รู้สึกว่าน่าจะเข้าถึงได้ง่ายกว่าตอนที่เคยจัดการข้อมูล GTFS มาก

  • โดยรวมแล้วทั้งความเนี้ยบและรายละเอียดทำออกมาได้ยอดเยี่ยมมาก บรรยากาศและความดื่มด่ำ ดีจริงๆ

  • ฉันเองก็เคยอยากทำอะไรคล้ายๆ กันที่แสดงข้อมูลรถไฟหน้าบ้าน
    แต่ยังหา API ที่เชื่อถือได้ ไม่เจอ