โปรเจกต์ DIY: สร้างมิเตอร์วัดรถติดสุดกวนด้วย ESP32-C3 เช็คก่อนออกจากบ้าน!

ทุกเช้าเวลาจะออกจากบ้านไปทำงาน ผมมักจะคิดเข้าข้างตัวเองเสมอว่า "วันนี้รถน่าจะโล่งนะ"... แต่สุดท้ายก็ไปจบที่การติดแหง็กอยู่บนถนนแทบทุกวัน 😅

ถ้าคุณอยู่ในเมืองที่รถติดหนักๆ จะรู้เลยว่า "รถติด" มันไม่ใช่แค่ทำให้สาย แต่มันคือ "ตัวทำลายมู้ด (Mood killer)" ชั้นดีเลยล่ะครับ ผมเลยต้องคอยเปิดเช็ค Google Maps ก่อนออกจากบ้านตลอดเวลา จนมาปิ๊งไอเดียว่า: "จะเป็นยังไงถ้าเราสร้างมิเตอร์หน้าตากวนๆ มาตั้งไว้บนโต๊ะ เพื่อบอกสภาพการจราจรแบบเห็นภาพชัดเจนไปเลย?"

และนั่นก็คือที่มาของ Traffic Monitoring Meter โปรเจกต์ตั้งโต๊ะขนาดจิ๋ว ที่ดึงข้อมูลจราจรแบบเรียลไทม์มาแสดงผลบนจอ OLED และใช้เซอร์โวมอเตอร์ขยับเข็มมิเตอร์ไปตามสภาพการจราจรครับ มันเป็นโปรเจกต์ที่ทำง่าย สนุก และบอกตรงๆ ว่า... นั่งดูเข็มมันขยับนี่เพลินสุดๆ ไปเลยครับ 😄

Traffic Monitoring Meter
Traffic Meter Detail

อุปกรณ์ที่ต้องใช้ (Supplies)

อุปกรณ์มีนิดเดียวครับ หาง่ายมากๆ (กระซิบ: ถ้าใครกำลังมองหาบอร์ด ESP32-C3, เซอร์โวมอเตอร์, จอ OLED, หรือถ้าใครไม่อยากใช้กระดาษทำหน้าปัด แต่อยากได้ เส้นพลาสติก 3D Print สีสวยๆ เอาไปปริ้นท์เคสและหน้าปัดให้ดูพรีเมียม แวะไปช้อปปิ้งอุปกรณ์คุณภาพได้ที่ Globalbyte เลยครับ ครบจบในที่เดียว!)

  • บอร์ด ESP32-C3 (หรือบอร์ดไมโครคอนโทรลเลอร์ที่มี WiFi ตัวอื่นๆ)
  • เซอร์โวมอเตอร์ (Servo motor) ขนาดเล็ก
  • หน้าจอ OLED Display
  • สายจัมเปอร์ (Jumper wires) และ เบรดบอร์ด (Breadboard)
  • กระดาษ สี ปากกา (สำหรับวาดหน้าปัด) หรือจะใช้เครื่อง 3D Print ก็ได้
  • คัตเตอร์ และกาวตาช้าง
Supplies Needed
Components

Step 1: ต่อจอ OLED เข้ากับ ESP32-C3

OLED Connection

เริ่มจากการต่อหน้าจอ OLED เข้ากับบอร์ดก่อนเลยครับ จอส่วนใหญ่จะใช้การเชื่อมต่อแบบ I2C ให้ต่อสายตามนี้ครับ:

  • VCC → 3.3V
  • GND → GND
  • SDA → D8
  • SCL → D9

Step 2: ต่อ Servo Motor

Servo Connection

มาต่อกันที่แขนกลของเราครับ เซอร์โวมอเตอร์ตัวนี้จะทำหน้าที่เป็น "เข็ม" ชี้ระดับความติดของรถ ให้ต่อสายเข้ากับ ESP32-C3 ดังนี้:

  • สายสีแดง → 5V
  • สายสีน้ำตาล/ดำ → GND
  • สายสีเหลือง/ส้ม (สายสัญญาณ) → D10

(พิน GPIO D10 นี้จะเป็นตัวส่งสัญญาณควบคุมองศาของเข็มมิเตอร์ครับ)

Step 3: วาดหน้าปัดมิเตอร์สุดกวน 🎨

ขั้นตอนนี้สนุกที่สุดแล้วครับ! หยิบกระดาษมาตัดเป็นรูปครึ่งวงกลม แล้วออกแบบหน้าปัดของคุณเองได้เลย แทนที่จะเขียนคำน่าเบื่อๆ อย่าง "Low Traffic", "Heavy Traffic" ผมขอจัดเต็มความกวนด้วยคำพวกนี้ครับ:

  • Vroom 🟢 (ทางสะดวก เหยียบมิด!)
  • Hmm 🟡 (รถเริ่มเยอะละ อืม...)
  • Bruh! 🟠 (ติดอะไรเบอร์นี้ บรู๊ววว!)
  • Why? 🔴 (ติดนรกแตก ร้องไห้แปบ 😭)

ใช้สีแบ่งระดับความรุนแรงให้ดูง่ายๆ แล้วเอากระดาษไปติดไว้ด้านหลังเข็มของเซอร์โวมอเตอร์ครับ (ใครมีเครื่องปริ้นท์ 3D จะออกแบบหน้าปัดเป็นชิ้นพลาสติกก็เท่ไปอีกแบบนะ!)

Making the Dial
Finished Dial

Step 4: แก้ไขโค้ดและอัปโหลด 💻

ก่อนอัปโหลดโค้ดลงบอร์ด คุณจะต้องเข้าไปแก้ข้อมูลในโค้ดให้เป็นของตัวคุณเองก่อนครับ โดยเฉพาะ:

  • พิกัดต้นทางและปลายทาง (Source and Destination) ของคุณ
  • ชื่อ WiFi และรหัสผ่าน ที่บ้าน
  • ค่า API keys (ถ้าคุณเลือกดึงข้อมูลจาก Traffic APIs)
C/C++ (ตัวอย่างการใส่พิกัดในโค้ด)
// ตัวอย่างการใส่พิกัด ละติจูด,ลองจิจูด
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)

Final Project

โปรเจกต์นี้เริ่มต้นมาจากความหงุดหงิดเล็กๆ เรื่องรถติดในทุกๆ วัน แต่สุดท้ายมันกลายเป็น Gadget ที่มีประโยชน์และทำสนุกมากๆ เลยครับ มันคือส่วนผสมที่ลงตัวระหว่างการแก้ปัญหาในชีวิตจริง, การผสานฮาร์ดแวร์เข้ากับซอฟต์แวร์, และความคิดสร้างสรรค์เล็กๆ น้อยๆ

และสิ่งที่เจ๋งที่สุดคือ การเปลี่ยน "ข้อมูลจราจรที่น่าเบื่อและชวนหงุดหงิด" ให้กลายเป็นของเล่นที่มีกิมมิคและมีคาแรคเตอร์ครับ ถ้าใครเอาไปทำตาม อย่าลืมออกแบบหน้าปัดในสไตล์ของตัวเองกันด้วยนะครับ!

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

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

เอกสารเพิ่มเติม: ดาวน์โหลดไฟล์บทความต้นฉบับ (PDF)

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

 

แท็ก


Blog posts

เข้าสู่ระบบ

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

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