ESP8266 Nút Nhấn giữ Nhấn ngắn
Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 để phát hiện nhấn giữ lâu và nhấn ngắn của nút. Cụ thể, chúng ta sẽ đi qua các ví dụ sau đây:
- ESP8266 phát hiện nhấn ngắn trên nút.
- ESP8266 phát hiện nhấn và giữ trên nút.
- ESP8266 phát hiện cả nhấn dài và nhấn ngắn trên nút.
- ESP8266 xử lý chống nhiễu cho nhấn dài và nhấn ngắn.
Trong phần kết luận, chúng ta khám phá cách triển khai khử nhiễu nhấn trong các ứng dụng thực tế. Để tìm hiểu thêm về lý do tại sao khử nhiễu nhấn lại cần thiết cho các nút bấm, vui lòng tham khảo bài viết này. Nếu không có khử nhiễu nhấn, có thể xảy ra nhận diện nhấn nút không chính xác.
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 | × | breadboard-mount Button with Cap | ||
| 1 | × | breadboard-mount Button Kit | ||
| 1 | × | Panel-mount Push Button | ||
| 1 | × | mô-đun nút nhấn | ||
| 1 | × | breadboard | ||
| 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) |
Thông tin về Nút
Nếu bạn chưa quen với các nút (bố trí chân, hoạt động, lập trình, v.v.), các bài hướng dẫn dưới đây có thể giúp bạn học.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
Trong hướng dẫn này, chúng ta sẽ sử dụng điện trở kéo lên nội bộ. Điều này có nghĩa là nút nhấn ở trạng thái HIGH khi chưa được nhấn và ở trạng thái LOW khi được nhấn.
Cách Phát Hiện Nhấn Ngắn
Chúng tôi tính khoảng thời gian giữa các sự kiện nhấn và thả. Nếu khoảng thời gian này nhỏ hơn một khoảng thời gian được xác định trước, chúng tôi phát hiện một sự kiện nhấn ngắn.
Xác định thời lượng của một cú nhấn ngắn tối đa.
- Xác định thời điểm nút được nhấn và ghi lại thời gian của lần nhấn.
- Phát hiện khi nút được thả và ghi lại thời điểm thả nút.
- Lực
- Xác định thời gian và cường độ áp lực cần được áp dụng.
- So sánh thời lượng nhấn với thời gian đã được xác định trước cho một nhấn ngắn.
- Xác định xem đó có phải là nhấn ngắn dựa trên sự so sánh.
Mã ESP8266 để phát hiện nhấn ngắn
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 bài 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 thành phần như 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, chẳng hạn như NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
- Tải mã lên ESP8266 bằng Arduino IDE.
- Nhấn nút trong một thời gian ngắn nhiều lần.
- Kiểm tra đầu ra trên Serial Monitor.
※ Lưu ý:
Serial Monitor có thể hiển thị nhiều lần phát hiện nhấn ngắn cho một lần nhấn. Đây là hành vi mong đợi của nút và được gọi là “hiện tượng lách tách”. Chúng ta sẽ giải quyết vấn đề này ở phần cuối của bài hướng dẫn này.
Cách nhận biết nhấn giữ
Có hai trường hợp mà nhấn giữ có thể được phát hiện:
- Khi nút được nhả ra, sự kiện nhấn giữ lâu sẽ được nhận diện
- Trong khi nút đang được nhấn, sự kiện nhấn giữ lâu sẽ được nhận diện, ngay cả trước khi buông nút.
- Đối với lần đầu tiên, chúng ta tính khoảng thời gian giữa sự kiện nhấn và thả. 2. Nếu thời lượng lớn hơn thời gian đã xác định trước, thì sự kiện nhấn giữ lâu được nhận diện
Trong trường hợp sử dụng thứ hai, ngay khi nút được nhấn, thời gian nhấn được đo liên tục và sự kiện nhấn giữ (long-press) được kiểm tra cho đến khi nút được thả ra. Khi nút đang được giữ xuống, nếu thời lượng vượt quá một khoảng thời gian đã được xác định trước, thì sự kiện nhấn giữ được phát hiện.
Mã ESP8266 để phát hiện nhấn giữ lâu khi thả ra
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 board 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 board ESP8266 đúng, chẳng hạn (ví dụ NodeMCU 1.0 (Mô-đun ESP-12E)), và cổng COM tương ứng của nó.
- Tải mã lên ESP8266 bằng Arduino IDE.
- Đợi một giây sau đó nhấn và thả nút.
- Xem kết quả trên Serial Monitor.
Sự kiện nhấn giữ chỉ được phát hiện khi thả nút.
Mã ESP8266 để phát hiện nhấn giữ lâu trong quá trình nhấn
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:
- Hãy xem 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 thành phần như được thể hiện trong sơ đồ.
- Kết nối board 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, chẳng hạn như (ví dụ: NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
- Tải mã lên ESP8266 bằng Arduino IDE.
- Đợi vài giây rồi nhấn và thả nút.
- Kiểm tra Serial Monitor để xem kết quả.
Sự kiện nhấn và giữ nút sẽ chỉ được phát hiện khi nút chưa được thả.
Cách nhận diện cả nhấn giữ lâu và nhấn ngắn
Nhấn ngắn và nhấn giữ sau khi thả
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:
- Hãy xem bài 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 thành phần như được thể hiện trong sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng một cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 đúng, chẳng hạn như (ví dụ NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
- Nạp mã lên ESP8266 bằng Arduino IDE.
- Nhấn nút với hai khoảng thời gian khác nhau: lâu và ngắn.
- Xem kết quả trên Màn hình Serial.
※ Lưu ý:
Serial Monitor có thể hiển thị nhiều lần phát hiện nhấn ngắn khi thực hiện một nhấn giữ lâu. Đây là hành vi mong đợi của nút và được gọi là 'hiện tượng nhiễu tiếp xúc'. Vấn đề này sẽ được giải quyết ở phần cuối của hướng dẫn này.
Nhấn ngắn và nhấn giữ trong quá trình nhấn
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 tiên bạn sử dụng ESP8266.
- Nối các linh kiện như được hiển thị trong sơ đồ.
- Kết nối board 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ó.
- Tải mã lên ESP8266 của bạn bằng Arduino IDE.
- Nhấn nút ở cả hai thời gian: ngắn và dài.
- Xem kết quả trên Serial Monitor.
※ Lưu ý:
Serial Monitor có thể ghi nhận nhiều lần nhấn ngắn khi nhấn giữ lâu. Đây là hành vi mong đợi của nút và được gọi là hiện tượng chattering. Giải pháp cho vấn đề này sẽ được cung cấp ở phần cuối của bài hướng dẫn này.
Nhấn lâu và nhấn ngắn với lọc nhiễu
Việc khử nhiễu cho nút nhấn là cần thiết trong nhiều ứng dụng.
Việc loại bỏ nhiễu khi nhấn nút có thể khá phức tạp, đặc biệt khi có nhiều nút liên quan. Để giúp người mới dễ làm quen hơn, chúng tôi đã tạo ra một thư viện có tên ezButton.
Chúng tôi sẽ sử dụng thư viện này trong các đoạn mã dưới đây.
Nhấn ngắn và nhấn giữ lâu với lọc nhiễu sau khi thả
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.
- Kết nối các thành phần theo sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng một 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, chẳng hạn như (ví dụ NodeMCU 1.0 (Mô-đun ESP-12E)), và cổng COM tương ứng.
- Để cài đặt thư viện ezButton, tham khảo Hướng dẫn.
- Tải mã lên ESP8266 bằng Arduino IDE.
- Nhấn và giữ nút trong một khoảng thời gian ngắn hoặc dài.
- Xem kết quả trên Serial Monitor.
Nhấn ngắn và nhấn giữ với lọc nhiễu trong quá trình nhấn
Hướng dẫn từng bước
- Kết nối các thành phầ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, chẳng hạn như (ví dụ NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
- Cài đặt thư viện ezButton. Tham khảo How To để được hướng dẫn.
- Sử dụng Arduino IDE để tải mã lên ESP8266.
- Nhấn và giữ nút, sau đó thả nó ra.
- Kiểm tra Serial Monitor để quan sát kết quả.
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.
Tại sao cần nhấn giữ và nhấn ngắn
- Để giảm thiểu số lượng nút bấm, một nút có thể được dùng cho nhiều mục đích khác nhau. Ví dụ, nhấn ngắn có thể dùng để chuyển chế độ vận hành, và nhấn dài có thể dùng để tắt thiết bị.
- Nhấn dài được dùng để ngăn ngừa nhấn vô tình. Ví dụ, một số thiết bị dùng một nút để đặt lại về trạng thái cài đặt gốc. Nếu nút bị nhấn vô tình, điều này có thể gây nguy hiểm. Để tránh điều này, thiết bị được thiết kế sao cho việc đặt lại về cài đặt gốc chỉ được kích hoạt khi nút được nhấn lâu (ví dụ trên 5 giây).