Arduino UNO Q อ่าน Analog Gauge ด้วย Edge AI

เกจเข็มยังใช้งานได้ดี แล้วทำไมต้องเปลี่ยนทั้งระบบ เพียงเพราะอยากเอาค่าเข้า Digital Monitoring? โปรเจกต์นี้เลือกอีกทาง: วางกล้องให้มองหน้าปัด แล้วใช้ Arduino UNO Q ประมวลผลภาพด้วย Edge AI เพื่อประมาณค่า Pressure โดยไม่ต้องต่อสัญญาณไฟฟ้าเข้ากับ Gauge เดิม

แนวคิดฟังดูตรงไปตรงมา: Camera → Edge AI → Pressure Value แต่ Journey ของผู้สร้างน่าสนใจกว่านั้นมาก เพราะก่อนจะได้โมเดลที่ใช้จริง เขาลองทั้ง Vision-Language Model, Synthetic Data และโมเดลขนาดใหญ่ ก่อนพบว่างาน “อ่านข้อความจากภาพ” กับงาน “วัดค่าอย่างสม่ำเสมอ” เป็นคนละโจทย์กัน

Analog pressure gauge monitored by camera and Arduino UNO Q using edge AI
Prototype ของโปรเจกต์: Analog Pressure Gauge ถูกมองผ่าน USB Camera และ Arduino UNO Q ประมวลผลภาพด้วย Edge AI เพื่อเปลี่ยนค่าบนหน้าปัดให้เป็นข้อมูล Digital

Key Takeaways

  • ใช้ Analog Pressure Gauge ช่วง 0–60 PSI
  • Gauge เดิมไม่มี Electrical Connection กับ Arduino UNO Q
  • Logitech C920e USB Webcam เป็นตัวมองหน้าปัด
  • กล้องเชื่อม UNO Q ผ่าน Arduino USB-C Hub
  • ผู้สร้างเริ่มจาก SmolVLM ประมาณ 500M Parameters แต่ Reliability ยังไม่พอ
  • SmolVLM ประมาณ 2.2B Parameters รันได้ แต่ใช้เวลาหลายนาทีต่อภาพ
  • ปัญหาหนึ่งคือ VLM บางครั้งมอง Counterweight เป็นเข็ม Pressure
  • Synthetic Training Data ทำงานดีบน Synthetic Test แต่เจอ Domain Gap กับภาพจริง
  • ผู้สร้างจึงเปลี่ยนมาใช้ Real Camera Images
  • GPT-5.6 ถูกใช้เป็น Cloud AI Teacher เพื่อช่วย Label Dataset
  • โมเดลปลายทางใช้ MobileNetV3-Small แบบ Regression
  • โมเดลถูก Export เป็น ONNX และรัน Local ด้วย ONNX Runtime บน UNO Q
  • Runtime ใช้ Frame 1920×1080, Crop 700×700 และ Resize เป็น 224×224
  • ระบบอ่านค่าประมาณ 2 ครั้งต่อวินาที
  • Held-out Test มี MAE ต่ำกว่า 1 PSI ในช่วง 10–25 PSI bands
  • Performance ลดลงใกล้ขอบต่ำและขอบสูงของ Gauge
  • Current Prototype Log ค่า PSI แบบ Local
  • Alerts, Gateway และ Mesh Network เป็นแนวคิดต่อยอด ไม่ใช่ Feature ปัจจุบัน

Analog Gauge ยังดีอยู่ แต่ข้อมูลยังติดอยู่ที่หน้าปัด

Prototype analog pressure gauge monitored with camera and Arduino UNO Q
Prototype ที่ใช้กล้องและ Arduino UNO Q เฝ้ามอง Analog Pressure Gauge โดยไม่ต้องดัดแปลงตัว Gauge ให้เป็น Digital Sensor

เดินเข้าโรงงาน, Mechanical Room, Pump Station หรือ Utility Facility ยังมีโอกาสเจอ Analog Gauge จำนวนมาก แม้ระบบรอบข้างจะเริ่มเชื่อมต่อกับ Software หรือ Dashboard ไปแล้ว

ปัญหาไม่ใช่ว่า Gauge เหล่านั้นทำงานไม่ได้ แต่คือค่าของมันถูกออกแบบให้ คนยืนอยู่ตรงหน้าแล้วอ่านด้วยตา

Workflow จึงอาจกลายเป็น:

คนเดินไปที่ Gauge

อ่านค่าหน้าปัด

จดค่า

เดินไปจุดถัดไป

ทำซ้ำ

โปรเจกต์นี้ตั้งคำถามง่าย ๆ ว่า: ถ้า Gauge เดิมยังทำงานอยู่ เราจำเป็นต้องเปลี่ยนหรือ Modify มัน เพียงเพราะอยากได้ข้อมูล Digital หรือไม่?

แนวคิด: ให้กล้องมองแทนคน แล้วให้ Edge AI อ่านค่า

Concept for digitizing an analog gauge without modifying the gauge
โจทย์ของโปรเจกต์คือ Digitize ค่าจาก Gauge โดยไม่เปลี่ยนหรือ Modify เครื่องมือวัดเดิมทางไฟฟ้า

วิธีที่ Michael Ross เลือกคือ:

Analog Gauge

USB Camera

Arduino UNO Q

Computer Vision / Edge AI

Estimated Pressure Value

กล้องทำหน้าที่เหมือนตาของระบบ ส่วน UNO Q ทำหน้าที่ประมวลผลภาพ แล้วคืนผลลัพธ์ออกมาเป็นค่า Pressure แทนการส่งภาพทั้งภาพไปให้คนอ่าน

จุดน่าสนใจ: Digital Layer ถูกเพิ่ม “รอบ” เครื่องมือเดิม ไม่ได้ถูกฝังเข้าไปใน Gauge ดังนั้น Concept ของโปรเจกต์ จึงต่างจากการเปลี่ยน Mechanical Gauge เป็น Electronic Pressure Sensor โดยตรง

Hardware และ Software ที่ผู้สร้างใช้

รายการ ข้อมูลจากโปรเจกต์
Edge Computer Arduino UNO Q ×1
Camera Logitech C920e USB Webcam ×1
USB Hub Arduino USB-C Hub (8 in 1) ×1
Power Supply Arduino USB-C Power Supply 45W ×1
Development Computer Mac with Apple Silicon ตาม Setup ที่ผู้สร้างทดสอบ
Gauge Analog Pressure Gauge 0–60 PSI พร้อม Black Outer Scale
Python Python 3.9+
Application Environment Arduino App Lab

รายการนี้คือ Hardware ของ Prototype ต้นฉบับ: ไม่ได้หมายความว่า Webcam, Hub หรือ Gauge รุ่นอื่นจะทำงานได้เหมือนกันทันที โดยไม่ตรวจ Compatibility และไม่ Train / Validate Model เพิ่มเติม

Hardware Architecture: Gauge ไม่ได้ต่อไฟเข้ากับ UNO Q

Hardware schematic showing Logitech C920e camera connected through USB-C hub to Arduino UNO Q
Hardware Connection Schematic: Logitech C920e ต่อ Arduino UNO Q ผ่าน USB-C Hub ส่วน Analog Gauge เป็น Mechanical Device ที่ถูกสังเกตด้วยกล้องเท่านั้น

จุดที่ต้องเข้าใจให้ชัดคือ:

Analog Pressure Gauge ไม่มี Electrical Connection กับ UNO Q

เส้นทางข้อมูลจริงเป็น:

Mechanical Gauge
↓ Optical Only
Logitech C920e
↓ USB
Arduino USB-C Hub

Arduino UNO Q

Local Image Processing + ONNX Inference

ทำไมต้อง Edge AI แทนการส่งภาพทั้งหมดขึ้น Cloud?

Edge AI gauge monitoring concept from a single node toward future distributed monitoring
แนวคิดจาก Prototype หนึ่งจุด ไปสู่ระบบในอนาคตที่อาจมี Edge AI หลาย Node ส่งเฉพาะ Reading ไปยัง Gateway

การส่ง Camera Frame ทุกภาพขึ้น Cloud สามารถทำได้ในบางระบบ แต่ผู้สร้างมองว่ามันเพิ่มโจทย์เรื่อง:

  • Connectivity
  • Bandwidth
  • Latency
  • Privacy
  • Energy Consumption
  • Dependence on External Services

เป้าหมายของโปรเจกต์จึงเป็น:

ให้ Final Gauge-reading Model ทำ Inference อยู่บน Arduino UNO Q โดยตรง

Camera ส่งภาพให้ Device แต่ข้อมูลที่ระบบต้องการจริง อาจเหลือเพียงตัวเลขเล็ก ๆ เช่นค่า PSI

อย่าสับสน Development กับ Deployment: โปรเจกต์นี้ใช้ Cloud AI ในช่วงสร้าง Dataset แต่ Normal Operation ของ Gauge Reader ไม่ต้องใช้ Cloud Vision Inference

ผู้สร้างไม่ได้ทดสอบกับ Gauge วางบนโต๊ะอย่างเดียว

Custom pump station demonstrator designed in Fusion and 3D printed
Pump Station Demonstrator ที่ผู้สร้างออกแบบใน Autodesk Fusion และ Fabricate ด้วย 3D Printer เพื่อใช้ทดสอบ Gauge Reader ซ้ำได้

เพื่อให้การทดลองใกล้เคียง Physical System มากขึ้น ผู้สร้างทำ Pump Station Demonstrator ที่มี:

  • Analog Pressure Gauge 0–60 PSI
  • RUN Indicator
  • FAULT Indicator
  • Custom Enclosure
  • Plumbing Parts สำหรับสร้าง Pressure ในตัว Demonstrator

ระบบ Demo ถูกออกแบบให้ Pressure ค่อย ๆ ลดลงผ่านการรั่วเล็กน้อยแบบตั้งใจ เพื่อแสดงให้เห็นว่า UNO Q สามารถอ่านค่าที่เปลี่ยนไปตามเวลาได้

นี่เป็น Demonstrator ไม่ใช่คู่มือสร้างระบบแรงดันสำหรับใช้งานจริง: บทความนี้จะไม่เพิ่มค่า Pressure Rating, วิธี Pressurize, Valve Specification หรือขั้นตอนประกอบระบบแรงดันที่ Source ไม่ได้ให้

Approach แรก: ลองให้ Vision-Language Model อ่าน Gauge

Gauge image used as input for a local vision-language model
ตัวอย่างภาพ Gauge ที่ถูกส่งเข้า Local Vision-Language Model ในการทดลองช่วงแรก

Approach แรกดูสมเหตุสมผลมาก: ในเมื่อ Multimodal AI มองภาพและอธิบายสิ่งที่เห็นได้ ก็ลองถามมันตรง ๆ ว่า Gauge ตอนนี้อ่านได้เท่าไร

ผู้สร้างทดลอง SmolVLM ประมาณ 500M Parameters รันบน UNO Q

ผลคือ: Model สามารถให้ค่าที่ดูสมเหตุสมผลได้ แต่ยังไม่ Reliable มากพอสำหรับ Monitoring

ปัญหา Pointer กับ Counterweight

Needle Assembly ของ Gauge ตัวอย่าง มีเข็ม Pressure ที่ยาวและบาง อีกด้านมี Counterweight รูปทรงสามเหลี่ยมที่มองเห็นเด่นกว่า

Small VLM บางครั้งจึง เข้าใจ Counterweight ว่าเป็น Pointer

Sample prompt used with a local vision-language model to read the pressure gauge
ตัวอย่าง Prompt ที่ผู้สร้างใช้ร่วมกับภาพ Gauge ในการทดลอง Local Vision-Language Model

แล้วถ้าใช้ Model ใหญ่ขึ้นล่ะ?

ผู้สร้างทดลอง SmolVLM ขนาดประมาณ 2.2B Parameters ซึ่งสามารถรันบน UNO Q ได้

แต่ Inference ใช้เวลา หลายนาทีต่อภาพ และยังไม่ได้แก้ Reliability Problem ที่เป็นแก่นของงานได้มากพอ

Lesson สำคัญ: Model ที่เข้าใจว่า “ภาพนี้คือ Gauge” ไม่ได้หมายความว่าจะ “วัดตำแหน่งเข็มอย่างแม่นและสม่ำเสมอ” ได้โดยอัตโนมัติ

จาก General AI สู่ Model ที่รู้เรื่องเดียว แต่รู้ให้ตรงโจทย์

แทนที่จะเพิ่มขนาด General-purpose Model ต่อไป ผู้สร้างเปลี่ยนคำถาม

จาก:

“ช่วยดูและอธิบายภาพนี้”

เป็น:

“Gauge นี้แสดง Pressure เท่าไร?”

แล้วสร้าง Specialized Computer Vision Model สำหรับโจทย์เดียว

Model Backbone คือ:

MobileNetV3-Small

และมอง Gauge Reading เป็นโจทย์แบบ:

Regression

1 Image

MobileNetV3-Small

1 Continuous Pressure Value

จุดต่างสำคัญคือ Model ไม่ต้องสร้างประโยค, อธิบายภาพ หรือเข้าใจ Object ทุกชนิด แต่เน้นตอบค่าที่ผู้สร้างต้องการเพียงค่าเดียว

Synthetic Data ดูสวยใน Test แต่เจอโลกจริงแล้วไม่เหมือนเดิม

Synthetic training data example for the analog pressure gauge reader
ตัวอย่าง Synthetic Data ที่ผู้สร้างทดลองใช้ในการ Train Gauge Reader ก่อนเปลี่ยนมาเน้น Real Camera Images

ช่วงแรก ผู้สร้างสร้าง Synthetic Training Data และผล Test บน Synthetic Images ดูดีมาก

แต่เมื่อเอา Model ไปเจอภาพจาก USB Camera จริง Performance กลับลดลงอย่างเห็นได้ชัด

ปัญหานี้สะท้อนสิ่งที่เรียกว่า:

Domain Gap

ใน Source ผู้สร้างยกตัวอย่างความยากของ Synthetic Image เช่น:

  • การสร้างลักษณะเข็มให้เหมือนของจริง
  • ร่องรอยหรือ Stain บริเวณหน้าปัด
  • Blur และรายละเอียดจากภาพจริง
Real pressure gauge image captured by USB camera
Real Data Example: ภาพ Gauge จริงที่ Capture จาก USB Camera
Synthetic gauge model test showing the domain gap with real camera images
ผลทดลองที่ช่วยให้เห็นว่า Synthetic Test Performance ที่ดี ไม่ได้การันตีว่า Model จะ Generalize ไปยังภาพกล้องจริงได้ดีเท่ากัน

บทเรียนของผู้สร้าง: Benchmark ที่ดูดี ไม่มีความหมายมากนัก ถ้า Training Distribution ไม่ได้แทนโลกจริงที่ Model จะต้องเจอหลัง Deploy

Using AI to Build AI: ใช้โมเดลใหญ่ช่วย Label ก่อนส่งงานให้โมเดลเล็ก

Real pressure gauge images automatically labeled by a larger vision model
Real Images จาก Pressure Leak-down Test ถูกใช้ร่วมกับ Vision Model ขนาดใหญ่ เพื่อช่วยสร้าง Label สำหรับ Training Dataset

เมื่อเปลี่ยนจาก Synthetic Data มาใช้ Real Images ก็เกิดปัญหาใหม่:

ภาพเก็บง่าย แต่ Label ภาพจำนวนมากใช้เวลามาก

ผู้สร้างจึงสร้าง Automated Capture System ที่ถ่ายภาพ Gauge ขณะที่ Pressure ค่อย ๆ ลดลง

จากนั้นส่งภาพเข้า GPT-5.6 เพื่อใช้เป็น Cloud Vision Teacher ช่วยระบุค่า Pressure สำหรับสร้าง Training Dataset

Prompting Logic เน้นให้ Teacher:

  • หา Long Pressure Pointer
  • Ignore Counterweight
  • Ignore Red Inner Scale
  • อ้างอิง Black PSI Tick Marks
  • คืนค่า Pressure
Large Cloud AI Teacher

Labeled Real-world Images

Train Small Specialized Model

Deploy Local บน Arduino UNO Q

GPT-5.6 ไม่ได้รันบน UNO Q ระหว่าง Monitoring: Cloud Model ถูกใช้ในช่วง Dataset / Model-development Pipeline ส่วน Model ที่ Deploy จริง คือ MobileNetV3-Small ที่ Export เป็น ONNX

Training Gauge Reader ด้วย MobileNetV3-Small

Training Pipeline ของผู้สร้างประกอบด้วย:

  • Real Camera Images
  • Pressure-aware Sampling
  • Realistic Image Augmentation
  • Independent Capture Runs สำหรับ Validation / Testing

การใช้ Independent Capture Run สำคัญเพราะช่วยดูว่า Model ทำงานได้กับ Sequence ที่ไม่ได้เป็นชุดเดียวกับตอน Train หรือไม่

Model ถูกสร้างเป็น Regression Model:

Gauge Image

MobileNetV3-Small

Normalized Continuous Output

Pressure in PSI

ผลทดสอบดีในบางช่วง แต่ไม่ควรเรียกว่า Sensor ที่ Validated แล้ว

Source ระบุว่า ใน Held-out Test Run Model ทำได้ดีที่สุด ในช่วงกลางของ Gauge

โดยมี:

Mean Absolute Error ต่ำกว่า 1 PSI ในช่วง 10–25 PSI bands

ในคำอธิบายช่วง Runtime ผู้สร้างยังระบุว่า Model มี Strongest Performance โดยรวม ประมาณ:

10–30 PSI

แต่ Performance แย่ลงอย่างชัดเจน ใกล้:

  • Low end ของ Gauge Range
  • High end ของ Gauge Range

ห้ามสรุปว่า Accuracy ของระบบคือ ±1 PSI ตลอดช่วง 0–60 PSI: Source ระบุค่า MAE ต่ำกว่า 1 PSI เฉพาะบาง Band ในช่วง 10–25 PSI และย้ำว่า Performance แย่ลงบริเวณขอบ Range

Prediction ≠ Validated Sensor: ผู้สร้างย้ำเองว่า Lighting, Camera Position, Training Coverage, Label Quality, Physical Variation และ Independent Validation ล้วนมีผลต่อ Reliability ของระบบ

Runtime Pipeline: จากภาพ 1080p สู่ค่า PSI ประมาณ 2 ครั้งต่อวินาที

Live pump station with USB camera and Arduino UNO Q running the gauge reader
Live Pump Station, USB Camera และ Arduino UNO Q ในช่วงรัน Gauge Reader แบบ Local

Final Model ถูก Export เป็น:

ONNX

และรันบน UNO Q ด้วย:

ONNX Runtime

Pipeline 7 ขั้น

1

เปิด USB Camera แล้วเปิดค้างไว้

Camera ไม่ได้ถูก Initialize ใหม่ทุกครั้งที่อ่านค่า

2

Capture Frame 1920×1080

Code ขอ Capture Resolution ที่ 1920×1080 Pixels

3

Crop Gauge 700×700

ใช้ Fixed Crop ที่ครอบพื้นที่ Gauge ของ Setup นี้

4

Resize เป็น 224×224

แล้วทำ ImageNet Normalization แบบเดียวกับ Training Pipeline

5

รัน MobileNetV3-Small

ONNX Runtime รัน Regression Model Local บน UNO Q

6

แปลง Normalized Output กลับเป็น PSI

Training Target ของ Model นี้ ถูก Normalize ด้วย PSI / 60

7

อ่านประมาณ 2 ครั้งต่อวินาที

Code ตั้ง Reading Interval ไว้ที่ 0.5 วินาที และ Log Predicted Pressure แบบต่อเนื่อง

Crop Coordinates เป็นค่าของ Setup นี้: ค่า X/Y ที่อยู่ใน Code ขึ้นกับตำแหน่งกล้องและ Gauge ของ Prototype ไม่ใช่มาตรฐานสำหรับ Gauge ทุกตัว

ดู Arduino UNO Q อ่าน Gauge แบบ Live

ผู้สร้างมี Live Demo ที่แสดง UNO Q ประมวลผลภาพจาก Gauge และคืนค่า Pressure ขณะ Pressure ใน Demonstrator ค่อย ๆ ลดลง

Live Demo: Arduino UNO Q ประมวลผลภาพและแสดงค่าประมาณ Pressure จาก Analog Gauge

Code จากโปรเจกต์: สิ่งที่เกิดขึ้นใน main.py

Hackster เผยแพร่ main.py, File Configuration, requirements.txt และ Gauge Reader ONNX Model ใน Code Section ของโปรเจกต์

ด้านล่างเป็นเฉพาะส่วนสั้น ๆ จาก Source จริง ที่ช่วยอธิบาย Runtime Pipeline ไม่ใช่ Code ที่สร้างขึ้นใหม่

Camera / Crop Configuration

main.py — Camera Configuration
FRAME_WIDTH = 1920
FRAME_HEIGHT = 1080

CROP_X = 400
CROP_Y = 200
CROP_W = 700
CROP_H = 700

MODEL_SIZE = 224

READ_INTERVAL_SECONDS = 0.5

CROP_X และ CROP_Y เป็นค่าจาก Prototype ของผู้สร้าง: ตำแหน่ง Crop ต้องสัมพันธ์กับตำแหน่ง Gauge ใน Camera Frame จริง ไม่ควร Copy ค่าแล้วคาดว่าจะใช้ได้กับทุก Setup

ImageNet Normalization

main.py — Normalization
IMAGENET_MEAN = np.array(
    [0.485, 0.456, 0.406],
    dtype=np.float32
).reshape(1, 1, 3)

IMAGENET_STD = np.array(
    [0.229, 0.224, 0.225],
    dtype=np.float32
).reshape(1, 1, 3)

ONNX Runtime

main.py — ONNX Session
session = ort.InferenceSession(
    MODEL_PATH,
    providers=["CPUExecutionProvider"]
)

แปลง Model Output กลับเป็น PSI

main.py — PSI Prediction
raw_output = float(
    np.asarray(result[0]).reshape(-1)[0]
)

psi_prediction = raw_output * 60.0

เลข 60 ไม่ใช่ Universal Gauge Setting: Source ระบุว่า Training Target ของ Model นี้คือ PSI / 60 และ Demonstrator ใช้ Gauge 0–60 PSI การนำไปใช้กับ Gauge Range อื่น ไม่ได้หมายความว่าเปลี่ยนเลขนี้อย่างเดียวแล้ว Model จะใช้งานได้

3D Printed Enclosure ทำให้ Demo กลายเป็น Physical Prototype

ผู้สร้างออกแบบ Enclosure ของ Pump Station ด้วย Autodesk Fusion และ Fabricate ด้วย 3D Printer

Hackster แนบไฟล์:

Analog Pressure Gauge Pump Station – Edge AI Demo Enclosure

Source ไม่ได้ให้ Print Settings ครบ: ไม่มีข้อมูลที่ยืนยัน Layer Height, Infill, Nozzle, Support, Printing Temperature หรือ Material สำหรับใช้เป็น Recipe ของชิ้นงานนี้ จึงไม่ควรสร้างค่าเหล่านี้ขึ้นเอง

มี STL แต่ไม่มีเครื่องพิมพ์ 3D? สามารถส่งไฟล์ให้ทีม Globalbyte ช่วยประเมินบริการพิมพ์ 3D ได้ โดยควรพิจารณา Material, Tolerance, Support และ Orientation ตามชิ้นงานจริงก่อนผลิต

สิ่งที่ Prototype ทำได้ตอนนี้ กับสิ่งที่ผู้สร้างมองไว้ในอนาคต

Current Prototype Future Possibility ที่ Source เสนอ
อ่าน Analog Pressure Gauge หนึ่งจุด กระจาย Edge Vision Nodes หลายจุด
Inference Local บน UNO Q ส่งเฉพาะ Reading หรือ Alert ไป Gateway
Log ค่า PSI แบบ Local Historical Trending
ไม่มี Cloud Vision Inference ระหว่าง Normal Operation Gateway เชื่อม Monitoring System ภายนอก
อ่าน Pressure Gauge ที่ใช้ใน Demo แนวคิดอาจขยายสู่ Temperature Gauge, Level Indicator, Meter หรือ Status Light
ไม่มี Mesh System ใน Prototype นี้ Local Network / Mesh Architecture ในอนาคต

Alert, Gateway และ Mesh ยังไม่ใช่ Feature ที่สร้างเสร็จใน Prototype นี้: Source พูดถึงส่วนเหล่านี้ ในฐานะแนวคิดต่อยอด จึงไม่ควรเขียนว่าโปรเจกต์ปัจจุบัน มีระบบเหล่านี้ทำงานอยู่แล้ว

ถ้าจะนำแนวคิดนี้ไปใช้กับงานจริง ต้องมองเป็น Monitoring Prototype ก่อน

Project นี้น่าสนใจมาก สำหรับแนวคิด Retrofit Monitoring เพราะไม่จำเป็นต้อง Modify Gauge เดิม แต่ Source ก็แสดงข้อจำกัดของ AI อย่างตรงไปตรงมา

สิ่งที่มีผลต่อ Prediction ได้แก่:

  • Lighting
  • Camera Position
  • Training Data Coverage
  • Label Quality
  • Gauge Appearance
  • Physical Variation
  • Independent Validation

ไม่ควรใช้ Prototype นี้แทน Safety Instrument โดยอัตโนมัติ: ผล Prediction จาก Computer Vision ไม่ควรถูกนำไปใช้เป็น Safety Shutdown, Protection Signal หรือ Measurement ที่ต้องผ่านการรับรอง โดยไม่มี Engineering Validation และการทดสอบที่เหมาะสมกับระบบจริง

เปลี่ยน Gauge หรือเปลี่ยน Camera Setup อาจต้อง Train / Validate ใหม่: Model นี้ถูกสร้างจาก Dataset และ Physical Setup เฉพาะของโปรเจกต์ จึงไม่ควรสมมติว่าจะ Generalize ไปยัง Gauge ทุกหน้าปัด ทุก Scale และทุกสภาพแสง โดยไม่ทดสอบ

Maker ได้เรียนรู้อะไรจาก Project นี้?

สิ่งที่น่าสนใจที่สุด อาจไม่ใช่เพียงคำว่า Edge AI แต่คือ Journey ของการแก้ปัญหา

เริ่มจาก General Vision AI

พบว่า Reliability ไม่พอ

ลอง Model ใหญ่ขึ้น แต่ช้า

เปลี่ยนเป็น Specialized Model

Synthetic Data เจอ Domain Gap

เก็บ Real Data

ใช้ Large AI ช่วย Label

Train MobileNetV3-Small

Export ONNX

Run Local บน UNO Q

เป็นตัวอย่างที่ดีว่า การทำ AI Hardware Project ไม่ได้จบที่เลือก Model ใหญ่ที่สุด แต่ต้องเลือกวิธีที่เหมาะกับโจทย์ และข้อมูลจริงที่ระบบจะเจอ

ถ้ากำลังเริ่ม Project แนว Edge AI / Computer Vision: สามารถสอบถามทีม Globalbyte เรื่อง Development Board, Camera, Sensor, Module และอุปกรณ์ Maker ที่เหมาะกับ Prototype ก่อนเริ่มประกอบระบบได้

โปรเจกต์นี้มีทั้ง AI, Code และ Physical Build แนะนำอ่านต้นฉบับควบคู่กัน

โดยเฉพาะถ้าจะทำตามเรื่อง:

  • Dataset Preparation
  • Gauge-specific Training
  • ONNX Runtime
  • Camera Crop Configuration
  • Model File Structure
  • Pressure Demonstrator
  • 3D Printed Enclosure

FAQ: อ่าน Analog Gauge ด้วย Arduino UNO Q และ Edge AI

โปรเจกต์นี้ทำอะไร?

ใช้ USB Camera มอง Analog Pressure Gauge แล้วให้ Arduino UNO Q ประมวลผลภาพด้วย Model เพื่อประมาณค่า Pressure เป็น PSI

ต้องดัดแปลง Analog Gauge หรือไม่?

Prototype ต้นฉบับ ไม่มี Electrical Connection ระหว่าง Gauge กับ UNO Q กล้องเป็นตัวสังเกตหน้าปัดแบบ Optical

Gauge ที่ใช้มี Range เท่าไร?

0–60 PSI ตาม Hardware List ของโปรเจกต์

ใช้กล้องรุ่นไหน?

Logitech C920e USB Webcam ตาม Hardware List ต้นฉบับ

ทำไมไม่ใช้ Vision-Language Model ไปเลย?

ผู้สร้างทดลองแล้ว แต่ Small SmolVLM ยังไม่ Reliable พอ และบางครั้งตีความ Counterweight เป็น Pressure Pointer

Model 2.2B ช่วยได้ไหม?

ผู้สร้างระบุว่าสามารถรันบน UNO Q ได้ แต่ Inference ใช้เวลาหลายนาทีต่อภาพ และไม่ได้แก้ Reliability Problem ได้มากพอสำหรับ Continuous Monitoring

Final Model ใช้อะไร?

MobileNetV3-Small ในรูปแบบ Regression Model

Model รันบน Cloud หรือ UNO Q?

Final Gauge Reader รัน Local บน Arduino UNO Q ด้วย ONNX Runtime

แล้ว GPT-5.6 ใช้ตรงไหน?

ใช้เป็น Cloud Vision Teacher ในช่วงช่วยสร้าง Label สำหรับ Real-world Training Dataset ไม่ใช่ Model ที่รันระหว่าง Monitoring ปกติ

ทำไม Synthetic Data ถึงไม่พอ?

Source ระบุว่า Model ทำได้ดีบน Synthetic Test Images แต่ Performance ลดลงเมื่อเจอภาพจริงจาก Camera เนื่องจาก Domain Gap

ภาพเข้า Model ขนาดเท่าไร?

Runtime Capture Frame ที่ 1920×1080, Crop Gauge 700×700 แล้ว Resize เป็น 224×224 ก่อน Inference

อ่านค่าเร็วแค่ไหน?

Source ระบุประมาณ 2 Readings ต่อวินาที และ Code ตั้ง Interval ไว้ 0.5 วินาที

แม่น ±1 PSI ตลอดช่วงหรือไม่?

ไม่ Held-out Test มี Mean Absolute Error ต่ำกว่า 1 PSI ในช่วง 10–25 PSI bands แต่ Performance ลดลงใกล้ Low และ High Extremes

ช่วงที่ Model ทำงานดีที่สุดอยู่ตรงไหน?

ผู้สร้างระบุ Strongest Performance โดยรวมประมาณ 10–30 PSI ขณะที่ตัวเลข MAE ต่ำกว่า 1 PSI ถูกระบุเฉพาะ 10–25 PSI bands

ตอนนี้ส่ง Alert หรือเข้า Cloud Dashboard แล้วหรือยัง?

Current Prototype Log ค่า PSI แบบ Local ส่วน Threshold Alert, Gateway และ Mesh Architecture เป็นแนวคิดต่อยอดในอนาคต

เอา Model นี้ไปอ่าน Gauge รุ่นอื่นได้เลยไหม?

Source ไม่ได้ยืนยันเช่นนั้น Model ถูก Train กับ Gauge, Dataset และ Camera Setup ของ Prototype การใช้กับ Gauge อื่นควรมีการเก็บข้อมูล Train และ Validate ให้เหมาะกับงานจริง

มี Source Code ไหม?

มี Hackster มี main.py, requirements.txt และ Gauge Reader ONNX Model ใน Code Section

มีไฟล์ 3D Print ไหม?

มี STL สำหรับ Pump Station Demo Enclosure แต่ Source ไม่ได้ให้ Print Settings ครบชุด

สรุป: ทำของเก่าให้ Smart ขึ้น ไม่จำเป็นต้องเริ่มจากการเปลี่ยนของเก่า

สิ่งที่ทำให้ Project นี้น่าสนใจ ไม่ใช่เพียงการใช้ AI อ่านเข็ม Gauge

แต่คือแนวคิดว่า Infrastructure เดิม ที่ยังทำหน้าที่ได้ดี อาจถูกเพิ่ม Digital Monitoring Layer เข้าไป “รอบตัวมัน” แทนการรื้อหรือเปลี่ยนเครื่องมือทุกชิ้น

Existing Analog Instrument

Camera

Specialized Edge Model

Digital Reading

Journey ของผู้สร้าง ยังเตือนเรื่องสำคัญอีกอย่าง: AI ที่ให้คำตอบได้ ไม่ได้แปลว่าคำตอบนั้นผ่านการ Validate สำหรับงาน Measurement จริงแล้ว

Model นี้แสดงผลที่ดีในบางช่วง แต่ก็แสดง Weakness ที่ปลาย Gauge Range อย่างชัดเจน ซึ่งเป็นข้อมูลที่สำคัญไม่แพ้ Demo ที่ทำงานสำเร็จ

สำหรับ Maker, Developer หรือคนที่สนใจ Industrial Edge AI Project นี้จึงน่าเรียนทั้ง Computer Vision, Dataset, Edge Deployment, Physical Prototype และการประเมินข้อจำกัดของ AI ไปพร้อมกัน

References / แหล่งข้อมูลต้นฉบับ

อยากเริ่ม Edge AI หรือ Computer Vision Project ของตัวเอง?

Project แบบนี้ไม่ได้เริ่มจาก AI Model อย่างเดียว แต่ต้องประกอบทั้ง Development Board, Camera, Dataset, Software และ Physical Setup ให้ทำงานเข้าด้วยกัน

หากกำลังหา Development Board, Camera, Sensor, Module หรือ Maker Accessories สำหรับทำ AI / IoT Prototype สามารถสอบถามทีม Globalbyte เพื่อช่วยเช็กอุปกรณ์ที่เหมาะกับงานได้

และถ้ามี STL สำหรับทำ Enclosure หรือ Fixture แต่ไม่มีเครื่องพิมพ์ สามารถส่งไฟล์ให้ทีม Globalbyte ช่วยประเมินบริการรับพิมพ์ 3D ได้เช่นกัน

บทความนี้ไม่ได้ยืนยันว่า Arduino UNO Q, Logitech C920e หรืออุปกรณ์เฉพาะในต้นฉบับ มี Stock อยู่ที่ Globalbyte กรุณาสอบถามรุ่นและ Availability ก่อนสั่งซื้อ

 


Blog posts