Raspberry Pi Smart Price Tracker: ทำจอ E-ink ดูราคาทองและน้ำมันแบบเรียลไทม์

เขาว่ากันว่า "ข้อมูลคือน้ำมันยุคใหม่" แต่ในชั่วโมงนี้ สินทรัพย์ที่เป็นของจริงอย่าง "โลหะมีค่า" ก็กำลังมาแรงไม่แพ้กัน! ในช่วง 12 เดือนที่ผ่านมา ราคาทองคำพุ่งขึ้นกว่า 75% และแร่เงินโตทะลุ 200% สำหรับสายเก็บสะสมของจริง (Physical) ปัญหาคือราคาหน้าร้านมักจะต่างจากราคาในตลาดหุ้น และการมานั่งรีเฟรชหน้าจอเช็คราคาทั้งวันก็คงไม่ตอบโจทย์คนที่มีงานประจำ

เพื่อหาจังหวะช้อนซื้อตอนราคาตก เราเลยจะมาทำโปรเจกต์ "ExtractToInk" เปลี่ยนบอร์ด Raspberry Pi รุ่นเก๋า ให้กลายเป็นจอ E-ink มินิมอล เอาไว้มอนิเตอร์ราคาแบบอัตโนมัติ วางบนโต๊ะทำงานได้แบบคูลๆ แถมงบรวมไม่ถึง $50 ด้วยซ้ำ!

Raspberry Pi E-ink Price Tracker

อุปกรณ์และเครื่องมือที่ต้องใช้ (Tech Stack)

  • Hardware: บอร์ด Raspberry Pi (ในที่นี้ใช้ Pi Zero Wireless) และหน้าจอ Seeed Studio 2.13'' Triple-Color E-Ink (หรือ Pimoroni Inky pHAT)
  • Software: ภาษา Python 3
  • API & Libraries: Zyte API (สำหรับดึงข้อมูลเว็บที่มี JavaScript), BeautifulSoup (สำหรับแกะโค้ด HTML), และไลบรารี Pillow/Inky สำหรับคุมหน้าจอ E-ink

ขั้นตอนการสร้าง (Step-by-Step)

Step 1: เตรียมฮาร์ดแวร์
เริ่มจากติดตั้ง Raspberry Pi OS ลงใน SD Card เมื่อบูตเครื่องแล้ว ให้เปิดใช้งาน I2C หรือ SPI bus ผ่านคำสั่ง sudo raspi-config เพื่อให้บอร์ดเชื่อมต่อกับจอ E-ink ได้

Step 2: ดึงข้อมูลหน้าเว็บด้วย Zyte API
เว็บเช็คราคาส่วนใหญ่มักใช้กลไกป้องกันการดึงข้อมูล หรือใช้ JavaScript ในการแสดงผล แทนที่เราจะเขียนโค้ดสู้กับมัน เราจะใช้ Zyte API ตั้งค่าเป็นโหมด browserHtml: True เพื่อให้ระบบช่วยเรนเดอร์หน้าเว็บออกมาเป็น HTML คลีนๆ ให้เราเลย (เสถียรกว่าการใช้ Selenium มาก)

Step 3: คัดกรองข้อมูลด้วย CSS Selectors
เมื่อได้ HTML มาแล้ว เราจะใช้ BeautifulSoup เจาะหาคลาส CSS ที่ซ่อนราคาอยู่ และใช้ Regular Expression (Regex) เล็กน้อยเพื่อดึงเฉพาะตัวเลขราคาทองและแร่เงินออกมา

คลิกเพื่อดูรูปภาพตัวอย่างโค้ด (View More)
Scraping Code Screenshot 1
Parsing Code Screenshot 2

Step 4: แสดงผลขึ้นจอ E-ink
จอ E-ink มีข้อดีคือประหยัดพลังงานมาก และภาพจะค้างอยู่แบบนั้นตลอดเวลา เหมาะสุดๆ กับการทำ Ambient Dashboard โดยเราจะใช้ไลบรารีของ Inky pHAT คู่กับคำสั่ง draw.text() เพื่อวาดตัวอักษรราคาลงบนหน้าจอ

ไอเดียต่อยอด และดาวน์โหลดโค้ด

คุณสามารถโหลดโค้ดตั้งต้นไปประยุกต์ใช้เพื่อดึงราคาน้ำมัน (ตามโจทย์พาดหัว!) หรือราคาสินทรัพย์อื่นๆ เพิ่มเติมได้เลยครับ:

อยากให้ล้ำกว่านี้? ลองทำตามนี้ดู:

  • ตั้งค่า cron job ให้ระบบดึงข้อมูลอัปเดตอัตโนมัติทุกๆ 10 นาที หรือ 12 ชั่วโมง
  • ตั้งค่าเป็น systemd service เพื่อให้โปรแกรมรันเองทันทีที่เสียบปลั๊ก
  • ต่อยอดให้มันส่งคำสั่งซื้ออัตโนมัติเมื่อราคาร่วงถึงจุดที่ต้องการ

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา

อ้างอิงและเรียบเรียงโดย: Globalbyteshop Blog

แหล่งที่มาต้นฉบับ:
- บทความโดย iayanpahwa: Trading Precious Metals with Raspberry Pi & E-Ink Display
- Raspberry Pi Getting Started Guide
- Getting Started with Inky pHAT (Pimoroni)
- GitHub: ExtractToInk Repository

แท็ก


Blog posts

เข้าสู่ระบบ

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

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