ESP8266 Nút nhấn Đèn LED
Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 và nút nhấn để điều khiển đèn LED. Chúng ta sẽ học hai ứng dụng khác nhau:
Ứng dụng 1 - Trạng thái LED được đồng bộ với trạng thái của nút nhấn. Cụ thể:
- ESP8266 bật LED khi nút được nhấn.
- ESP8266 tắt LED khi nút không được nhấn.
Ứng dụng 2 - Trạng thái LED được chuyển đổi mỗi lần nhấn nút. Cụ thể hơn:
- Nếu ESP8266 phát hiện nút nhấn đã được nhấn (từ trạng thái HIGH sang trạng thái LOW), nó sẽ bật đèn LED lên nếu đèn LED hiện đang ở trạng thái tắt, hoặc tắt đèn LED nếu đèn LED hiện đang ở trạng thái bật.
- Việc thả nút không ảnh hưởng đến trạng thái của đèn LED.
Trong Ứng dụng 2, chúng ta cần xử lý debounce cho nút để đảm bảo nó hoạt động đúng. Chúng ta sẽ hiểu tại sao điều này quan trọng bằng cách so sánh cách LED hoạt động khi ta sử dụng mã ESP8266 với và không có xử lý debounce cho nút.
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 | × | LED Kit | ||
| 1 | × | LED (red) | ||
| 1 | × | LED Module | ||
| 1 | × | 220Ω Resistor | ||
| 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) |
Giới thiệu về LED và Nút
Nếu bạn chưa quen với LED và nút (bao gồm cấu hình chân, nguyên lý hoạt động và lập trình), các hướng dẫn sau đây có thể giúp:
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.
Ứng dụng 1 - Trạng thái LED đồng bộ với trạng thái của nút nhấn
Mã ESP8266
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 tham khảo 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 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 đúng, ví dụ: NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng.
- Kết nối một ESP8266 với máy tính bằng cáp USB.
- Khởi động Arduino IDE, và chọn đúng bo mạch và cổng.
- Sao chép mã nguồn và mở nó trong Arduino IDE.
- Nhấn nút Upload trên Arduino IDE để biên dịch và tải mã lên ESP8266.

- Nhấn nút và giữ nó trong vài giây.
- Xem sự thay đổi trong tình trạng của đèn LED.
Bạn sẽ thấy trạng thái của đèn LED đồng bộ với trạng thái của nút.
Giải thích mã nguồn
Hãy xem giải thích theo từng dòng được chứa trong các chú thích của mã nguồn!
Ứng dụng 2 - Nút bật/tắt LED
Mã ESP8266 - Nút nhấn bật/tắt LED mà không khử nhiễu
Giải thích mã nguồn
Bạn có thể tìm giải thích trong các dòng chú thích của mã ESP8266 ở trên.
Trong mã, biểu thức led_state = !led_state tương đương với đoạn mã sau:
Hướng dẫn từng bước
- Sao chép mã và mở nó trong Arduino IDE.
- Tải mã lên ESP8266.
- Nhấn và thả nút nhiều lần.
- Kiểm tra sự thay đổi trạng thái của đèn LED.
Bạn có thể nhận thấy trạng thái của LED được chuyển đổi mỗi lần nhấn nút. Tuy nhiên, hành vi này có thể không luôn nhất quán. Đôi khi, trạng thái của LED có thể bị chuyển đổi nhanh nhiều lần trong một lần nhấn nút, hoặc có thể không đổi chút nào (đảo hai lần liên tiếp trong thời gian ngắn có thể khó nhận ra bằng mắt thường).
⇒ Để giải quyết vấn đề này, chúng ta cần ESP8266 - Nút - Lọc nhiễu.
Mã ESP8266 - Nút nhấn bật/tắt LED với chống nhiễu
Khử nhiễu cho nút nhấn có thể là thách thức đối với người mới bắt đầu. May mắn thay, thư viện ezButton (https://arduinogetstarted.com/tutorials/arduino-button-library) làm cho việc này trở nên dễ dàng.
Tại sao debounce lại cần thiết? Xem ESP8266 - Nút - Lọc nhiễu để biết thêm thông tin.
Hướng dẫn từng bước
- Cài đặt thư viện ezButton. Tham khảo Cách Làm để được hướng dẫn.
- Sao chép mã và mở nó bằng Arduino IDE.
- Nhấn nút Tải lên trên Arduino IDE để tải mã lên ESP8266.
- Nhấn và thả nút nhiều lần.
- Kiểm tra sự thay đổi trạng thái của đèn LED.
Bạn sẽ thấy trạng thái của đèn LED được chuyển đổi đúng một lần mỗi khi nhấn nút.
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.