ทุกเช้าเวลาจะออกจากบ้านไปทำงาน ผมมักจะคิดเข้าข้างตัวเองเสมอว่า "วันนี้รถน่าจะโล่งนะ"... แต่สุดท้ายก็ไปจบที่การติดแหง็กอยู่บนถนนแทบทุกวัน 😅
ถ้าคุณอยู่ในเมืองที่รถติดหนักๆ จะรู้เลยว่า "รถติด" มันไม่ใช่แค่ทำให้สาย แต่มันคือ "ตัวทำลายมู้ด (Mood killer)" ชั้นดีเลยล่ะครับ ผมเลยต้องคอยเปิดเช็ค Google Maps ก่อนออกจากบ้านตลอดเวลา จนมาปิ๊งไอเดียว่า: "จะเป็นยังไงถ้าเราสร้างมิเตอร์หน้าตากวนๆ มาตั้งไว้บนโต๊ะ เพื่อบอกสภาพการจราจรแบบเห็นภาพชัดเจนไปเลย?"
และนั่นก็คือที่มาของ Traffic Monitoring Meter โปรเจกต์ตั้งโต๊ะขนาดจิ๋ว ที่ดึงข้อมูลจราจรแบบเรียลไทม์มาแสดงผลบนจอ OLED และใช้เซอร์โวมอเตอร์ขยับเข็มมิเตอร์ไปตามสภาพการจราจรครับ มันเป็นโปรเจกต์ที่ทำง่าย สนุก และบอกตรงๆ ว่า... นั่งดูเข็มมันขยับนี่เพลินสุดๆ ไปเลยครับ 😄
ดูภาพผลงานเพิ่มเติม (View more) ซ่อนภาพ (View less)
อุปกรณ์ที่ต้องใช้ (Supplies)
อุปกรณ์มีนิดเดียวครับ หาง่ายมากๆ (กระซิบ: ถ้าใครกำลังมองหาบอร์ด ESP32-C3, เซอร์โวมอเตอร์, จอ OLED, หรือถ้าใครไม่อยากใช้กระดาษทำหน้าปัด แต่อยากได้ เส้นพลาสติก 3D Print สีสวยๆ เอาไปปริ้นท์เคสและหน้าปัดให้ดูพรีเมียม แวะไปช้อปปิ้งอุปกรณ์คุณภาพได้ที่ Globalbyte เลยครับ ครบจบในที่เดียว!)
บอร์ด ESP32-C3 (หรือบอร์ดไมโครคอนโทรลเลอร์ที่มี WiFi ตัวอื่นๆ)
เซอร์โวมอเตอร์ (Servo motor) ขนาดเล็ก
หน้าจอ OLED Display
สายจัมเปอร์ (Jumper wires) และ เบรดบอร์ด (Breadboard)
กระดาษ สี ปากกา (สำหรับวาดหน้าปัด) หรือจะใช้เครื่อง 3D Print ก็ได้
คัตเตอร์ และกาวตาช้าง
ดูภาพอุปกรณ์เพิ่มเติม (View more) ซ่อนภาพ (View less)
Step 1: ต่อจอ OLED เข้ากับ ESP32-C3
เริ่มจากการต่อหน้าจอ OLED เข้ากับบอร์ดก่อนเลยครับ จอส่วนใหญ่จะใช้การเชื่อมต่อแบบ I2C ให้ต่อสายตามนี้ครับ:
VCC → 3.3V
GND → GND
SDA → D8
SCL → D9
Step 2: ต่อ Servo Motor
มาต่อกันที่แขนกลของเราครับ เซอร์โวมอเตอร์ตัวนี้จะทำหน้าที่เป็น "เข็ม" ชี้ระดับความติดของรถ ให้ต่อสายเข้ากับ ESP32-C3 ดังนี้:
สายสีแดง → 5V
สายสีน้ำตาล/ดำ → GND
สายสีเหลือง/ส้ม (สายสัญญาณ) → D10
(พิน GPIO D10 นี้จะเป็นตัวส่งสัญญาณควบคุมองศาของเข็มมิเตอร์ครับ)
Step 3: วาดหน้าปัดมิเตอร์สุดกวน 🎨
ขั้นตอนนี้สนุกที่สุดแล้วครับ! หยิบกระดาษมาตัดเป็นรูปครึ่งวงกลม แล้วออกแบบหน้าปัดของคุณเองได้เลย แทนที่จะเขียนคำน่าเบื่อๆ อย่าง "Low Traffic", "Heavy Traffic" ผมขอจัดเต็มความกวนด้วยคำพวกนี้ครับ:
Vroom 🟢 (ทางสะดวก เหยียบมิด!)
Hmm 🟡 (รถเริ่มเยอะละ อืม...)
Bruh! 🟠 (ติดอะไรเบอร์นี้ บรู๊ววว!)
Why? 🔴 (ติดนรกแตก ร้องไห้แปบ 😭)
ใช้สีแบ่งระดับความรุนแรงให้ดูง่ายๆ แล้วเอากระดาษไปติดไว้ด้านหลังเข็มของเซอร์โวมอเตอร์ครับ (ใครมีเครื่องปริ้นท์ 3D จะออกแบบหน้าปัดเป็นชิ้นพลาสติกก็เท่ไปอีกแบบนะ!)
ดูภาพหน้าปัดมิเตอร์เพิ่มเติม (View more) ซ่อนภาพ (View less)
Step 4: แก้ไขโค้ดและอัปโหลด 💻
ก่อนอัปโหลดโค้ดลงบอร์ด คุณจะต้องเข้าไปแก้ข้อมูลในโค้ดให้เป็นของตัวคุณเองก่อนครับ โดยเฉพาะ:
พิกัดต้นทางและปลายทาง (Source and Destination) ของคุณ
ชื่อ WiFi และรหัสผ่าน ที่บ้าน
ค่า API keys (ถ้าคุณเลือกดึงข้อมูลจาก Traffic APIs)
// ตัวอย่างการใส่พิกัด ละติจูด,ลองจิจูด
const char* ORIGIN = "12.xxxx,77.xxxx";
const char* DESTINATION = "12.xxxx,77.xxxx";
เมื่อแก้ไขเสร็จแล้ว ให้เสียบสาย USB เข้ากับบอร์ด เปิดโปรแกรม Arduino IDE (หรือ PlatformIO) แล้วกด Upload ได้เลยครับ! หน้าจอ OLED จะเริ่มแสดงข้อมูล และเข็มเซอร์โวจะขยับไปตามความรถติดทันที
→ ดาวน์โหลดไฟล์โค้ด (traffic-monitoring-meter.ino) ที่นี่
Step 5: เปิดเครื่องทดสอบ 🚀
แค่นี้ก็เสร็จเรียบร้อย! นำมิเตอร์วัดรถติดไปตั้งไว้บนโต๊ะทำงานได้เลยครับ
ก่อนออกจากบ้านก็แค่ปรายตามองมิเตอร์ตัวนี้: ถ้าเข็มชี้ที่ Vroom → โชคดีสุดๆ เหยียบมิดได้เลย 😎 ถ้าเข็มชี้ที่ Why? → แนะนำให้รอก่อน... หรือไม่ก็ยอมรับชะตากรรมไปซะ 🥲
Step 6: สรุปผลลัพธ์ (Conclusion)
โปรเจกต์นี้เริ่มต้นมาจากความหงุดหงิดเล็กๆ เรื่องรถติดในทุกๆ วัน แต่สุดท้ายมันกลายเป็น Gadget ที่มีประโยชน์และทำสนุกมากๆ เลยครับ มันคือส่วนผสมที่ลงตัวระหว่างการแก้ปัญหาในชีวิตจริง, การผสานฮาร์ดแวร์เข้ากับซอฟต์แวร์, และความคิดสร้างสรรค์เล็กๆ น้อยๆ
และสิ่งที่เจ๋งที่สุดคือ การเปลี่ยน "ข้อมูลจราจรที่น่าเบื่อและชวนหงุดหงิด" ให้กลายเป็นของเล่นที่มีกิมมิคและมีคาแรคเตอร์ครับ ถ้าใครเอาไปทำตาม อย่าลืมออกแบบหน้าปัดในสไตล์ของตัวเองกันด้วยนะครับ!
*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความโปรเจกต์ต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยและกระบวนการทำงานบางส่วนอาจถูกปรับเพื่อความเข้าใจที่ง่ายขึ้น สามารถตรวจสอบรายละเอียดเชิงเทคนิคและโค้ดเพิ่มเติมได้ที่
ต้นฉบับภาษาอังกฤษ