2 คะแนน โดย GN⁺ 2024-10-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่ออาศัยอยู่ในซานฟรานซิสโกก็ต้องใช้ขนส่งสาธารณะบ่อย แต่หลายแอปให้การแจ้งเตือนเวลาเดินทางมาถึงเฉพาะทั้งเส้นทางเท่านั้น
  • จึงทำให้แสดงเฉพาะการแจ้งเตือนเวลาเดินทางมาถึงที่ใกล้กับตำแหน่งปัจจุบันบน Kindle เพื่อให้ตรวจดูก่อนออกจากบ้านได้
  • ทำการเจลเบรก Kindle เปิดใช้งาน USBNet และตั้งค่าให้เข้าถึงผ่าน SSH ได้
  • จากนั้นจึงสามารถตั้งงาน cron เพื่ออัปเดตหน้าจอได้
  • ในขั้นแรกของการแสดงภาพบน Kindle ได้ดึงสกรีนช็อตจากหน้าข้อมูลเวลาออกเดินทางแบบเรียลไทม์ของ BART แล้วส่งไปยัง Kindle
  • ในความพยายามแรก ภาพที่แสดงมีความบิดเบี้ยวอย่างมาก
  • แก้ปัญหาได้ด้วยการปรับขนาดภาพและความลึกสี

การสร้างภาพที่ใช้งานได้จริง

  • สร้างเซิร์ฟเวอร์ Node.js ใช้ Puppeteer จับภาพหน้าจอของหน้า BART แล้วปรับขนาดและสีให้เหมาะกับ Kindle ก่อนส่งกลับผ่าน HTTP endpoint
  • ติดตั้งเซิร์ฟเวอร์บน Raspberry Pi และตั้ง cron ให้ดึงภาพทุกนาที

เริ่มใหม่ตั้งแต่ต้น - สถาปัตยกรรม

  • สร้าง HTTP เซิร์ฟเวอร์ใหม่ด้วย Rust และ Axum
  • ใช้ API ของ 511.org เพื่อดึงเวลาเดินทางมาถึงของทุกป้ายใน Bay Area
  • ใช้ไลบรารีกราฟิก Skia เพื่อเรนเดอร์ภาพ PNG โดยตรง

การดึงข้อมูล

  • ใช้ API ของ 511.org เพื่อดึงเวลาเดินทางมาถึงของ SF MUNI
  • พาร์สคำตอบ JSON แล้วกรองเฉพาะเวลาเดินทางมาถึงของป้ายที่ต้องการ
  • เรียงลำดับเวลาเดินทางมาถึงแล้วแสดงแยกตามแต่ละทิศทาง

สรุปโดย GN⁺

  • โปรเจกต์นี้กล่าวถึงกระบวนการสร้างระบบแสดงข้อมูลขนส่งสาธารณะแบบเรียลไทม์ด้วย Kindle เก่า
  • ใช้ Rust และ Skia เพื่อสร้างระบบที่มีประสิทธิภาพและเชื่อถือได้
  • การให้ข้อมูลขนส่งสาธารณะแบบเรียลไทม์ช่วยมอบข้อมูลที่เป็นประโยชน์แก่ผู้ใช้ได้
  • โปรเจกต์ที่มีความสามารถคล้ายกันซึ่งแนะนำคือโปรเจกต์สมาร์ตดิสเพลย์บน Raspberry Pi

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

 
GN⁺ 2024-10-25
ความคิดเห็นจาก Hacker News
  • OneBusAway เป็นโปรเจ็กต์โอเพนซอร์สที่มีผู้คนจำนวนมากใช้ทุกวันเพื่อตรวจสอบตำแหน่งและเวลาเดินทางมาถึงของรถบัส รถไฟ รถราง และเคเบิลคาร์

    • ในเมืองที่มีเซิร์ฟเวอร์ OneBusAway อยู่ สามารถใช้ SDK ใหม่เพื่อพัฒนาแอปแบบปรับแต่งเองได้
    • ในเมืองที่ไม่มีเซิร์ฟเวอร์ สามารถใช้ Docker image และการตั้งค่า OpenTofu เพื่อแปลงฟีด GTFS และ GTFS-RT ให้เป็น REST API ได้
    • หน่วยงานขนส่งทั้งหมดในสหรัฐฯ ต้องเผยแพร่ข้อมูลตารางเวลาแบบคงที่อย่างน้อยในรูปแบบ GTFS ตามกฎของรัฐบาลกลางฉบับใหม่
    • ต้องการนักพัฒนาที่สนใจการพัฒนาซอฟต์แวร์อยู่เสมอ และยินดีต้อนรับนักพัฒนาทุกระดับและทุกภาษา
    • โดยเฉพาะนักพัฒนา iOS ที่จำเป็นต่อการส่งมอบการปรับปรุงที่ผู้ใช้รายวัน 250,000 คนต้องการ
  • ผู้ใช้อีกรายกล่าวถึงแอปชื่อ Öffi ที่ให้ความสามารถคล้ายกับ OneBusAway

  • BART และ MUNI รองรับ General Transit Feed Specification ทำให้สามารถดึงข้อมูลได้ด้วยวิธีมาตรฐาน

  • ผู้ใช้ที่เคยใช้ชีวิตใน Boston โดยไม่มีรถเล่าว่าได้หาวิธีไปถึงจุดหมายผ่านเส้นทางหลากหลาย และมองว่ามุมมอง "ออกเดินทางถัดไป" มีประโยชน์

  • ในสหราชอาณาจักรสามารถซื้อบอร์ดแสดงเวลาออกเดินทางที่เลียนแบบบอร์ดออกเดินทางของสถานีได้

  • ใน Washington, DC ใช้งานกับรถบัสได้ แต่ยังใช้กับรถไฟไม่ได้ และต้องการความช่วยเหลือเรื่องความเข้ากันได้กับรถไฟ

  • สามารถใช้เว็บเบราว์เซอร์เพื่อทำหน้าจอแสดงสภาพอากาศ การจราจร และข่าวสารบน Kindle ได้อย่างง่ายดายโดยไม่ต้องเจลเบรก

  • ผู้ใช้ที่อาศัยอยู่ใน SF ได้พัฒนาแอป iOS ชื่อ "A Better Ride" เพื่อแสดงเวลาออกเดินทางของป้ายใกล้เคียง ทำให้การเดินทางคาดเดาและวางแผนได้ง่ายขึ้น

  • ผู้ใช้ต้องการทางเลือกแทน Google Maps โดยอยากได้เส้นทางสำรองเมื่อรถไฟเสียหรือเส้นทางถูกปิดกั้น

    • ตัวอย่างเช่น อธิบายเส้นทางหลายแบบจาก Shibuya ไป Azabujuban ในโตเกียว พร้อมข้อดีข้อเสียของแต่ละเส้นทาง
  • ผู้ใช้รายหนึ่งสร้างระบบโดยใช้แท็บเล็ต Lenovo ThinkSmart View เพื่อมอบฟังก์ชันหลากหลายผ่านการผสานรวมกับหน่วยงานขนส่งท้องถิ่น