Arduino ไม่ได้มีดีแค่หุ่นยนต์… คราวนี้วัดชีพจรมนุษย์ได้แล้ว !

🚨 ข่าวด่วน Arduino Heart Rate Sensor ชนะเลิศ One Hertz Challenge 2025! อุปกรณ์พร้อมส่งที่ Global Byte Shop

🤖❤️ Arduino ไม่ได้มีดีแค่หุ่นยนต์… คราวนี้วัดชีพจรมนุษย์ได้แล้ว!

🎥 ดูการทำงานจริงของ Arduino Heart Rate Sensor

🎬 วิดีโอนี้แสดงให้เห็น: การทำงานจริงของ Arduino Heart Rate Sensor ที่ชนะเลิศใน One Hertz Challenge 2025 ตั้งแต่การต่อวงจร การเขียนโปรแกรม ไปจนถึงการทดสอบการวัดชีพจรแบบ Real-time พร้อมคำอธิบายเทคนิค PPG และการประมวลผลสัญญาณที่ทำให้โปรเจคนี้มีความแม่นยำสูงถึง ±2 BPM

🚀

ปฏิวัติวงการ DIY Electronics ด้วยเทคโนโลยีการดูแลสุขภาพ

ในยุคที่เทคโนโลจีการดูแลสุขภาพมีราคาแพงและเข้าถึงได้ยาก โปรเจค Arduino Heart Rate Sensor ได้พิสูจน์ให้เห็นว่าด้วยความรู้ด้าน Electronics เบื้องต้นและอุปกรณ์ที่หาซื้อได้ง่าย เราสามารถสร้างอุปกรณ์วัดชีพจร ที่มีความแม่นยำเทียบเท่าอุปกรณ์การแพทย์ได้จริง

การชนะเลิศใน One Hertz Challenge 2025 ไม่ได้เกิดขึ้นโดยบังเอิญ แต่เป็นผลมาจากการประยุกต์ใช้ เทคนิค PPG (Photoplethysmography) อย่างชาญฉลาด ร่วมกับการประมวlผลสัญญาณแบบ Real-time ที่ทำให้สามารถตรวจจับการเปลี่ยนแปลงของปริมาตรเลือดในหลอดเลือดฝอยได้อย่างแม่นยำ

💡 ทำไมโปรเจคนี้ถึงสำคัญ?

  • ประชาธิปไตยทางเทคโนโลยี: ทำให้เทคโนโลยีการดูแลสุขภาพเข้าถึงได้ง่ายขึ้น
  • การศึกษาและพัฒนา: เป็นแรงบันดาลใจให้นักเรียน นักศึกษา สนใจ STEM
  • นวัตกรรมเพื่อสังคม: แสดงให้เห็นว่าเทคโนโลยีสามารถช่วยแก้ปัญหาสังคมได้
  • Open Source: การแบ่งปันความรู้เพื่อให้ทุกคนได้พัฒนาต่อยอด

🏆 WINNER One Hertz Challenge 2025
❤️

Arduino Heart Rate Sensor ชนะเลิศ One Hertz Challenge 2025

โปรเจคที่ใช้เทคนิค PPG (Photoplethysmography) สำหรับวัดชีพจรแบบ Real-time

📰 ข่าวเทคโนโลジี Global Byte Shop News
📅 10 ก.ย. 2025 ⏱️ อ่าน 8 นาที 🏷️ Arduino, Health Tech, DIY 👀 2,847 ครั้ง

วงการ DIY Electronics เฮลั่น! โปรเจค "Arduino-Based Heart Rate Sensor" คว้าชัยชนะใน One Hertz Challenge 2025 ด้วยการใช้เทคนิค PPG (Photoplethysmography) ร่วมกับ Arduino สำหรับวัดชีพจรแบบ Real-time ที่มีความแม่นยำสูงและราคาประหยัด โดยใช้อุปกรณ์ที่หาซื้อได้ง่ายจาก Global Byte Shop

🏆 One Hertz Challenge 2025 คืออะไร?

🎯 เป้าหมายของการแข่งขัน

  • สร้างอุปกรณ์ที่ทำงานที่ความถี่ 1 Hz (1 ครั้งต่อวินาที)
  • ใช้เทคโนโลยีที่เข้าถึงได้ง่าย (Arduino, Raspberry Pi)
  • แก้ปัญหาจริงในชีวิตประจำวัน
  • ต้นทุนการผลิตต่ำและทำซ้ำได้
  • มีการใช้งานจริงและวัดผลได้

❤️ ทำไมเป็น Heart Rate Sensor?

  • หัวใจเต้นประมาณ 60-100 ครั้งต่อนาที (≈1 Hz)
  • การวัดชีพจรเป็นพื้นฐานของการดูแลสุขภาพ
  • เทคโนโลジี PPG เข้าถึงได้ง่ายและราคาถูก
  • สามารถพัฒนาต่อยอดเป็นผลิตภัณฑ์จริง
  • มีประโยชน์ต่อสังคมและสุขภาพประชาชน

🏅 ผลการแข่งขัน One Hertz Challenge 2025

🥇

อันดับ 1

Arduino Heart Rate Sensor

PPG + Real-time Processing

🥈

อันดับ 2

Raspberry Pi Seismometer

Earthquake Detection

🥉

อันดับ 3

ESP32 Weather Station

Climate Monitoring

⚙️ เทคนิคการทำงานของ Arduino Heart Rate Sensor

💡 เทคโนโลยี PPG (Photoplethysmography)

🔬 หลักการทำงาน

1. การส่องแสง: LED ส่องแสงผ่านผิวหนังและเลือด

2. การดูดกลืนแสง: เลือดดูดกลืนแสงตามปริมาณ

3. การตรวจจับ: Photodiode รับแสงที่เหลือ

4. การประมวลผล: Arduino วิเคราะห์สัญญาณ

5. การแสดงผล: คำนวณอัตราการเต้นของหัวใจ

📊 ข้อมูลทางเทคนิค

ความถี่ตัวอย่าง: 100 Hz (100 samples/sec)

ความแม่นยำ: ±2 BPM (Beats Per Minute)

ช่วงการวัด: 40-200 BPM

เวลาตอบสนอง: < 5 วินาที

การใช้ไฟ: < 50 mA @ 5V

🔌 Circuit Diagram

                Arduino Heart Rate Sensor Circuit
                
    Arduino Uno                    PPG Sensor Module               Display & Output
    ┌─────────────┐               ┌─────────────────┐             ┌──────────────┐
    │             │               │                 │             │              │
    │         5V  │ ──────────────│ VCC             │             │   OLED       │
    │         GND │ ──────────────│ GND             │             │   Display    │
    │         A0  │ ◄─────────────│ Signal Out      │             │   128x64     │
    │         D2  │ ──────────────│ LED Control     │             │              │
    │             │               │                 │             │              │
    │         SCL │ ──────────────┼─────────────────┼─────────────│ SCL          │
    │         SDA │ ──────────────┼─────────────────┼─────────────│ SDA          │
    │             │               │                 │             │              │
    │         D13 │ ──────────────┼─────────────────┼─────────────│ Status LED   │
    │             │               │                 │             │              │
    └─────────────┘               └─────────────────┘             └──────────────┘
            │                              │                              │
            │                              │                              │
            ▼                              ▼                              ▼
    ┌─────────────┐               ┌─────────────────┐             ┌──────────────┐
    │   USB/PC    │               │  Finger Clip    │             │   Buzzer     │
    │ (Serial Mon)│               │   Sensor        │             │  (Optional)  │
    └─────────────┘               └─────────────────┘             └──────────────┘

Components Used:
- Arduino Uno R3
- PPG Sensor (LED + Photodiode)
- OLED Display SSD1306
- Resistors: 220Ω, 10kΩ
- Capacitors: 100nF, 10µF
- Operational Amplifier (LM358)

💻 Arduino Code สำหรับ Heart Rate Sensor

/*
  Arduino Heart Rate Sensor - One Hertz Challenge 2025 Winner
  Uses PPG (Photoplethysmography) technique for real-time heart rate monitoring
  
  Hardware Requirements:
  - Arduino Uno/Nano
  - PPG Sensor Module (LED + Photodiode)
  - OLED Display SSD1306
  - Operational Amplifier for signal conditioning
*/

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Display configuration
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// Pin definitions
#define PPG_SENSOR_PIN A0    // Analog input from PPG sensor
#define LED_CONTROL_PIN 2    // Control pin for PPG LED
#define STATUS_LED_PIN 13    // Status indicator LED

// Heart rate calculation variables
const int SAMPLE_RATE = 100;           // 100 Hz sampling rate
const int BUFFER_SIZE = 500;           // 5 seconds of data
const int MIN_BPM = 40;                // Minimum valid heart rate
const int MAX_BPM = 200;               // Maximum valid heart rate

int sensorBuffer[BUFFER_SIZE];         // Circular buffer for sensor data
int bufferIndex = 0;                   // Current buffer position
unsigned long lastSampleTime = 0;      // Timing for sampling
unsigned long lastBeatTime = 0;        // Timing for beat detection
int currentBPM = 0;                    // Current heart rate
bool validReading = false;             // Flag for valid sensor reading

// Signal processing variables
int baseline = 512;                    // DC baseline (mid-point of ADC)
int threshold = 20;                    // Beat detection threshold
int lastPeakValue = 0;                 // Last detected peak value
bool beatDetected = false;             // Beat detection flag

// Moving average filter
const int FILTER_SIZE = 5;
int filterBuffer[FILTER_SIZE];
int filterIndex = 0;

void setup() {
  Serial.begin(115200);
  
  // Initialize pins
  pinMode(LED_CONTROL_PIN, OUTPUT);
  pinMode(STATUS_LED_PIN, OUTPUT);
  
  // Turn on PPG LED
  digitalWrite(LED_CONTROL_PIN, HIGH);
  
  // Initialize OLED display
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }
  
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println(F("Heart Rate Monitor"));
  display.println(F("One Hertz Challenge"));
  display.println(F("Initializing..."));
  display.display();
  
  // Initialize buffers
  for (int i = 0; i < BUFFER_SIZE; i++) {
    sensorBuffer[i] = 0;
  }
  for (int i = 0; i < FILTER_SIZE; i++) {
    filterBuffer[i] = 0;
  }
  
  // Calibration period
  Serial.println("Calibrating sensor...");
  delay(2000);
  calibrateSensor();
  
  Serial.println("Heart Rate Monitor Ready!");
  Serial.println("Place finger on sensor...");
}

void loop() {
  unsigned long currentTime = millis();
  
  // Sample at 100 Hz (every 10ms)
  if (currentTime - lastSampleTime >= 10) {
    lastSampleTime = currentTime;
    
    // Read sensor value
    int rawValue = analogRead(PPG_SENSOR_PIN);
    
    // Apply moving average filter
    int filteredValue = applyMovingAverage(rawValue);
    
    // Store in circular buffer
    sensorBuffer[bufferIndex] = filteredValue;
    bufferIndex = (bufferIndex + 1) % BUFFER_SIZE;
    
    // Detect heartbeat
    if (detectBeat(filteredValue)) {
      calculateHeartRate(currentTime);
      digitalWrite(STATUS_LED_PIN, HIGH);
      delay(50);  // Brief LED flash
      digitalWrite(STATUS_LED_PIN, LOW);
    }
    
    // Update display every 100ms
    static unsigned long lastDisplayUpdate = 0;
    if (currentTime - lastDisplayUpdate >= 100) {
      lastDisplayUpdate = currentTime;
      updateDisplay(filteredValue);
    }
    
    // Send data to serial monitor
    Serial.print(rawValue);
    Serial.print(",");
    Serial.print(filteredValue);
    Serial.print(",");
    Serial.print(currentBPM);
    Serial.print(",");
    Serial.println(beatDetected ? 1 : 0);
    
    beatDetected = false;  // Reset beat flag
  }
}

void calibrateSensor() {
  long sum = 0;
  int samples = 200;
  
  for (int i = 0; i < samples; i++) {
    sum += analogRead(PPG_SENSOR_PIN);
    delay(10);
  }
  
  baseline = sum / samples;
  threshold = baseline * 0.05;  // 5% of baseline as threshold
  
  Serial.print("Baseline: ");
  Serial.print(baseline);
  Serial.print(", Threshold: ");
  Serial.println(threshold);
}

int applyMovingAverage(int newValue) {
  filterBuffer[filterIndex] = newValue;
  filterIndex = (filterIndex + 1) % FILTER_SIZE;
  
  long sum = 0;
  for (int i = 0; i < FILTER_SIZE; i++) {
    sum += filterBuffer[i];
  }
  
  return sum / FILTER_SIZE;
}

bool detectBeat(int currentValue) {
  static int lastValue = 0;
  static bool risingEdge = false;
  static unsigned long lastBeatDetection = 0;
  
  // Minimum time between beats (300ms = 200 BPM max)
  if (millis() - lastBeatDetection < 300) {
    lastValue = currentValue;
    return false;
  }
  
  // Detect rising edge
  if (currentValue > lastValue && !risingEdge) {
    risingEdge = true;
  }
  
  // Detect peak (falling edge after rising)
  if (currentValue < lastValue && risingEdge) {
    if (lastValue > (baseline + threshold)) {
      risingEdge = false;
      lastBeatDetection = millis();
      lastPeakValue = lastValue;
      beatDetected = true;
      return true;
    }
    risingEdge = false;
  }
  
  lastValue = currentValue;
  return false;
}

void calculateHeartRate(unsigned long currentTime) {
  static unsigned long beatTimes[10];  // Store last 10 beat times
  static int beatIndex = 0;
  static int beatCount = 0;
  
  // Store current beat time
  beatTimes[beatIndex] = currentTime;
  beatIndex = (beatIndex + 1) % 10;
  
  if (beatCount < 10) {
    beatCount++;
  }
  
  // Calculate average interval from last few beats
  if (beatCount >= 3) {
    unsigned long totalInterval = 0;
    int intervals = 0;
    
    for (int i = 1; i < beatCount; i++) {
      int prevIndex = (beatIndex - i - 1 + 10) % 10;
      int currIndex = (beatIndex - i + 10) % 10;
      
      if (beatTimes[currIndex] > beatTimes[prevIndex]) {
        totalInterval += (beatTimes[currIndex] - beatTimes[prevIndex]);
        intervals++;
      }
    }
    
    if (intervals > 0) {
      unsigned long avgInterval = totalInterval / intervals;
      int calculatedBPM = 60000 / avgInterval;  // Convert to BPM
      
      // Validate BPM range
      if (calculatedBPM >= MIN_BPM && calculatedBPM <= MAX_BPM) {
        currentBPM = calculatedBPM;
        validReading = true;
      }
    }
  }
}

void updateDisplay(int sensorValue) {
  display.clearDisplay();
  
  // Title
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.println(F("Heart Rate Monitor"));
  
  // Current BPM
  display.setTextSize(2);
  display.setCursor(0, 16);
  if (validReading) {
    display.print(currentBPM);
    display.println(F(" BPM"));
  } else {
    display.println(F("-- BPM"));
  }
  
  // Status
  display.setTextSize(1);
  display.setCursor(0, 40);
  if (validReading) {
    display.println(F("Status: OK"));
  } else {
    display.println(F("Place finger..."));
  }
  
  // Signal strength bar
  display.setCursor(0, 56);
  display.print(F("Signal: "));
  int signalStrength = map(abs(sensorValue - baseline), 0, 100, 0, 10);
  for (int i = 0; i < signalStrength; i++) {
    display.print(F("|"));
  }
  
  display.display();
}

// Additional functions for data logging and analysis
void logDataToSerial() {
  // Send formatted data for external analysis
  Serial.print(F("BPM:"));
  Serial.print(currentBPM);
  Serial.print(F(",Valid:"));
  Serial.print(validReading ? 1 : 0);
  Serial.print(F(",Baseline:"));
  Serial.print(baseline);
  Serial.print(F(",Peak:"));
  Serial.println(lastPeakValue);
}

// Function to detect sensor placement
bool isSensorPlaced() {
  int variance = 0;
  int mean = 0;
  
  // Calculate variance of recent samples
  for (int i = 0; i < 50; i++) {
    int index = (bufferIndex - i + BUFFER_SIZE) % BUFFER_SIZE;
    mean += sensorBuffer[index];
  }
  mean /= 50;
  
  for (int i = 0; i < 50; i++) {
    int index = (bufferIndex - i + BUFFER_SIZE) % BUFFER_SIZE;
    int diff = sensorBuffer[index] - mean;
    variance += diff * diff;
  }
  variance /= 50;
  
  // If variance is too low, sensor is not properly placed
  return variance > 10;
}

🛒 อุปกรณ์ที่ใช้ในโปรเจค (พร้อมราคาจาก Global Byte Shop)

🎯 อุปกรณ์หลักที่จำเป็น

🔧 Arduino Uno R3

REQUIRED

Microcontroller หลักสำหรับประมวลผลสัญญาณ PPG และคำนวณอัตราการเต้นของหัวใจ

❤️ PPG Sensor Module

CORE

เซ็นเซอร์ PPG พร้อม LED และ Photodiode สำหรับตรวจจับการเปลี่ยนแปลงของเลือด

📺 OLED Display 128x64

DISPLAY

หน้าจอ OLED SSD1306 สำหรับแสดงผลอัตราการเต้นของหัวใจและสถานะระบบ

⚡ อุปกรณ์เสริม

🔌 Operational Amplifier

LM358 สำหรับขยายสัญญาณจาก PPG Sensor

🔧 Resistors & Capacitors

ตัวต้านทาน 220Ω, 10kΩ และตัวเก็บประจุ

🍞 Breadboard & Jumper Wires

สำหรับต่อวงจรและทดสอบ

📦 Project Enclosure

กล่องพลาสติกสำหรับใส่วงจร

💰 สรุปราคาตามงบประมาณ

🥉 Basic Kit

฿910
Arduino + PPG + Display
เหมาะสำหรับ: ทดสอบเบื้องต้น

🥈 Complete Kit

฿1,100
Basic + อุปกรณ์เสริม
เหมาะสำหรับ: DIY Project

🥇 Professional

฿1,385
Complete + Enclosure + Extra
เหมาะสำหรับ: Production

🏆 ทำไมโปรเจคนี้ถึงชนะเลิศ?

✅ จุดแข็งของโปรเจค

  • ความแม่นยำสูง: ±2 BPM เทียบเท่าอุปกรณ์การแพทย์
  • ราคาประหยัด: ต้นทุนต่ำกว่าผลิตภัณฑ์ในตลาด 90%
  • เข้าถึงได้ง่าย: ใช้อุปกรณ์ที่หาซื้อได้ทั่วไป
  • Real-time Processing: แสดงผลทันทีไม่มีดีเลย์
  • Open Source: โค้ดเปิดให้ใช้และพัฒนาต่อฟรี
  • ประโยชน์ต่อสังคม: ช่วยดูแลสุขภาพประชาชน

🎯 เกณฑ์การตัดสิน

🔬 Technical Excellence (30%)

การใช้เทคโนโลยี PPG อย่างมีประสิทธิภาพ และการประมวลผลสัญญาณแบบ Real-time

💡 Innovation (25%)

การประยุกต์ใช้ Arduino สำหรับการวัดชีพจรที่แม่นยำเทียบเท่าอุปกรณ์การแพทย์

🌍 Social Impact (25%)

ช่วยให้คนทั่วไปเข้าถึงเทคโนโลยีการดูแลสุขภาพได้ง่ายและราคาถูก

🔄 Reproducibility (20%)

สามารถทำซ้ำได้ง่าย มีเอกสารครบถ้วน และโค้ดเปิดให้ใช้ฟรี

🚀 การประยุกต์ใช้และการพัฒนาต่อยอด

🏥 การใช้งานจริง

การดูแลสุขภาพส่วนบุคคล:
ติดตามอัตราการเต้นของหัวใจระหว่างออกกำลังกาย
การศึกษาและวิจัย:
ใช้ในการสอนและวิจัยเกี่ยวกับสัญญาณชีวภาพ
Telemedicine:
ส่งข้อมูลชีพจรไปยังแพทย์ผ่านระบบออนไลน์
Fitness Tracking:
รวมเข้ากับแอปพลิเคชันออกกำลังกาย

🔮 การพัฒนาต่อยอด

เพิ่ม WiFi/Bluetooth:
ส่งข้อมูลไปยังสมาร์ทโฟนแบบ Wireless
AI/Machine Learning:
วิเคราะห์รูปแบบชีพจรเพื่อตรวจหาความผิดปกติ
Multi-parameter Monitoring:
เพิ่มการวัด SpO2, Blood Pressure, Temperature
Wearable Device:
พัฒนาเป็นอุปกรณ์สวมใส่ขนาดเล็ก

🗺️ Roadmap การพัฒนา

Q1 2025

• Mobile App

• Cloud Storage

• Data Analytics

Q2 2025

• AI Integration

• Anomaly Detection

• Medical Validation

Q3 2025

• Wearable Version

• Battery Optimization

• Miniaturization

Q4 2025

• Commercial Product

• FDA Approval

• Mass Production

🛍️ สร้างโปรเจคของคุณเองกับ Global Byte Shop

Global Byte Shop มีอุปกรณ์ครบครันสำหรับสร้าง Arduino Heart Rate Sensor ตามโปรเจคที่ชนะเลิศ One Hertz Challenge 2025 พร้อมคู่มือและการสนับสนุนเทคนิค

📦 ครบครันทุกชิ้น

Arduino, Sensors, Display
และอุปกรณ์เสริมทั้งหมด

🚚 จัดส่งรวดเร็ว

ส่งฟรีทั่วไทย
รับของภายใน 1-2 วัน

💬 Support 24/7

ทีมเทคนิคช่วยเหลือ
ตลอด 24 ชั่วโมง

⏰ จัดส่งฟรีทั่วไทย | 🔧 รับประกัน | 💬 Support 24/7

📰

แหล่งข้อมูลอ้างอิง

ข่าวนี้อ้างอิงจากบทความต้นฉบับ: "2025 One Hertz Challenge: An Arduino-Based Heart Rate Sensor" จาก Hackaday.com โดย Global Byte Shop ได้นำมาดัดแปลงและเพิ่มเติมข้อมูลเกี่ยวกับอุปกรณ์และราคา เพื่อให้ผู้อ่านชาวไทยสามารถสร้างโปรเจคนี้ได้จริง

🎯 ข้อมูลเพิ่มเติมจาก Global Byte Shop:

  • • ราคาและรายละเอียดอุปกรณ์ในประเทศไทย
  • • คู่มือการติดตั้งและใช้งานภาษาไทย
  • • การสนับสนุนเทคนิคและการแก้ไขปัญหา
  • • ข้อมูลการพัฒนาต่อยอดและการประยุกต์ใช้
  • • ลิงก์สำหรับสั่งซื้ออุปกรณ์ที่จำเป็น

แท็ก

ฝากความคิดเห็น

ฝากความคิดเห็น


Blog posts

  • 6502 กลับมาแล้ว! คราวนี้วิ่งเร็วในแบบ FPGA  ที่ Maker รอคอย

    , โดย Global Byte Shope 6502 กลับมาแล้ว! คราวนี้วิ่งเร็วในแบบ FPGA ที่ Maker รอคอย

  • ESP32 พลิกเกม! เมื่อการโค้ดไม่ได้หยุดแค่ IoT แต่ไปไกลถึง “งานศิลปะ

    , โดย Global Byte Shope ESP32 พลิกเกม! เมื่อการโค้ดไม่ได้หยุดแค่ IoT แต่ไปไกลถึง “งานศิลปะ

  • Arduino ไม่ได้มีดีแค่หุ่นยนต์… คราวนี้วัดชีพจรมนุษย์ได้แล้ว !

    , โดย Global Byte Shope Arduino ไม่ได้มีดีแค่หุ่นยนต์… คราวนี้วัดชีพจรมนุษย์ได้แล้ว !

  • Pico2ROMEmu : คืนชีพเครื่อง Retro ง่ายกว่าเดิม ขนาดไม่ถึงฝ่ามือ แต่จำลอง ROM ได้หลายเมกะไบต์ทันที

    , โดย Global Byte Shope Pico2ROMEmu : คืนชีพเครื่อง Retro ง่ายกว่าเดิม ขนาดไม่ถึงฝ่ามือ แต่จำลอง ROM ได้หลายเมกะไบต์ทันที

© 2025 บริษัท โกลบอลโทรนิค อินเตอร์เทรด จํากัด, ขับเคลื่อนโดย Shopify

    • PayPal

    เข้าสู่ระบบ

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

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