ESP8266 Cảm biến cảm ứng

Hướng dẫn này chỉ cho bạn cách sử dụng cảm biến cảm ứng điện dung với ESP8266. Cụ thể, chúng ta sẽ tìm hiểu:

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×cảm biến chạm
1×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về cảm biến chạm

Cảm biến chạm điện dung, còn được gọi là nút chạm hoặc công tắc cảm ứng, thường được sử dụng để điều khiển các thiết bị, chẳng hạn như đèn cảm ứng. Nó có cùng chức năng với một nút nhấn, nhưng được dùng thay cho nút trên nhiều thiết bị hiện đại vì vẻ ngoài thanh lịch của nó.

Sơ đồ chân của cảm biến chạm

Cảm biến cảm ứng có ba chân:

  • Chân GND: Nó nên được kết nối với điện áp đất (0V).
  • Chân VCC: Nó nên được kết nối với điện áp VCC (5V hoặc 3.3V).
  • Chân SIGNAL: Đây là một chân đầu ra. Nó sẽ ở mức LOW khi không được chạm và ở mức HIGH khi được chạm. Chân này nên được kết nối với một chân đầu vào của ESP8266.
sơ đồ chân cảm biến cảm ứng

Cách hoạt động

  • Khi cảm biến không được tương tác, chân tín hiệu của cảm biến ở mức thấp.
  • Tuy nhiên, khi cảm biến được chạm vào, chân tín hiệu của cảm biến ở mức cao.

ESP8266 - Cảm biến cảm ứng

Chân SIGNAL của cảm biến cảm ứng được kết nối với một chân đầu vào của ESP8266. Chúng ta có thể xác định xem cảm biến cảm ứng có bị chạm hay chưa bằng cách kiểm tra trạng thái của chân trên ESP8266.

Sơ đồ đấu dây

sơ đồ kết nối cảm biến chạm ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

Cách Lập Trình Cho Cảm Biến Cảm Ứng

  • Đặt chân ESP8266 ở chế độ đầu vào kỹ thuật số bằng hàm pinMode(). Ví dụ:
pinMode(D7, INPUT);
  • Đọc trạng thái của chân ESP8266 thông qua hàm digitalRead().
int inputState = digitalRead(D7);

※ Lưu ý:

Có hai kịch bản được sử dụng phổ biến:

  • Thứ nhất: Nếu trạng thái đầu vào là CAO, thực hiện một hành động. Nếu trạng thái đầu vào là THẤP, thực hiện hành động ngược lại.
  • Thứ hai: Nếu trạng thái đầu vào thay đổi từ THẤP sang CAO (hoặc CAO sang THẤP), thực hiện một hành động.

Chúng ta chọn một trong hai kịch bản dựa trên mục đích của ứng dụng. Ví dụ, nếu chúng ta muốn dùng cảm biến chạm để điều khiển đèn LED:

  • Nếu mục tiêu là đèn LED sáng khi cảm biến được chạm và tắt khi cảm biến không chạm, chúng ta nên dùng kịch bản đầu tiên.
  • Nếu mục tiêu là LED chuyển đổi giữa sáng và tối mỗi lần chạm cảm biến, chúng ta nên dùng kịch bản thứ hai.

Cảm biến cảm ứng - Mã ESP8266

Hướng dẫn cung cấp hai đoạn mã mẫu:

  • ESP8266 đọc giá trị từ cảm biến cảm ứng và in nó lên Serial Monitor.
  • ESP8266 phát hiện cảm biến có bị chạm hay đã được thả ra hay không.

ESP8266 đọc giá trị từ cảm biến cảm ứng và in ra Serial Monitor

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-touch-sensor */ #define SENSOR_PIN D7 // The ESP8266 NodeMCU input pin that connects to the sensor's SIGNAL pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); // print state to Serial Monitor Serial.println(state); }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Nối các linh kiện như được hiển thị trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 phù hợp, ví dụ: NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấn nút Upload trong IDE để tải mã lên ESP8266.
  • Đặt ngón tay lên cảm biến và sau đó bỏ ra.
  • Kiểm tra đầu ra trong Serial Monitor.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP8266 phát hiện cảm biến bị chạm hoặc thả

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-touch-sensor */ #define SENSOR_PIN D7 // The ESP8266 NodeMCU input pin that connects to the sensor's SIGNAL pin int prev_state = LOW; // The previous state from the input pin int touch_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266 NodeMCU's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: touch_state = digitalRead(SENSOR_PIN); if(prev_state == LOW && touch_state == HIGH) Serial.println("The sensor is touched"); else if(prev_state == HIGH && touch_state == LOW) Serial.println("The sensor is released"); // save the the last state prev_state = touch_state; }

Hướng dẫn từng bước

  • Sao chép mã nguồn và mở nó bằng Arduino IDE.
  • Nhấn nút Tải lên trên Arduino IDE để biên dịch và tải mã lên ESP8266.
  • Hãy giữ ngón tay chạm vào cảm biến.
  • Xem kết quả trên Serial Monitor.
COM6
Send
The sensor is touched
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Hãy rời ngón tay khỏi cảm biến.
  • Kiểm tra Serial Monitor để xem kết quả.
COM6
Send
The sensor is touched The sensor is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tham khảo hàm