สร้างระบบสวิตช์สัมผัสอัจฉริยะด้วย ESP32, Touch Sensor, จอ LCD และ LED

เคยเบื่อกับปุ่มกดแบบกลไก (Mechanical buttons) ที่กดยาก เสียงดัง หรือเสื่อมสภาพไวไหมครับ? ในอุปกรณ์ยุคใหม่ ไม่ว่าจะเป็นสมาร์ทโฟน โคมไฟ หรือแผงควบคุม Smart Home ต่างก็หันมาใช้ "ระบบสัมผัส" กันหมดแล้ว เพราะมันดูโมเดิร์นและตอบสนองได้ดีกว่า

วันนี้เราจะมาลุยโปรเจกต์สนุกๆ โดยการนำบอร์ด ESP32 มาจับคู่กับ Touch Sensor (TTP223) เมื่อมีคนเอานิ้วไปแตะ บอร์ดจะรับสัญญาณไปสั่งให้ไฟ LED สว่างขึ้น พร้อมโชว์ข้อความแจ้งเตือนบนหน้าจอ LCD ทันที! ระบบนี้ต่อยอดไปทำสวิตช์ไฟหรือระบบรักษาความปลอดภัยในบ้านได้สบายๆ เลยครับ

คลิกเพื่อดูวิดีโอสาธิตการทำงานมุมอื่นๆ (View More)

รายการอุปกรณ์ (Supplies)

  • บอร์ด ESP32 Dev Module
  • โมดูลเซ็นเซอร์สัมผัส Touch Sensor Module (TTP223B)
  • หน้าจอ LCD Display (พร้อมโมดูล I2C)
  • หลอดไฟ LED
  • แผงทดลองวงจร (Breadboard) และ สายจัมเปอร์ (Jumper wires)
ESP32 Board
คลิกเพื่อดูรูปอุปกรณ์เพิ่มเติม (View More)
ESP32 Alt
Touch Sensor

Step 1: ทำความรู้จัก Touch Sensor (TTP223)

โมดูล TTP223 เป็นสวิตช์สัมผัสแบบคาปาซิทีฟ (Capacitive touch switch) หลักการทำงานของมันคือ "การวัดค่าประจุไฟฟ้าที่เปลี่ยนไป" เมื่อผิวหนังของเราไปสัมผัสหรือเข้าใกล้แผ่นเซ็นเซอร์ มันไม่ต้องการแรงกดทางกลไกเลย แค่แตะเบาๆ เซ็นเซอร์ก็จะส่งสัญญาณดิจิทัลออกไปให้ไมโครคอนโทรลเลอร์ (ESP32) ทันที มีขาสัญญาณง่ายๆ แค่ 3 ขา คือ VCC, GND และ OUT (SIG)

Step 2: การต่อวงจร (Connections)

การต่อสายไฟในโปรเจกต์นี้ไม่ซับซ้อนครับ ให้ต่ออุปกรณ์เข้ากับบอร์ด ESP32 ตามนี้เลย:

การต่อ Touch Sensor:

  • VCC ต่อเข้ากับ 3.3V
  • GND ต่อเข้ากับ GND
  • OUT (หรือ SIG) ต่อเข้ากับ GPIO 4

การต่อหน้าจอ LCD (ผ่าน I2C):

  • VCC ต่อเข้ากับ 5V
  • GND ต่อเข้ากับ GND
  • SDA ต่อเข้ากับ GPIO 13
  • SCL ต่อเข้ากับ GPIO 14

การต่อหลอด LED:

  • ขาบวก (+) ต่อเข้ากับ GPIO 26
  • ขาลบ (-) ต่อเข้ากับ GND
คลิกเพื่อดูรูปภาพการตั้งค่าและการต่อสาย (View More)
Connection Details 1
Connection Details 2

Step 3: โค้ดดิ้ง (Code)

สำหรับซอร์สโค้ดในการสั่งงาน ESP32 คุณสามารถดาวน์โหลดไฟล์ .ino จากลิงก์ด้านล่าง หรือจะคัดลอกโค้ดโครงสร้างพื้นฐานที่เราสรุปไว้ให้ ไปวางใน Arduino IDE แล้วอัปโหลดลงบอร์ดได้เลยครับ

คลิกเพื่อดูและคัดลอกโค้ด (View More)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// กำหนดพินตามวงจร
const int touchPin = 4;
const int ledPin = 26;

// ตั้งค่า LCD (SDA=13, SCL=14) ที่อยู่ 0x27 ขนาด 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(115200);
  
  pinMode(touchPin, INPUT);
  pinMode(ledPin, OUTPUT);
  
  // กำหนดขา I2C แบบ Custom สำหรับ ESP32
  Wire.begin(13, 14);
  lcd.init();
  lcd.backlight();
}

void loop() {
  int touchState = digitalRead(touchPin);

  if (touchState == HIGH) {
    digitalWrite(ledPin, HIGH);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Touch Detected!");
    lcd.setCursor(0, 1);
    lcd.print("LED ON");
  } else {
    digitalWrite(ledPin, LOW);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("No Touch");
    lcd.setCursor(0, 1);
    lcd.print("LED OFF");
  }
  delay(200); // หน่วงเวลาเล็กน้อยเพื่อความเสถียร
}
💻 ดาวน์โหลดไฟล์ Arduino Code (.ino) ต้นฉบับที่นี่

Step 4 & 5: ผลลัพธ์และหลักการทำงาน

เมื่ออัปโหลดโค้ดเสร็จ ระบบจะทำงานเป็นสเต็ปดังนี้ครับ:

  • เซ็นเซอร์สัมผัสจะคอยตรวจสอบความเปลี่ยนแปลงของประจุไฟฟ้าบนพื้นผิวแผงเซ็นเซอร์อยู่ตลอดเวลา
  • เมื่อเราเอานิ้วไปแตะ ค่าประจุจะเปลี่ยน เซ็นเซอร์จะส่งสัญญาณ HIGH ไปหา ESP32
  • บอร์ด ESP32 ตรวจจับสัญญาณได้ ก็จะสั่งให้ ไฟ LED ติดสว่าง และหน้าจอ LCD เปลี่ยนเป็นข้อความ "Touch Detected"
  • พอเอานิ้วออก สัญญาณหายไป LED จะดับ และหน้าจอจะกลับมาโชว์ "No Touch"
Output LED ON
คลิกเพื่อดูรูปผลลัพธ์การทำงานและผัง Logic (View More)
Output LED OFF
Working Logic

Step 6 & 7: การนำไปประยุกต์ใช้ และบทสรุป

ระบบเซ็นเซอร์สัมผัสนี้ถูกนำไปใช้ในอุปกรณ์อิเล็กทรอนิกส์สมัยใหม่มากมาย เช่น สวิตช์ไฟติดผนังแบบสัมผัส (Touch-Based Light Switches), แผงควบคุม Smart Home, หรือระบบรักษาความปลอดภัย

สรุป: โปรเจกต์นี้แสดงให้เห็นว่าการใช้ ESP32 ตรวจจับการสัมผัสของมนุษย์นั้นทำได้ง่ายดายมาก ระบบสามารถให้ฟีดแบ็กหรือตอบสนองกลับมาได้อย่างชัดเจนและรวดเร็ว ถือเป็นจุดเริ่มต้นที่ดีในการทำโปรเจกต์ IoT เจ๋งๆ ชิ้นต่อไปของคุณครับ!

คลิกเพื่อดูรูปภาพสรุปและแอปพลิเคชัน (View More)
Applications
Conclusion

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา

อ้างอิงและเรียบเรียงโดย: Globalbyteshop Blog

แหล่งที่มาหลัก:
- ESP32 Sensor System With LCD Display & LED by mansiramteke139 (Instructables)
- อ่านเพิ่มเติม: เอกสารประกอบต้นฉบับ (PDF)

แท็ก


Blog posts

เข้าสู่ระบบ

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

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