ESP32 สร้างระบบนับคะแนนอัตโนมัติ ทำไมความโปร่งใสถึงสำคัญ

ESP32 สร้างระบบนับคะแนนอัตโนมัติ ทำไมความโปร่งใสถึงสำคัญ

ESP32 สร้างระบบนับคะแนนอัตโนมัติ ทำไมความโปร่งใสถึงสำคัญ

เรียนรู้วิธีสร้างระบบนับคะแนนแบบดิจิทัลอัตโนมัติด้วยไมโครคอนโทรลเลอร์ ESP32 จอแสดงผล TM1638 และควบคุมผ่าน Android Smartphone ด้วย Bluetooth

ESP32 Scoreboard ระบบนับคะแนนด้วย TM1638
ระบบนับคะแนนที่สำเร็จแล้วพร้อมใช้งานจริง

ภาพรวม

บทความนี้เป็นคู่มือเชื่อมต่อเพื่อสร้างระบบนับคะแนนแบบดิจิทัลที่ใช้งานได้จริง โปรเจคนี้เหมาะสำหรับ:

  • กีฬาและการแข่งขัน (ฟุตบอล วอลเลย์บอล บาสเกตบอล)
  • การแข่งขันเกม Esports หรือ Arcade
  • การเลือกสรรแบบโหวต (งาน บันเทิง)
  • โครงการเรียนการสอนหรือ STEM Education
  • โครงการสร้างความรู้เบื้องต้นเรื่อง IoT และ Embedded Systems

ระบบนี้ใช้ไฟ LED แบบ 7-segment display ที่สามารถแสดงตัวเลขได้ชัดเจน อ่านได้ง่าย และสามารถควบคุมได้ผ่าน Android Smartphone ด้วย Bluetooth Wireless

อุปกรณ์ที่ต้องใช้

ขั้นแรก คุณจะต้องเตรียมอุปกรณ์ดังต่อไปนี้:

1. ESP32 Microcontroller

บอร์ดคอมพิวเตอร์ขนาดเล็ก ติดตั้ง Bluetooth & WiFi ประมาณ 200-400 บาท

2. TM1638 Module

บอร์ดควบคุมจอ LED 7-segment display 8 หลัก พร้อมปุ่ม 8 ตัว ประมาณ 150-250 บาท

3. Jumper Wires

สายไฟสำหรับเชื่อมต่ออุปกรณ์ต่างๆ ประมาณ 50-100 บาท

4. USB Cable (Micro)

สำหรับให้ไฟฟ้าและอัปโหลดโปรแกรมให้กับ ESP32 ประมาณ 30-50 บาท

5. Power Supply (Optional)

หม้อแปลงไฟ 5V สำหรับให้ไฟระบบเมื่อต้องการใช้งานต่อเนื่อง ประมาณ 100-200 บาท

6. Smartphone + Android App

โทรศัพท์ Android สำหรับควบคุมผ่าน Bluetooth (ฟรี)

7. Arduino IDE

โปรแกรมเขียนโค้ด (ฟรี) ดาวน์โหลดจาก arduino.cc

งบประมาณทั้งหมด: ประมาณ 600-1,000 บาท (ไม่รวม Smartphone)

เรื่องราว

โปรเจคนี้เกิดขึ้นเพราะความต้องการสร้างระบบนับคะแนนที่:

  • เห็นได้ชัดเจน: จอ 7-segment LED แสดงตัวเลขได้ใหญ่และอ่านได้ไกล
  • ควบคุมได้ง่าย: ใช้ Bluetooth กับ Smartphone เพื่อลดปัญหาสายไฟยุ่งๆ
  • ราคาประหยัด: ใช้อุปกรณ์ยอดนิยมที่หาซื้อได้ง่ายในท้องตลาด
  • ยืดหยุ่นได้: สามารถนำมาปรับเปลี่ยนใช้งานในหลากหลายสถานการณ์
Breadboard Layout สำหรับ ESP32 Scoreboard
การต่อวงจรแบบบทบาท (Breadboard Layout)

เมื่อเห็นว่าสารัต (ทำให้งาน) จำเป็น ผู้พัฒนาจึงได้สร้างโปรเจคนี้ขึ้น ซึ่งกำลังได้รับความนิยมในวงการ Maker และผู้สนใจ Embedded Systems ทั่วโลก

หลักการทำงาน 7-Segment Display

7-Segment Display เป็นชิ้นส่วนอิเล็กทรอนิกส์ที่ใช้สำหรับแสดงตัวเลข 0-9 และบางตัวอักษรโดยการจุดไฟ LED 7 ตัวในรูปแบบที่กำหนดไว้

โครงสร้าง 7-Segment:

 _     (a)
|_|   (f,b)
|_|   (g)
      (e,c)
       (d)
          

ตัวอักษรแต่ละตัว (a ถึง g) คือ LED แยกตัว เมื่อเปิด-ปิดต่างๆ LED เหล่านี้ก็สามารถแสดงตัวเลขต่างๆ ได้

ตัวอย่าง Hex Values สำหรับตัวเลขต่างๆ:

  • 0 = 0x3F (เปิด a,b,c,d,e,f ปิด g)
  • 1 = 0x06 (เปิด b,c)
  • 2 = 0x5B (เปิด a,b,d,e,g)
  • 3 = 0x4F (เปิด a,b,c,d,g)
  • 4 = 0x66 (เปิด b,c,f,g)
  • 5 = 0x6D (เปิด a,c,d,f,g)
  • 6 = 0x7D (เปิด a,c,d,e,f,g)
  • 7 = 0x07 (เปิด a,b,c)
  • 8 = 0x7F (เปิด ทั้งหมด)
  • 9 = 0x6F (เปิด a,b,c,d,f,g)

ความสำคัญของความโปร่งใสในการออกแบบ 7-segment คือ การให้เห็นตัวเลขได้ชัดเจน ถ้า LED บางตัวสลับได้ไม่เต็มที่ หรือมีสีไม่สม่ำเสมอ ตัวเลขก็จะปะปนและอ่านได้ลำบากขึ้น

การเชื่อมต่อวงจร

ขั้นตอนการต่อวงจรระหว่าง ESP32 กับ TM1638:

ESP32 Pin 23 → TM1638 DIO (Data Input)

สำหรับส่งข้อมูล

ESP32 Pin 18 → TM1638 CLK (Clock)

สำหรับการซิงโครไนซ์ (ควบคุมเวลา)

ESP32 Pin 5 → TM1638 STB (Strobe/Chip Select)

สำหรับเลือกและเปิด-ปิดชิ้ป

ESP32 GND → TM1638 GND

ต่อลงดิน (Ground)

ESP32 5V → TM1638 VCC

ให้ไฟบวก

หลังจากต่อวงจรเรียบร้อย ให้ปล่อยไฟของ ESP32 ผ่านพอร์ต USB เพื่อให้แน่ใจว่าระบบทำงานปกติ

โค้ดหลัก

โค้ดพื้นฐานสำหรับควบคุม Scoreboard ทำงานดังนี้:

// Include Libraries
#include <TM1638.h>
#include <BluetoothSerial.h>

// Define Pins
#define DIO 23
#define CLK 18
#define STB 5

// Initialize
TM1638 module(DIO, CLK, STB);
BluetoothSerial SerialBT;

// Score Variables
int player1 = 0;
int player2 = 0;

void setup() {
  SerialBT.begin("ESP32_Scoreboard");
  module.setupDisplay(true, 7);
  displayScore();
}

void loop() {
  if (SerialBT.available()) {
    String data = SerialBT.readStringUntil('\n');
    
    if (data == "P1+") player1++;
    if (data == "P1-") player1--;
    if (data == "P2+") player2++;
    if (data == "P2-") player2--;
    if (data == "R") {
      player1 = 0;
      player2 = 0;
    }
    
    displayScore();
  }
}

void displayScore() {
  // แสดงคะแนน
  // หลักแรก 4 หลัก = Player 1
  // หลักสุดท้าย 4 หลัก = Player 2
}

คุณสามารถ:

  • ดาวน์โหลด Library ที่จำเป็นจาก GitHub
  • ติดตั้ง Arduino IDE สำหรับ ESP32
  • อัปโหลดโค้ดให้กับบอร์ด
  • ทดสอบการเชื่อมต่อ Bluetooth ด้วย Smartphone

ที่มาโค้ดเต็มรูปแบบ:

เครดิต

โปรเจคนี้อิงมาจากการรวมความรู้จากหลายแหล่ง:

วิดีโอการสาธิต

ดูตัวอย่างระบบทำงานจริง:

ต้องการสร้างระบบนับคะแนนของคุณเองหรือต้องการความรู้เพิ่มเติมเกี่ยวกับ ESP32

เรียนรู้เพิ่มเติมที่ Globalbyteshop

สอบถามเพิ่มเติมได้ที่กลุ่ม Line: คลิกที่นี่

แท็ก


Blog posts

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

    • PayPal

    เข้าสู่ระบบ

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

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