ESP8266 Khóa solenoid

Khóa solenoid, còn được gọi là khóa Electric Strike, có thể được dùng để khóa và mở các tủ, ngăn kéo và cửa. Bài hướng dẫn này sẽ dạy chúng ta cách điều khiển khóa solenoid bằng ESP8266.

Một lựa chọn thay thế cho khóa solenoid là khóa điện từ. Để biết thêm thông tin, vui lòng tham khảo ESP8266 - Khóa điệ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×Solenoid Lock
1×Relay
1×12V Power Adapter
1×DC Power Jack
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ề Khóa Solenoid

Sơ đồ chân của khóa solenoid

Khóa điện từ gồm hai dây:

  • Dây dương (+) (đỏ) nên được kết nối với 12V của nguồn DC
  • Dây âm (-) (đen) nên được kết nối với GND của nguồn DC
sơ đồ nối dây khóa solenoid

Cách hoạt động

  • Khi cấp nguồn cho khóa solenoid, lẫy khóa được đẩy ra, làm cho cửa bị khóa.
  • Khi không cấp nguồn cho khóa solenoid, lẫy khóa được rút vào, làm cho cửa được mở.

※ Lưu ý:

Khóa solenoid thường yêu cầu nguồn điện 12V, 24V hoặc 48V. Do đó, nó không thể được kết nối trực tiếp với một chân ESP8266. Một rơ-le phải được sử dụng để kết nối khóa solenoid với chân ESP8266.

Nếu khóa solenoid được kết nối với một rơ-le (ở chế độ mở thông thường):

  • Khi rơ-le không được kích hoạt, cửa được mở khóa.
  • Khi rơ-le được kích hoạt, cửa bị khóa.

Kết nối ESP8266 với một rơ-le cho phép ESP8266 được lập trình để điều khiển khóa solenoid. Để biết thêm thông tin về rơ-le, vui lòng tham khảo ESP8266 - rơ-le.

Sơ đồ đấu dây

sơ đồ đấu dây cho khóa solenoid 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.

Mã ESP8266

Mã này khiến cửa bị khóa và được mở khóa mỗi 5 giây.

/* * 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-solenoid-lock */ #define RELAY_PIN D8 // The ESP8266 pin connected to the IN pin of relay // The setup function runs once on reset or power-up void setup() { // initialize digital pin as an output. pinMode(RELAY_PIN, OUTPUT); } // The loop function repeats indefinitely void loop() { digitalWrite(RELAY_PIN, LOW); // unlock the door delay(5000); digitalWrite(RELAY_PIN, HIGH); // lock the door delay(5000); }

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 thành phần như được hiển thị trong sơ đồ.
  • Kết nối bảng 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 phù hợp, chẳng hạn NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng.
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấp vào nút Upload trong Arduino IDE để gửi mã đến ESP8266.
  • Kiểm tra trạng thái của lưỡi khóa.

ESP8266 - Nút điều khiển khóa solenoid

  • Sơ đồ dây điện
sơ đồ nối dây của khóa solenoid ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

  • Viết mã cho bo mạch ESP8266.
/* * 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-solenoid-lock */ #include <ezButton.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define RELAY_PIN D8 // The ESP8266 pin connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object for pin D8 void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds digitalWrite(RELAY_PIN, HIGH); // lock the door } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

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

  • Đấu dây 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, 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 Hướng dẫn để biết cách làm.
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấp nút Upload trên Arduino IDE để tải mã lên ESP8266.
  • Nhấn nút một lần.
  • Kiểm tra trạng thái của lưỡi khóa trong 10 giây.

※ Lưu ý:

Trong đoạn mã ở trên, chúng ta đã sử dụng hàm delay. Do đó, chúng ta không phải triển khai khử rung cho nút. Tuy nhiên, chúng ta vẫn bao gồm mã có khử rung để bạn có thể thực hiện thêm các tác vụ khác mà không sử dụng hàm delay. Xem Cách sử dụng millis() thay cho delay() để biết thêm thông tin.

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.