Skip to content

Latest commit

 

History

History
110 lines (85 loc) · 5.01 KB

File metadata and controls

110 lines (85 loc) · 5.01 KB

Smart Voting Machine

รายละเอียดโครงงาน

ระบบลงคะแนนเสียงอิเล็กทรอนิกส์อัจฉริยะ ใช้ ESP32, Arduino UNO R3, ODROID C4 สำหรับยืนยันตัวตน/ลงคะแนน/แสดงผล-เก็บข้อมูลแบบ real-time

ฟีเจอร์เด่น

  • ยืนยันตัวตน 2 ชั้น (RFID + Fingerprint)re
  • จำกัดสิทธิ์โหวต 1 คน 1 สิทธิ์
  • Web Dashboard แสดงผลคะแนนแบบ real-time
  • ฟังก์ชัน Admin (สมัคร/ลบ/รีเซ็ต/ดูคะแนน)
  • AI Camera ปลุกระบบอัตโนมัติ

Block Diagram: Smart Voting Machine

  • User
    ⬇ แตะบัตร / วางนิ้ว / กดปุ่ม

  • 1. ESP32 (Main Controller)

    • รับข้อมูลจาก RFID, Fingerprint, Keypad, TFT Display
    • เชื่อมต่อกับ Arduino UNO R3 (UART)
    • เชื่อมต่อกับ ODROID C4 (WiFi/HTTP)
    • จัดการ EEPROM (เก็บสถานะบัตร/โหวต)
  • 2. Arduino UNO R3 (UI/Keypad)

    • รับอินพุตจาก Matrix Keypad
    • แสดงข้อความบน LCD 20x4
    • สื่อสารกับ ESP32 ด้วย UART
  • 3. ODROID C4 (Backend & Dashboard)

    • รัน Flask/FastAPI รับข้อมูลโหวตจาก ESP32
    • บันทึกผลลงฐานข้อมูล SQLite
    • แสดง Dashboard web (real-time)
    • AI Camera ตรวจจับคน/ปลุก ESP32 (GPIO)
  • 4. Peripheral Devices

    • RFID RC522 (SPI)
    • Fingerprint AS608 (UART)
    • TFT LCD ILI9341 (SPI)
    • Ultrasonic Sensor HC-SR04 (GPIO)
    • Power Supply
    • Thermal Printer

การเชื่อมต่อหลัก:

  • ESP32 <-> Arduino UNO R3 : UART (Serial)
  • ESP32 <-> ODROID C4: WiFi (HTTP API), GPIO Wake
  • ESP32 <-> Peripheral : SPI/I2C/UART/GPIO
  • ODROID N2+ <-> AI Camera : USB

ตัวอย่างภาพรวม (Flow):

  1. User เริ่มต้น ➡ แตะบัตร ➡ วางนิ้ว ➡ เลือกผู้สมัคร ➡ กดยืนยัน
  2. ESP32 ประมวลผล ➡ ส่งผลไปยัง ODROID C4 ➡ บันทึกผล/อัปเดต Dashboard
  3. Arduino UNO R3 รับอินพุต/แสดงผลข้อความ
  4. ODROID C4 ตรวจจับผู้ใช้ด้วย AI Camera ➡ ปลุก ESP32 เมื่อมีคนเข้าใกล้
  5. Web Dashboard แสดงผลคะแนน/กิจกรรมแบบ real-time

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

  • ESP32 DevKitC
  • Arduino UNO R3
  • ODROID C4
  • MFRC522 RFID Module
  • AS608 Fingerprint Sensor
  • TFT ILI9341 2.4"
  • Ultrasonic Sensor HC-SR04
  • LCD 20x4 + Keypad 4x4

ซอฟต์แวร์และไลบรารี

  • PlatformIO, Arduino IDE
  • Python 3.8+, FastAPI, SQLite, OpenCV
  • Arduino Lib: MFRC522, Adafruit_Fingerprint, TFT_eSPI, LiquidCrystal_I2C, Keypad

วิธีเริ่มต้นใช้งาน

  1. Clone repository:
    git clone ...
  2. อัปโหลดโค้ด ESP32 และ Arduino ตามคู่มือ
  3. รัน backend:
    cd backend && python app.py
  4. เข้าชม Dashboard:
    http://<ip-odroid>:5000/

วิธีใช้งาน

  • แตะบัตร/วางนิ้ว → เลือกผู้สมัคร → กดยืนยัน
  • Admin Mode: Hold REGISTER/DELETE/ SCORE 3s แล้วใส่ PIN
  • Dashboard: ดูผลคะแนน, อัปโหลดรูป, export ข้อมูล

ตัวอย่างหน้าจอ

image image image

รายชื่อผู้จัดทำ

  • นายกรวิทย์ กอหลัง
  • นายพชรพล ศุกลสกุล

รายวิชา

240-319 Embedded System Developer Module

Reference / Datasheet

วิดีโอสาธิตการใช้งาน