บทความ: Velxio - Simulator โอเพนซอร์สสำหรับ Arduino, ESP32 และ Raspberry Pi

เรียนรู้วิธีการใช้งาน Velxio Simulator ที่ช่วยให้คุณจำลองการทำงานของ Arduino, ESP32 และ Raspberry Pi ในโปรเจกต์เดียว โดยไม่ต้องมีฮาร์ดแวร์จริง พร้อมโค้ดตัวอย่างและคำอธิบายภาษาไทย

📅 7 เมษายน 2026⏱️ 15 นาที🎯 ระดับกลาง

Velxio คืออะไร?

Velxio เป็นเครื่องมือจำลองการทำงานของไมโครคอนโทรลเลอร์และคอมพิวเตอร์แบบบอร์ดเดียว (Single Board Computer) แบบโอเพนซอร์ส ที่ช่วยให้คุณสามารถจำลองการทำงานของ Arduino, ESP32, และ Raspberry Pi ในโปรเจกต์เดียวกันได้ โดยไม่ต้องลงทุนซื้อฮาร์ดแวร์จริง

ทำไมต้องใช้ Velxio?

💰

ประหยัดค่าใช้จ่าย

ไม่ต้องซื้อบอร์ดและอุปกรณ์เสริมจริง ทดสอบโค้ดได้ฟรี

รวดเร็วทันใจ

อัปโหลดและทดสอบโค้ดได้ทันที ไม่ต้องรอบอร์ดจริง

🔗

Multi-Board Simulation

จำลอง Arduino, ESP32, และ Raspberry Pi พร้อมกันในโปรเจกต์เดียว

🔒

Self-Hosted

ติดตั้งบนเครื่องของคุณเอง ควบคุมข้อมูลได้เอง

คุณสมบัติหลักของ Velxio

🎯 1. Multi-Board Simulation

Velxio ช่วยให้คุณสามารถจำลองการทำงานของบอร์ดหลายๆ บอร์ดพร้อมกันในโปรเจกต์เดียว เหมาะสำหรับ:

  • IoT Gateway Projects: ESP32 รับส่งข้อมูลกับ Arduino
  • Edge Computing: Raspberry Pi ประมวลผลข้อมูลจาก ESP32
  • Distributed Systems: บอร์ดหลายตัวทำงานร่วมกัน

🌐 2. Inter-Board Communication

รองรับการสื่อสารระหว่างบอร์ดผ่าน:

  • Serial/UART: การสื่อสารแบบอนุกรม
  • I2C: การเชื่อมต่อเซ็นเซอร์และอุปกรณ์
  • SPI: การสื่อสารความเร็วสูง
  • Network: MQTT, HTTP, WebSocket

🐳 3. Docker Integration

ติดตั้งและใช้งานง่ายด้วย Docker:

# ติดตั้ง Velxio ด้วย Docker
docker pull velxio/simulator
docker run -p 8080:8080 velxio/simulator

🖥️ 4. Web Interface

ควบคุมและตรวจสอบการทำงานของบอร์ดผ่านเว็บเบราว์เซอร์:

  • Serial Monitor: ดูข้อมูลที่ส่งออกจากบอร์ด
  • Pin State Viewer: ตรวจสอบสถานะของ GPIO
  • Code Editor: เขียนและแก้ไขโค้ดได้โดยตรง
  • Real-time Debugging: ตรวจสอบการทำงานแบบ Real-time

เปรียบเทียบ Velxio vs Wokwi

ฟีเจอร์VelxioWokwi
Self-Hosted
Raspberry Pi Support
Multi-Board Projects⚠️
Docker Support
Web Interface
Arduino Library Support

สรุป: Velxio เหมาะสำหรับผู้ที่ต้องการ Self-hosted solution และต้องการจำลอง Raspberry Pi ควบคู่กับ Arduino/ESP32 ในขณะที่ Wokwi เหมาะสำหรับการเริ่มต้นเรียนรู้และการทดสอบโปรเจกต์พื้นฐาน

การติดตั้ง Velxio

ข้อกำหนดเบื้องต้น (Prerequisites)

Hardware Requirements

  • CPU: Dual-core processor ขึ้นไป
  • RAM: 4GB ขึ้นไป (แนะนำ 8GB)
  • Storage: 10GB พื้นที่ว่าง

Software Requirements

  • Docker: 20.10 ขึ้นไป
  • Docker Compose: 1.29 ขึ้นไป (ไม่บังคับ)
  • Web Browser: Chrome, Firefox, Safari ล่าสุด

วิธีการติดตั้ง

วิธีที่ 1: ใช้ Docker (แนะนำ)

# ดึง Docker Image ล่าสุด
docker pull velxio/simulator:latest

# เรียกใช้ Velxio บนพอร์ต 8080
docker run -d \
  --name velxio \
  -p 8080:8080 \
  velxio/simulator:latest

# เข้าถึง Web Interface
# เปิดเบราว์เซอร์ไปที่ http://localhost:8080

วิธีที่ 2: ติดตั้งแบบ Manual

# Clone โปรเจกต์จาก GitHub
git clone https://github.com/velxio/simulator.git
cd simulator

# ติดตั้ง Dependencies
npm install

# เรียกใช้ Velxio
npm start

# เข้าถึง Web Interface
# เปิดเบราว์เซอร์ไปที่ http://localhost:3000

โปรเจกต์แรก: Arduino ESP32 Blink

มาสร้างโปรเจกต์แรกกันเถอะ! เราจะทำให้ Arduino ส่งข้อความไปยัง ESP32 ผ่าน Serial Communication

Step 1: สร้างโปรเจกต์ใหม่

  1. เปิด Web Interface ที่ http://localhost:8080
  2. คลิกที่ปุ่ม "New Project"
  3. ตั้งชื่อโปรเจกต์: arduino-esp32-blink
  4. เลือกบอร์ด: Arduino Uno และ ESP32 DevKit
  5. คลิก "Create"

Step 2: เขียนโค้ด Arduino

// Arduino Sender - ส่งข้อความไปยัง ESP32

const int ledPin = 13;  // LED บน Arduino Uno

void setup() {
  Serial.begin(9600);           // เปิด Serial ที่ 9600 baud
  pinMode(ledPin, OUTPUT);      // ตั้งค่า LED pin เป็น output

  Serial.println("Arduino Ready!");
}

void loop() {
  // กระพริบ LED
  digitalWrite(ledPin, HIGH);   // เปิด LED
  delay(1000);                   // รอ 1 วินาที
  digitalWrite(ledPin, LOW);    // ปิด LED
  delay(1000);                   // รอ 1 วินาที

  // ส่งข้อความไปยัง ESP32
  Serial.println("Hello ESP32!");
}

Step 3: เขียนโค้ด ESP32

// ESP32 Receiver - รับข้อความจาก Arduino

const int ledPin = 2;  // LED บน ESP32 DevKit

void setup() {
  Serial.begin(9600);           // เปิด Serial ที่ 9600 baud
  pinMode(ledPin, OUTPUT);      // ตั้งค่า LED pin เป็น output

  Serial.println("ESP32 Ready!");
}

void loop() {
  // ตรวจสอบข้อมูลที่เข้ามาทาง Serial
  if (Serial.available()) {
    String message = Serial.readStringUntil('\n');

    // แสดงข้อความที่รับมา
    Serial.print("Received: ");
    Serial.println(message);

    // กระพริบ LED เมื่อได้รับข้อความ
    if (message.indexOf("Hello") >= 0) {
      digitalWrite(ledPin, HIGH);
      delay(200);
      digitalWrite(ledPin, LOW);
    }
  }
}

Step 4: เชื่อมต่อบอร์ด

ใน Velxio คุณสามารถเชื่อมต่อบอร์ดผ่าน Serial Communication ได้ง่ายๆ:

  1. คลิกที่ "Add Connection"
  2. เลือก From: Arduino Uno
  3. เลือก To: ESP32 DevKit
  4. เลือก Type: Serial/UART
  5. คลิก "Connect"

Step 5: ทดสอบโปรเจกต์

  1. คลิก "Run Simulation"
  2. ดู Serial Monitor ทั้ง 2 บอร์ด
  3. สังเกตว่า ESP32 รับข้อความ "Hello ESP32!" และกระพริบ LED

เทคนิคขั้นสูง

1. Multi-Board Projects

สร้างโปรเจกต์ที่ซับซ้อนด้วย Arduino + ESP32 + Raspberry Pi:

  • Arduino: อ่านค่าเซ็นเซอร์
  • ESP32: ส่งข้อมูลผ่าน WiFi
  • Raspberry Pi: ประมวลผลและบันทึกข้อมูล

2. Custom Libraries

Velxio รองรับ Arduino Libraries ส่วนใหญ่:

  • Sensor Libraries: DHT, BME280, MQ135
  • Communication: Wire (I2C), SPI
  • Networking: WiFi, MQTT, HTTPClient

3. Debugging

ใช้เครื่องมือ Debugging ในตัว:

  • Serial Monitor: ดูข้อมูลที่ส่งออก
  • Pin State Viewer: ตรวจสอบ GPIO
  • Breakpoints: หยุดโปรแกรมชั่วคราว

4. Performance Optimization

เพิ่มประสิทธิภาพการทำงาน:

  • ลดจำนวน Serial.print: ใช้ระดับการแสดงผลที่เหมาะสม
  • ใช้ Non-blocking Delays: ใช้ millis() แทน delay()
  • ปิดฟีเจอร์ที่ไม่ใช้: ลดการใช้งาน CPU

การแก้ปัญหาที่พบบ่อย

❓ ไม่สามารถเชื่อมต่อกับ Velxio ได้

สาเหตุ: Docker container ไม่ได้ทำงาน หรือพอร์ตถูกใช้งานอยู่

วิธีแก้:

# ตรวจสอบ container ที่ทำงานอยู่
docker ps

# หยุด container ถ้าจำเป็น
docker stop velxio

# ลบ container ถ้าจำเป็น
docker rm velxio

# เรียกใช้ใหม่
docker run -d --name velxio -p 8080:8080 velxio/simulator

❓ บอร์ดไม่ทำงานตามที่คาดหวัง

สาเหตุ: โค้ดมีข้อผิดพลาด หรือ Library ไม่รองรับ

วิธีแก้:

  • ตรวจสอบ Serial Monitor สำหรับ Error Messages
  • ตรวจสอบว่า Library ที่ใช้รองรับบน Velxio
  • ทดสอบโค้ดบนบอร์ดจริงเพื่อยืนยัน

❓ การสื่อสารระหว่างบอร์ดไม่ทำงาน

สาเหตุ: การเชื่อมต่อไม่ถูกต้อง หรือ Baud rate ไม่ตรงกัน

วิธีแก้:

  • ตรวจสอบว่าบอร์ดทั้ง 2 ตัวใช้ Baud rate เดียวกัน
  • ตรวจสอบการเชื่อมต่อ Serial/UART
  • ทดสอบด้วยโค้ดง่ายๆ ก่อน

สรุป

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

  • ประหยัดเวลาและค่าใช้จ่าย ในการทดสอบโปรเจกต์
  • จำลอง Multi-Board Projects ที่ซับซ้อน
  • เรียนรู้และทดลอง กับบอร์ดต่างๆ โดยไม่ต้องซื้อจริง
  • Self-hosted ควบคุมข้อมูลได้เอง

ถัดไป

  • ลองสร้าง IoT Gateway Project ด้วย ESP32 + Raspberry Pi
  • ศึกษา ESP32 Tutorials เพิ่มเติม
  • เชื่อมต่อกับ CynoIoT Platform สำหรับ IoT Projects
  • อ่านเพิ่มเติมเกี่ยวกับ Arduino Programming