⚙ ต่อ Real Backend — Setup Wizard

คู่มือ step-by-step ปิดโหมด demo และเปิดใช้งานข้อมูล probe จริง — ทำตามเป็นขั้นๆ ครับ เริ่มจากเลือก vendor → ตั้ง backend → calibrate → connect

💡 หมายเหตุ: เนื้อหาด้านล่างเป็นแผน Plan A/B/C ที่ต้อง deploy backend แยก (Python FastAPI + Postgres) — สำหรับ Plan D ที่ใช้อยู่ตอนนี้ backend ทำงานบน Cloudflare Pages Functions (ไม่ต้องตั้ง server เอง · $0/เดือน · 100k req/วันฟรี). เนื้อหาด้านล่างเก็บไว้สำหรับ scale-up อนาคต

📦 Step 1 — เลือก Probe Vendor

Vendorราคา (เริ่มต้น)ข้อดีข้อจำกัดเหมาะกับ
TomTom Move
เอกสาร →
~$1,500/mo
+ enterprise tier
• Coverage ดีในไทย
• แยก passenger/truck
• REST API stable
• ต้องเซ็น contract
• minimum 3 months
Production · TIA reports
HERE Probe
เอกสาร →
~$800/mo
+ usage
• Free tier เริ่มต้นได้
• fleet vs consumer flag
• Hourly aggregation
• Coverage บางพื้นที่ต่ำ
• Truck data limited
Pilot · academic study
Mapbox Movement
เอกสาร →
~$500/mo • ราคาดี
• Activity index (proxy ที่ดี)
• Aggregated 15-min
• ไม่แยก vehicle class
• OD ระดับ tile (≥250m)
Planning ทั่วไป · early-stage study
AIS Insights
(โทรไปสอบถาม)
฿฿฿
Custom quote
• ครอบคลุมไทยจริง 100%
• คนใช้ AIS เยอะ → coverage ดี
• OD person-trip จริง
• Privacy concerns
• ต้อง MOU + นาน
Government · large-scale OD
💡 คำแนะนำของผม: เริ่มจาก HERE Probe (free tier 250K req/mo) เพื่อ pilot 1 เดือน → ถ้าใช้งานจริง upgrade เป็น TomTom Move สำหรับ production

📊 Step 2 — DOH AADT Ground Truth (ฟรี!)

2.1ดาวน์โหลด DOH AADT

กรมทางหลวงเปิดข้อมูล AADT ของทุกสถานีนับรถทั่วประเทศ ฟรี

เปิด bhs.doh.go.th → หรือ data.go.th →

เลือกจังหวัด → ปี → ดาวน์โหลด CSV/PDF
ไฟล์ที่ต้องการ: aadt_2024.csv มี column: station_id, route, km, aadt, by_class (car/truck/bus/moto)

2.2หาสถานี DOH ที่ใกล้จุดศึกษา

เปิด Request Builder → วาด pin บนจุดสนใจ → กด 🔍 Preview Layout เพื่อหาถนนใน OSM → จากนั้นใช้ ref tag (เช่น "ทล.1" = ทางหลวง 1) ไปจับคู่กับ route ใน DOH CSV

เกณฑ์: ระยะห่างไม่เกิน 5 km และอยู่ในประเภทถนนเดียวกัน (primary/secondary/motorway)

🐳 Step 3 — Deploy FastAPI Backend

3.1เลือก hosting
OptionราคาSetup timeคำสั่งหลัก
Fly.io (recommended)~$10-30/mo~30 นาทีflyctl launch
Google Cloud Run$0-50/mo (pay per req)~1 ชม.gcloud run deploy
Railway$5-20/mo~20 นาทีrailway up
Hetzner VPS€4/mo (cheapest)~2 ชม.docker compose up -d
3.2Clone TTVE repo + config vendor
# Clone — code อยู่ที่ TTVE repo (private — ติดต่อ admin)
git clone <ttve-repo> ttve-backend
cd ttve-backend

# ตั้งค่า vendor credentials
cp env.example .env
# แก้ .env ใส่:
#   TTVE_PROBE_VENDOR=tomtom    # หรือ here / mapbox / ais
#   TTVE_TOMTOM_API_KEY=<your_key>
#   TTVE_DOH_AADT_PATH=/data/aadt_2024.csv
#   TTVE_DB_URL=postgresql://...  # TimescaleDB + PostGIS

# Run locally first to test
docker compose up -d
curl http://localhost:8080/health
3.3Deploy
# Fly.io example
flyctl auth login
flyctl launch --no-deploy        # creates fly.toml
flyctl secrets set TTVE_TOMTOM_API_KEY=xxx TTVE_DB_URL=postgresql://...
flyctl deploy

# Get URL
flyctl status   # → https://ttve-prod.fly.dev

📐 Step 4 — Calibrate กับ DOH (สำคัญ)

4.1รัน calibration pipeline
# เข้า backend แล้วรัน
docker exec -it ttve-api bash
python -m src.api.calibration.run_all \
    --aadt-csv /data/aadt_2024.csv \
    --vendor tomtom \
    --area "Bangkok" \
    --year 2024 \
    --output /data/calibration_model.pkl

# ผลที่ได้:
# ✓ Trained XGBoost penetration model · MAE=0.18
# ✓ Validated on 124 DOH stations · 91% pass GEH<5
# ✓ Saved: /data/calibration_model.pkl
⚠ ต้องทำต่อเนื่องทุกเดือน: probe penetration เปลี่ยนตามฤดูกาล + การใช้งาน smartphone-nav → recalibrate เดือนละครั้งเพื่อให้ GEH stay <5

🔌 Step 5 — Connect Frontend → Backend

5.1ตั้ง backend URL

แก้ไฟล์ /trafficdata/_config.js บน Cloudflare Pages:

// _config.js
window.TTVE_BACKEND_URL = "https://ttve-prod.fly.dev";  // ← URL จาก Step 3
window.TTVE_DEPLOY_BANNER = false;   // ปิด demo pill

deploy ใหม่ → frontend จะคุยกับ backend จริง

5.2ทดสอบ connection จากตรงนี้

ใส่ backend URL ของคุณ (เพื่อทดสอบในหน้านี้):

รอการทดสอบ...

ต้องได้ {"status":"healthy","vendor":"tomtom","db":"connected"}

📋 Verification Checklist (พร้อมใช้งานจริงไหม?)

🆘 ต้องการความช่วยเหลือ?

ดูเอกสารเพิ่มเติม:

เมื่อทำครบทั้ง 5 steps แล้ว: Demo pill ที่มุมขวาบนจะหายไปอัตโนมัติ Provenance Panel ใน History จะแสดง EXCELLENT (GEH<3) หรือ PASS และผลลัพธ์พร้อมนำไปอ้างอิงใน TIA report ได้