หลายสิบปีที่ตลาด DIY หรือตลาดระดับล่างจะเห็น UBlox Zed F9P ของสวิสเซอร์แลนด์โลดแล่นบนยุทธจักรนี้มานานหลายสิบปี จนในที่สุดก็มีคู่แข่งกันกลายๆคือ Unicorecomm จากจีนแผ่นดินใหญ่ โดยเฉพาะชิป UM980 ที่พร้อมจะท้าชนทุกสถาบัน ที่มี channel ทั้งหมด 1408 ช่อง พูดง่ายๆแบบชาวบ้านคือสามารถรับสัญญานดาวเทียมบนท้องฟ้าได้สูงสุด 1408 ดวง แต่ในปัจจุบันนี้ดาวเทียมนำหนบนท้องฟ้าประมาณแค่ 200 เครื่อง ดังนั้นถือว่าเผื่อมาแบบก่อนกาลกันเลยทีเดียว
ที่จริงยังมีตลาดบนๆคือชิป Septentrio ของเบลเยียม ฝั่งยุโรป มีคุณภาพและราคาที่สูงกว่าหลายช่วงตัว ปัจจุบันบริษัทผู้ผลิตดั้งเดิมถูกซื้อโดยยักษ์ใหญ่ Hexagon และผมจะไม่ขอกล่าวในที่นี้




และแล้วโครงการที่ผมรอมานานมาก จะทำแต่ไม่ได้ทำสักทีเนื่องจากหาเวลาว่างที่ต่อเนื่องไม่ค่อยมี ผมตั้งเป้าว่าจะทำ RTK Base Station ที่พร้อมจะอึดๆหน่อย และที่สำคัญจะทำยังไงให้ตัวสถานีฐานความละเอียดความถูกต้องอยู่ในระดับSurvey-grade พูดแบบชาวบ้านคือสามารถใช้เป็นสถานีฐานสำหรับโรเวอร์ ที่สามารถนำไปเซอร์เวย์เช่นให้ตำแหน่งในงานก่อสร้างได้ ทั้งระดับและค่าพิกัด หรือเป็นสถานีฐานสำหรับงานบินโดรนที่ถ่ายภาพหรือสแกนไลดาร์ สำหรับทำแผนที่ความละเอียดสูง
การใช้งานอื่นๆเช่นนำมาใช้ในงานการเกษตร เหล่านี้ไม่ต้องค่าระดับและพิกัดที่ถูกต้องมากนัก สังเกตว่าโครงการส่วนใหญ่ที่ฝากโค้ดไว้ใน Github ล้วนแล้วที่ไม่ใช้ในงานเซอร์เวย์ เพราะไม่มีการใช้ค่าพิกัดและระดับสำหรับสถานีฐานเป็นเรื่องเป็นราว ดูได้จากเว็บของแอพไม่สามารถตั้งค่าพิกัดและระดับให้กับสถานีฐานได้ บางเจ้าเน้นส่งสัญญาน NTRIP เข้า Caster พวก Onocoy เพื่อแปรเป็นเงินคริปโตไปนั่นเลยครับ
และที่สำคัญสำหรับ RTK Base Station สมัยนี้ ต้องสามารถส่งข้อมูลผ่านอินเทอร์เน็ตไปยัง NTRIP Caster ได้ ที่มีทั้งฟรี เสียเงิน เสียเงินยังแบ่งเป็นเสียมากหน่อยแบบว่าจ่ายแล้วจบสำหรับคนที่มีเงินหนา ส่วนอีกแบบคือเสียน้อยแต่ต้องลงทุนออกแรงเอง DIY อ่านได้ที่บทความก่อนของผมตามด้านล่างนี้
ระบบ RTK Base Station แบบส่งสัญญานวิทยุ UHF (Radio modem) ต้องบอกว่ามาถึงยุคที่สัญญาณโทรศัพท์และอินเทอร์เน็ตเข้าถึงทุกที่ ตอนนี้ได้ล้าสมัยไปเรียบร้อย เนื่องจากความยุ่งยาก ต้องลงทุนซื้อตัววิทยุโมเด็มที่ประกบกับเครื่อง GNSS สำหรับสถานีฐาน ในทะเลอาจจะไปถึง 20 กม. เพราะไม่มีอะไรมาบังสัญญาณ แต่บนบกไปได้สัก 5 กม. ถือว่าเยี่ยมแล้ว
ส่วนประกอบของฮาร์ดแวร์ของ DIY RTK Base Station (NTRIP Server)
- บอร์ด Unicorecomm UM980 ต่อกับสายอากาศไปยังจานรับสัญญาณ (Antenna) ราคาประมาณ 3000 – 8000 บาท
- บอร์ด ESP32 เป็นศูนย์กลาง รับข้อมูล GNSS จากบอร์ด UM980 โดยที่ตัวของมันเอง เราเรียกว่า NTRIP Server เมื่อรับข้อมูลจาก UM980 แล้ว จะส่งข้อมูลผ่านอินเทอร์เน็ตต่อให้กับ NTRIP Caster อีกที ราคาประมาณ 150 -300 บาท ควรจะเลือกรุ่นที่มีเสาอากาศ Wifi เพราะจะได้ส่งได้ไกลกว่า
- จานรับสัญญาณ (GNSS Antenna) และสายสัญญาณ เน้นว่าต้องสามารถรับสัญญาณได้อย่างน้อยที่ความถี่ L1 และ L2 หรือถ้าให้ดีกว่าจะเลือกเป็นสามความถี่คือ L1, L2 และ L5 ราคา 1500 – 10000 บาท
- กล่องใส่อุปกรณ์ ผมเลือกวัสดุเป็นอลูมิเนียมเนื่องความเบาและสามารถระบายความร้อนได้ดี ขนาดประมาณ 10 x 15 x 4 ซม. ราคาประมาณ 200 – 300 บาท
- พัดลมขนาดเล็ก 3 x 3 ซม. มีหน้ากากกันด้านนอกขนาด 4 x 4 ซม. ราคารวม 30 – 50 บาท
- สายสัญญาณไวไฟในกล่อง แถมมากับบอร์ด ESP32
- สายสัญญาณ GNSS สำหรับใช้ภายในกล่อง (ใช้สายไวไฟ) ราคาประมาณ 50 บาท
- ตัวแปลงไฟฟ้า DC 12V เป็น USB 5V เพื่อจ่ายเลี้ยงบอร์ด UM980 และ ESP32 ราคา 80 บาท




🧭 UM980 ปะทะ ZED-F9P: การตัดสินใจเลือก Base Station
UM980 นับว่าเป็นชิปที่อยู่ในเครื่อง GNSS ของจีนทั้งยี่ห้อชั้นนำ Top 10 ตลาดกลางและตลาดล่างล้วนแต่ใช้ชิปตัวนี้ ราคาของ GNSS จะต่างกันที่วัสดุที่ใช้ทำรวมถึงซอฟท์แวร์ที่มากับคอนโทรลเลอร์ และบริการหลังการขาย ทำให้เครื่องรับ GNSs ของจีนที่ขายในประเทศไทยมีราคาที่ต่างกัน
มาลองดูผลการเปรียบเทียบ
| หัวข้อการเปรียบเทียบ | Unicore UM980 (Triple-Frequency) | u-blox ZED-F9P (Dual-Frequency) |
|---|---|---|
| ความถี่สัญญาณ | สามความถี่ (L1, L2, L5/E5b) | สองความถี่ (L1, L2) |
| จำนวนช่องสัญญาณ | 1408 ช่องสัญญาณ | น้อยกว่า (แต่ประสิทธิภาพสูง) |
| ประสิทธิภาพ RTK | ดีมาก, แต่อาจใช้เวลาในการหาตำแหน่งเริ่มต้น (Fix) นานกว่า F9P เล็กน้อย | ยอดเยี่ยม, มีชื่อเสียงเรื่องการหาตำแหน่ง RTK Fix ได้รวดเร็วมาก |
| การรองรับสัญญาณ | รองรับสัญญาณกว้างขวางกว่า รวมถึง GPS L1C/A/L2C/L5, Galileo E1/E5b/E6, BeiDou B1I/B2I/B3I/B2b, GLONASS L1/L2, QZSS, SBAS | รองรับสัญญาณหลักๆ ได้ดี (GPS L1/L2, Galileo E1/E5b) แต่ครอบคลุมน้อยกว่า UM980 |
| ราคา | ถูกกว่าและคุ้มค่าเมื่อเทียบกับคุณสมบัติที่ได้รับ | คุ้มค่าและเป็นที่นิยม (โดยทั่วไปมักแพงกว่า UM980 เล็กน้อย) |
| ความง่ายในการใช้งาน/พัฒนา | ซับซ้อนกว่าเล็กน้อย, อาจต้องมีความรู้ด้าน RF เพิ่มเติม | ใช้งานง่าย, มีเอกสารเยอะ, รองรับในแพลตฟอร์มต่างๆ มากมาย (เช่น Ardupilot, Raspberry Pi) |


สรุปเบื้องต้น UM980 โดดเด่นเรื่อง ความสามารถในการรับสัญญาณที่เหนือกว่า ด้วยการใช้สามความถี่ ทำให้ทำงานได้ดีในสภาพแวดล้อมที่ท้าทาย (เช่น ในเมืองหรือใต้ต้นไม้) และให้ความคุ้มค่าด้านราคาต่อคุณสมบัติสูง u-blox ZED-F9P เป็นมาตรฐานอุตสาหกรรมที่ได้รับการพิสูจน์แล้ว มีจุดแข็งคือ ความน่าเชื่อถือและการหาตำแหน่ง RTK ที่รวดเร็ว ใช้งานง่าย มีชุมชนผู้ใช้และการสนับสนุนที่กว้างขวาง
🛠️ การตั้งค่าเริ่มต้น UM980 ผ่าน UPrecise
ในการใช้งานครั้งแรก ผู้ใช้จำเป็นต้องใช้โปรแกรม UPrecise ของ Unicore เพื่อกำหนดค่าพื้นฐานและบันทึกค่าลงในหน่วยความจำถาวรของโมดูล การใช้ UPrecise เพื่อติดต่อกับ UM980 นั้นมีความจำเป็นโดยเฉพาะคนที่ซื้อบอร์ด UM980 มาใหม่ จะต้องมาตั้งค่ากันก่อน การต่อบอร์ด UM980 อาจจะทำให้ผู้ใช้ที่ไม่เคยใช้ UM980 จะงงงันเพราะต่อด้วย USB port จะพบไม่มีข้อมูลดาวเทียมขึ้นบนหน้าจออย่างที่มันควรจะเป็น จะต้องมีการตั้งค่าก่อนเสมอ




การเชื่อมต่อและปรับ Baud Rate เริ่มต้น
- คำแนะนำ: ผู้ใช้ต้องเชื่อมต่อ UM980 เข้ากับคอมพิวเตอร์ผ่าน โดยใช้พอร์ต USB ของบอร์ด และเปิดโปรแกรม UPrecise
- การตั้งค่าเริ่มต้น: กำหนดค่า COM Port ที่เชื่อมต่อกับ UM980 และตั้งค่า Baud Rate เป็นค่าเริ่มต้นจากโรงงาน (โดยทั่วไปคือ 115200) แล้วกด Connect
- การตั้งค่า COM2 สำหรับ ESP32: เนื่องจากเราจะใช้ COM2 พอร์ต COM2 นี้ไม่ใช่ของคอมพิวเตอร์นะครับเป็นพอร์ต UART สำหรับเชื่อมต่อกับ ESP32 ในอัตราความเร็วสูง ผู้ใช้ควรตั้งค่านี้ผ่าน UPrecise ก่อน ที่ UPrecise ไปช่องป้อนคำสั่ง:
- คำสั่ง:
SETCOM COM2 BAUD 460800 - คำอธิบาย: การตั้งค่านี้จะทำให้ UM980 ส่งข้อมูล RTCM ออกทางขา UART ที่ต่อกับ ESP32 ที่ความเร็ว 460800 bps โดยอัตโนมัติเมื่อเปิดใช้งาน
- คำสั่ง:
ชุดคำสั่งกำหนดโหมดเป็นสถานีฐาน
serial port ของ UM980 ตั้งชื่อ COM1, COM2 และ COM3 (อย่าไปสับสนกับ serial port ของคอมพิวเตอร์) ไดอะแกรมของ serial port ของ UM980 ดังนี้
UM980 has 3 ports:
├─ COM1 (TTL UART1: RX1/TX1)
├─ COM2 (TTL UART2: RX2/TX2)
└─ COM3 (RS232)
เมื่อเปิดโปรแกรมแล้ว ให้คัดลอกคำสั่งไปใส่ใน Command Entry แล้วกด Enter โดยที่ผมต่อ ESP32 TX (GPIO 17) → UM980 RX1 และ ESP32 RX (GPIO 16) → UM980 TX1
mode base 12.708027694109 101.009721414363 3.320
GPGSV COM1 1
GLGSV COM1 1
GAGSV COM1 1
GBGSV COM1 1
GPGGA COM1 1
RTCM 1005 COM1 10
RTCM 1077 COM1 1
RTCM 1087 COM1 1
RTCM 1097 COM1 1
RTCM 1127 COM1 1
SAVECONFIG
คำอธิบาย: สังเกตว่า RTCM ที่ตั้งไว้ได้แก่ 1077, 1087, 1097, 1127 คือ MSM7 และคำสั่งปิดท้ายคือ saveconfig สำคัญที่สุด หากไม่ได้ทำ การตั้งค่าต่างๆจะหายไปเมื่อถอดปลั๊ก
💻 การเปลี่ยน ESP32 ให้เป็น NTRIP Server
นี่อาจจะเป็นส่วนที่ยากที่สุดแต่ก็ท้าทายที่สุด เพราะการทำส่วนติดต่อผู้ใช้ (UI) จะมาทำที่นี่ ข้อดีคือสามารถหาเอกสารอ่านได้ง่าย มีโครงการ repository ที่ฝากตาม github ไว้เยอะพอสมควร
- การเชื่อมต่อ (Hardware Interfacing):
- อุปกรณ์: ESP32 Dev Board ผมเลือกใช้ ESP32-WROOM-32U แบบมีสายอากาศไวไฟ จำนวนขา 38 ขา
- การเชื่อมต่อ UART: แผนภาพการต่อสาย TX/RX จาก UM980 ซึ่งส่งข้อมูล RTCM ไปยังขา RX/TX ของ ESP32 อย่างถูกต้อง ใช้แรงดันไฟฟ้า 3.3V
- แสดงการต่อจำนวน 5 สาย ESP32-WROOM-32 และ UM980 Board
- ต่อไปสวิตช์กดดับปล่อยติด (Reset) เพื่อให้สามารถมีปุ่มรีเซ็ตได้ในกรณีที่เครื่องค้าง
- โค้ดและตรรกกะสำหรับ ESP32 ใช้เครื่องมือจากผู้ผลิต ESP-IDF:
- โครงสร้างหลักของโค้ด ESP-IDF: มีฟังก์ชันหลัก 4 ส่วน
- WiFi Connection: การเชื่อมต่อ ESP32 เข้ากับเครือข่ายไวไฟ
- UART Listener: รับข้อมูล RTCM ไบนารีจากบอร์ด UM980 อย่างต่อเนื่องที่ Baud Rate สูง เช่น 460800
- NTRIP Server: เชื่อมต่อ TCP/IP ผ่านอินเทอร์เน็ตไปยัง NTRIP Caster และส่งผ่านข้อมูล RTCM ที่ได้รับจาก UART ไปยัง Caster ทันทีที่รับมา
- กำหนดค่าผ่าน Web Interface: เพื่อให้ผู้ใช้สามารถกำหนดค่า IP Caster, Port, Mountpoint, และ Password และแสดงข้อมูล GNSS ในขณะนั้นให้ผู้ใช้ทราบว่า
- โครงสร้างหลักของโค้ด ESP-IDF: มีฟังก์ชันหลัก 4 ส่วน

ESP32-WROOM-32 UM980 Board
┌─────────────────────┐ ┌──────────────────────┐
│ │ │ │
│ GPIO 17 (TX0) ─────┼────────>│ RX1 (COM1/UART1) │
│ │ │ │
│ GPIO 16 (RX0) <────┼─────────│ TX1 (COM1/UART1) │
│ │ │ │
│ GPIO 33 (TX1) ─────┼────────>│ RX2 (COM2/UART2) │
│ │ │ │
│ GPIO 32 (RX1) <────┼─────────│ TX2 (COM2/UART2) │
│ │ │ │
│ GND ┼─────────│ GND │
└─────────────────────┘ └──────────────────────┘
│
│ SMA Connector
▼
┌─────────────────┐
│ GNSS Antenna │
│ (L1+L2+L5) │
└─────────────────┘
🌐 Web Interface สำหรับการตั้งค่าและควบคุม
ส่วนที่น่าสนใจที่สุดของโครงการนี้คือการพัฒนา Web Interface ที่ทำงานบน ESP32 โดยตรง ผู้ใช้สามารถเข้าถึงผ่านเบราว์เซอร์ จากบนมือถือหรือคอมพิวเตอร์ได้ทันทีโดยไม่ต้องติดตั้งโปรแกรมเพิ่มเติม ผมออกแบบหน้าเว็บให้มีลักษณะเป็น Sidebar Navigation เพื่อให้เข้าถึงเมนูแบบง่ายๆ
ฟีเจอร์หลักของ Web Interface:
- WiFi – แสดงสถานะของ Wifi AP ตัวของ ESP32 สามารถเข้าถึงได้ด้วย AP อย่างง่ายๆ ในขณะเดียวกันสามารถสั่งให้ ESP32 เชื่อมต่อกับไวไฟที่เป็น Hotspot อื่นๆ เพื่อใช้อินเทอร์เน็ต ในการส่งข้อมูล ลักษณะ ทูอินวัน แบบนี้ทำให้ตามตัวง่ายหาง่าย การออกแบบนี้เป็นลักษณะของ แบบฉบับ iOT
- Satellite Tracking Display – แสดงจำนวนดาวเทียมแต่ละกลุ่มที่รับสัญญาณได้ (GPS, GLONASS, Galileo, BeiDou) ในรุ่นต่อไปจะสามารถแสดงกราฟและ SkyPlot ได้
- Base Station Configuration – หน้าเว็บสำหรับตั้งค่าพิกัดของสถานีฐาน (Latitude, Longitude, Ellipsoid Height) ผมออกแบบให้รองรับการป้อนค่าพิกัดแบบทศนิยม 12 ตำแหน่ง เพื่อความแม่นยำระดับมิลลิเมตร ซึ่งเป็นสิ่งที่สำคัญสำหรับงาน Survey-grade
- NTRIP Server Settings – หน้าเว็บตั้งค่าการเชื่อมต่อกับ NTRIP Caster ซึ่งสามารถส่งได้สอง Caster (Duo) ประกอบด้วย:
- IP Address หรือ Domain name ของ Caster
- Port (ปกติคือ 2101)
- Mountpoint ชื่อสถานีฐาน
- Username และ Password สำหรับการยืนยันตัวตน
- UART Configuration – ตั้งค่าสำหรับ UART ได้แค่หมายเลขขา (Pin) การตั้งค่าของ UART จะถูกเตือนว่าเป็นเรื่องแอดวานซ์ ถ้าไม่แน่ใจอย่าแก้ไข
- System Information – แสดงข้อมูลระบบ เช่น Firmware version, Uptime, Free Memory, และ IP Address ของ ESP32
ทุกการตั้งค่าจะถูกบันทึกลงใน NVS (Non-Volatile Storage) ของ ESP32 ทำให้ค่าคงอยู่แม้จะถอดปลั๊กไฟ และเมื่อเปิดเครื่องใหม่ ระบบจะโหลดค่าเดิมกลับมาใช้งานอัตโนมัติ
⚙️ การติดตั้งและทดสอบระบบ
เมื่อประกอบฮาร์ดแวร์เสร็จเรียบร้อย และอัพโหลดโค้ดลง ESP32 แล้ว ขั้นตอนการใช้งานมีดังนี้:
1. การเชื่อมต่อครั้งแรก (First-time Setup)
- เมื่อ ESP32 บูตครั้งแรก หากยังไม่มีการตั้งค่า WiFi มันจะเปิดโหมด Access Point (AP Mode) ขึ้นมา
- เชื่อมต่อมือถือหรือคอมพิวเตอร์เข้ากับ WiFi นี้ จากนั้นเปิดเบราว์เซอร์ไปที่ http://192.168.4.1
- ตั้งค่า WiFi ที่ต้องการให้เชื่อมต่อ และบันทึกการตั้งค่า ESP32 จะรีบูตและเชื่อมต่อกับ WiFi ที่กำหนด
- ตรวจสอบ IP Address ที่ ESP32 ได้ที่หน้า Wifi Station
2. การตั้งค่าพิกัดสถานีฐาน (Base Location Configuration)
นี่เป็นขั้นตอนที่สำคัญที่สุดสำหรับการทำ RTK Base Station ระดับ Survey-grade เพราะความถูกต้องของพิกัดสถานีฐานจะส่งผลโดยตรงต่อความแม่นยำของ Rover ที่ใช้งาน
วิธีการหาพิกัดที่ถูกต้อง:
- วิธีที่ 1: ใช้ Post-Processing – นำข้อมูล GNSS ดิบ (Raw data) จากสถานีฐานไปประมวลผลแบบ Static ใช้ GNSS RTSD ของออนไลน์ของกรมแผนที่ทหาร ระยะเวลา 1-24 ชั่วโมง จะได้พิกัดที่แม่นยำในระดับเซนติเมตร
- วิธีที่ 2: ใช้ Total Station วัดจากหมุดควบคุม – ถ้ามีหมุดควบคุมที่ใกล้เคียง สามารถใช้ Total Station วัดมาได้ (วิธีนี้แม่นยำและเชื่อถือได้มาก)
- วิธีที่ 3: ใช้ NTRIP Rover Mode – ใช้ UM980 เชื่อมต่อกับ NTRIP Caster อื่น (เช่น RTK2go หรือ GNSS RTSD ของกรมแผนที่ทหาร) เพื่อทำ RTK Fix แล้วบันทึกพิกัด Average 15-30 นาที (วิธีนี้สะดวกแต่ความแม่นยำขึ้นอยู่กับระยะห่างจากสถานีฐานอ้างอิง)
- วิธีการที่ 4: ถ้าเป็นงานก่อสร้างที่มีหมุดควบคุมจากเจ้าของงานอยู่แล้ว จะทำการรังวัดแบบโครงข่ายเพื่อขยายหมุดควบคุม และหนึ่งในหมุดนั้นก็คือหมุดสำหรับติดตั้งเป็น RTK Base Station
ในโครงการนี้ ผมใช้วิธีที่ 4 จากนั้นนำค่าพิกัดที่ปรับแก้แล้ว (Adjustment Network) มาใช้เป็นพิกัดสถานีฐาน
สิ่งที่ต้องระวัง:ผมพบว่าการใช้ ค่าระดับ WGS84 Ellipsoid Height เป็นค่าระดับสำหรับสถานีฐาน จะทำงานได้ดีกว่าการแปลงเป็น MSL (Mean Sea Level) ในประเทศไทย เนื่องจากปัญหาความไม่แน่นอนของ Geoid Model ดังนั้นผมจึงเลือกใช้ ECEF (Earth-Centered, Earth-Fixed) Coordinate System ในการคำนวณ ซึ่งให้ผลลัพธ์ที่สม่ำเสมอและแม่นยำกว่า
3. การตั้งค่า NTRIP Caster และทดสอบการส่งข้อมูล
- ป้อนข้อมูล NTRIP Caster ในหน้า Web Interface (ผมใช้ DigitalOcean VPS ที่ติดตั้ง NTRIP Caster ไว้แล้ว ตามบทความก่อนหน้า)
- กด “Save Configuration and Restart” จากนั้น ESP32 จะทำการรีสตาร์ท จากนั้นเข้าหน้าเว็บอีกครั้งสามารถตรวจสอบสถานะการเชื่อมต่อ หน้าเว็บจะแสดงว่าเชื่อมต่อสำเร็จหรือไม่ สามารถดูได้จากจำนวนไบต์ที่ส่งไปแล้ว
- ทดสอบการรับข้อมูลจาก Caster โดยใช้โปรแกรม SNIP Caster หรือ STRSVR (จาก RTKLib) เชื่อมต่อเข้ามาที่ Mountpoint ดูว่าได้รับข้อมูล RTCM หรือไม่ หรือถ้ามี RTK โรเวอร์ก็ลองต่อดูได้ว่ารับสัญญาน RTCM จาก NTRIP Caster แล้วค่า “Fix” หรือไม่
เมื่อทุกอย่างทำงานถูกต้อง อัตราการส่งข้อมูลประมาณ 2-4 KB/s ขึ้นอยู่กับจำนวนดาวเทียมและ RTCM Message ที่เปิดใช้งาน









📊 ผลการทดสอบความแม่นยำ (Accuracy Testing)
ผลลัพธ์นี้ถือว่ายอดเยี่ยมสำหรับระบบ DIY ที่ลงทุนไม่ถึง 10,000 บาท โดยเฉพาะค่า Vertical Accuracy ที่อยู่ในระดับ ±2.0 cm เหมาะสำหรับงานก่อสร้างทั่วไปและงานสำรวจภูมิประเทศระดับกลาง ถ้ามีโอกาสผมจะนำผลการทดสอบที่มากกว่านี้ในทางสถิติมานำเสนอกันดู
💡 สรุปและแนวทางในอนาคต
โครงการ DIY RTK Base Station ด้วย ESP32 และ UM980 นี้ พิสูจน์ให้เห็นแล้วว่า เราสามารถสร้างสถานีฐาน GNSS ระดับ Survey-grade ได้ด้วยงบประมาณที่ต่ำมาก เมื่อเทียบกับสินค้าสำเร็จรูปที่มีราคาหลายหมื่นบาทจนถึงหลายแสนบาท
✅ ข้อดีของระบบ
- ต้นทุนต่ำ: ลงทุนรวมประมาณ 10,000 บาท (ขึ้นอยู่กับจานรับสัญญาณที่เลือก) เทียบกับสินค้าสำเร็จรูปที่ราคา 50,000-800,000 บาท
- ความแม่นยำสูง: ให้ผลลัพธ์ระดับเซนติเมตร เทียบเท่ากับอุปกรณ์มืออาชีพ
- ปรับแต่งได้: สามารถเขียนโค้ดเพิ่มฟีเจอร์ตามต้องการได้เอง เช่น Data Logging, Remote Monitoring, หรือการส่งข้อมูลไปยัง Cloud
- Open Source: ใช้เครื่องมือและไลบรารีที่เป็น Open Source ทั้งหมด ไม่ต้องเสียค่าลิขสิทธิ์
- ขนาดเล็กกะทัดรัด: บรรจุในกล่องขนาดเล็ก พกพาสะดวก ติดตั้งง่าย
⚠️ ข้อจำกัด
- ต้องมีความรู้ทางเทคนิค: ต้องเข้าใจเรื่อง GNSS, UART, ESP-IDF, และ Web Development ในระดับหนึ่ง ในสมัยนี้มี AI ที่มาช่วยได้ เขียนโค้ดช่วยได้ แต่คนใช้ก็ต้องเก่งและเข้าใจในการใช้งานเขา ถึงจะได้ผลงานที่ดี
- ใช้เวลาในการติดตั้งและปรับแต่ง: ไม่ได้เป็น Plug-and-Play แบบสินค้าสำเร็จรูป
- ไม่มีการรับประกัน: ถ้าอุปกรณ์เสีย ต้องซ่อมแซมหรือเปลี่ยนเอง ถ้าสนุกกับงานพวก DIY นี่เป็นทางเลือกที่ถูกต้องและถูกใจ
- ความทนทานต่ำกว่า: อุปกรณ์ภายในกล่องไม่ได้มาตรฐาน IP67 เหมือนอุปกรณ์มืออาชีพ อาจไม่เหมาะสำหรับสภาพแวดล้อมที่อากาศรุนแรง
- ข้อจำกัดของ ESP32 WRoom 32U ที่ใช้งานอยู่ถึงแม้ไมโครคอนโทรลเลอร์ตัวนี้จะแรงเอาเรื่องในรุ่นราวคราวเดียวก้น แต่เมื่อทำงานงานหลายๆงาน ผมพบว่ามันหนักไม่ไหวและอีกอย่างคือแรม 512 KB มันน้อย ผมใช้หมดเหลือประมาณ 35% ตามสเป็คแล้วควรให้เหลือประมาณ 30% ก็ปริ่มๆ วิธีการแก้ข้อจำกัดของผมคือจะขยับไปใช้รุ่นที่แรงกว่าคือ ESP32 S3 N16R8 ที่ซีพียูดูอัลคอร์ที่แรงกว่า มีแรมมากกว่า
🚀 แผนพัฒนาต่อไป
ผมมีแผนจะพัฒนาระบบนี้ต่อไปในหลายด้าน:
- Data Logging: บันทึกข้อมูล Raw GNSS ลงใน SD Card หรือสื่อประเภทแฟลชเมโมรี เพื่อนำไป Post-Processing ภายหลัง
- Remote Monitoring: ส่งสถานะการทำงานไปแสดงผลบน Dashboard แบบ Real-time ผ่าน MQTT หรือ WebSocket
- Multi-Band Antenna: ทดลองใช้จานรับสัญญาณแบบ Survey-grade ที่รองรับความถี่ L1+L2+L5 อย่างเต็มรูปแบบ เนื่องจากของดีมีราคาระดับหลักหมื่นด้วยงบที่จำกัดจึงจำต้องใช้ของที่มีราคาถูกระดับหลักพันต้นๆไปก่อน
- Solar Power: ใช้ระบบจ่ายไฟด้วย Solar Panel + Battery เพื่อใช้งานในพื้นที่ห่างไกล เรื่องนี้เป็นเรื่องง่ายๆมีชุดนอนนาที่ราคา 2500-3500 บาท ที่ขายอยู่มากมาย
- OTA Update: เพิ่มฟีเจอร์ Over-The-Air firmware update เพื่ออัพเดต ESP32 ผ่านเน็ตได้โดยไม่ต้องถอดออกมา (ถ้าเปลี่ยนไปใช้ ESP32 N16R8)
- ให้ระบบพัดลมที่อยู่ข้างในสามารถเปิดปิดเองอัตโนมัติขึ้นอยู่กับอุณภูมิภายในกล่อง
- เปลี่ยนไมโครคอนโทรลเลอร์เป็น ESP21-N16R8 หรืออาจจะขยับไปยัง Orange PI Zero 3W


📦 ผู้สนับสนุนโครงการ
ขอขอบคุณคุณบัณฑิต คุ้มสูงสำหรับการเป็นสปอนเซอร์ในการสร้าง DIY รุ่นที่หนึ่งในครั้งนี้ และเท่าที่คุยกันจะมีรุ่นที่สองที่จะปรับปรุงและพัฒนาดังที่กล่าวมาแล้วข้างต้น เนื่องจากโค้ดที่ปรับปรุงใหม่จากของเก่าที่มีบั๊กพอสมควร อีกทั้งมีบั๊กใหม่ๆ ผมไม่พร้อมที่จะเปิดโค้ดเป็นสาธารณะในเวลาอันใกล้นี้
🎯 สรุป
การสร้าง DIY RTK Base Station ด้วย ESP32 และ UM980 เป็นโครงการที่ท้าทายแต่คุ้มค่าอย่างยิ่ง ไม่เพียงแต่ประหยัดต้นทุนได้มหาศาล แต่ยังได้เรียนรู้เทคโนโลลยี GNSS, RTK, Embedded System, และ Web Development ในเชิงลึก
ในการทำสถานีฐาน RTK ที่มีงบประมาณจำกัด และผมได้เรียนรู้เทคโนโลยีเหล่านี้ด้วยตัวเอง แม้จะมีอุปสรรคบ้างในระหว่างทาง แต่เมื่อได้เห็นระบบทำงานจริงและให้ผลลัพธ์ที่แม่นยำระดับเซนติเมตร ทำให้มีกำลังใจที่จะพัฒนาต่อไปครับ โปรดติตตามตอนต่อไปครับ








📚 อ้างอิง
- Unicorecomm UM980 Datasheet: https://en.unicorecomm.com/products/detail/24
- ESP-IDF Programming Guide: https://docs.espressif.com/projects/esp-idf/
- RTCM Standard 10403.3: https://rtcm.myshopify.com/
- RTKLib – Open Source GNSS Software: http://www.rtklib.com/
อัพเดทล่าสุด: ธันวาคม 2025
ได้รับความรู้ทางด้านนี้จาก Blog มากครับ
ขอบคุณครับ