ESP8266 Môđun chuyển tiếp NodeMCU Thiết bị AC điều khiển (Máy chủ Web)

16 4 0
ESP8266 Môđun chuyển tiếp NodeMCU  Thiết bị AC điều khiển (Máy chủ Web)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Sử dụng rơle với ESP8266 là một cách tuyệt vời để điều khiển các thiết bị gia dụng AC từ xa. Hướng dẫn này giải thích cách điều khiển môđun chuyển tiếp bằng ESP8266 NodeMCU. Chúng ta sẽ xem xét cách môđun chuyển tiếp hoạt động, cách kết nối rơle với ESP8266 và xây dựng máy chủ web để điều khiển rơle từ xa (hoặc nhiều rơle như bạn muốn).

ESP8266 Mô-đun chuyển tiếp NodeMCU - Thiết bị AC điều khiển (Máy chủ Web) Sử dụng rơle với ESP8266 cách tuyệt vời để điều khiển thiết bị gia dụng AC từ xa Hướng dẫn giải thích cách điều khiển mô-đun chuyển tiếp ESP8266 NodeMCU Chúng ta xem xét cách mô-đun chuyển tiếp hoạt động, cách kết nối rơle với ESP8266 xây dựng máy chủ web để điều khiển rơle từ xa (hoặc nhiều rơle bạn muốn) Tìm hiểu cách điều khiển mơ-đun rơle bảng ESP32: Hướng dẫn cho Mô-đun rơle ESP32 - Điều khiển Thiết bị AC + Ví dụ Máy chủ Web Giới thiệu Relays Rơle công tắc hoạt động điện giống cơng tắc khác, bật tắt, cho phép dịng điện qua khơng Nó điều khiển với điện áp thấp, 3.3V cung cấp ESP8266 GPIO cho phép điều khiển điện áp cao 12V, 24V điện áp nguồn (230V Châu Âu 120V Mỹ) Mô-đun chuyển tiếp 1, 2, 4, 8, 16 kênh Có mơ-đun chuyển tiếp khác với số lượng kênh khác Bạn tìm thấy mô-đun chuyển tiếp với một, hai, bốn, tám chí mười sáu kênh Số lượng kênh xác định số lượng đầu mà chúng tơi kiểm sốt 1/16 Có mơ-đun rơle có nam châm điện cấp nguồn 5V với 3.3V Cả hai sử dụng với ESP8266 - bạn sử dụng chân Vin (cung cấp 5V) chân 3.3V Ngoài ra, số kèm với ghép quang tích hợp bổ sung thêm "lớp" bảo vệ, cách ly quang học ESP8266 khỏi mạch rơle Nhận mô-đun chuyển tiếp: Sơ đồ chân rơle Đối với mục đích trình diễn, xem sơ đồ chân mô-đun rơle kênh Sử dụng mô-đun chuyển tiếp với số lượng kênh khác tương tự 2/16 Hai đầu nối (mỗi đầu nối có ba ổ cắm) phía bên trái mơ-đun rơle kết nối điện áp cao chân phía bên phải (điện áp thấp) kết nối với GPIO ESP8266 Kết nối điện áp nguồn Mô-đun rơle hiển thị ảnh trước có hai đầu nối, đầu nối có ba ổ cắm: chung (COM), thường đóng (NC) thường mở (NO) COM: kết nối dòng điện bạn muốn điều khiển (điện áp nguồn) NC (Thường đóng): cấu hình thường đóng sử dụng bạn muốn đóng rơle theo mặc định NC chân COM kết nối, có nghĩa dòng điện chạy trừ bạn gửi tín hiệu từ ESP8266 đến mơ-đun rơle để mở mạch dừng dịng điện NO (Thường mở): cấu hình thường mở hoạt động theo cách khác: khơng có kết nối chân NO COM, mạch bị hỏng trừ bạn gửi tín hiệu từ ESP8266 để đóng mạch Chân điều khiển 3/16 Phía điện áp thấp có bốn chân ba chân Bộ bao gồm VCC GND để cấp nguồn cho mô-đun đầu vào (IN1) đầu vào (IN2) để điều khiển rơle cùng, tương ứng Nếu mô-đun chuyển tiếp bạn có kênh, bạn có chân IN Nếu bạn có bốn kênh, bạn có bốn chân IN, v.v Tín hiệu bạn gửi đến chân IN, xác định xem rơle có hoạt động hay khơng Rơle kích hoạt đầu vào xuống khoảng 2V Điều có nghĩa bạn có tình sau: Cấu hình thường đóng (NC): Tín hiệu CAO - dịng điện chảy Tín hiệu LOW – dịng điện khơng chạy Cấu hình thường mở (NO): Tín hiệu CAO – dịng điện khơng chạy Tín hiệu LOW - dòng điện chạy Bạn nên sử dụng cấu hình thường đóng dịng điện nên chạy hầu hết thời gian bạn muốn dừng Sử dụng cấu hình thường mở bạn muốn dịng điện chạy (ví dụ: bật đèn) Lựa chọn nguồn điện 4/16 Bộ chân thứ hai bao gồm chân GND, VCC JD-VCC Chân JD-VCC cấp nguồn cho nam châm điện rơle Lưu ý mơ-đun có nắp nhảy kết nối chân VCC JDVCC; Cái hiển thị có màu vàng, màu bạn màu khác Khi bật nắp nhảy, chân VCC JD-VCC kết nối Điều có nghĩa nam châm điện rơle cấp nguồn trực tiếp từ chân nguồn ESP8266, mơ-đun rơle mạch ESP8266 khơng cách ly vật lý với Nếu khơng có nắp nhảy, bạn cần cung cấp nguồn lượng độc lập để cấp nguồn cho nam châm điện rơle thông qua chân JD-VCC Cấu hình cách ly vật lý rơle khỏi ESP8266 với ghép quang tích hợp mô-đun, giúp ngăn ngừa thiệt hại cho ESP8266 trường hợp tăng đột biến điện ESP8266 Chân an toàn để sử dụng với rơle Một số chân ESP8266 phát tín hiệu 3.3V ESP8266 khởi động Điều có vấn đề bạn có rơle thiết bị ngoại vi khác kết nối với GPIO Ngồi ra, số chân phải kéo CAO THẤP để khởi động ESP8266 Có tính đến điều này, chân ESP8266 an tồn để sử dụng với rơle là: GPIO 5, GPIO 4, GPIO 14, GPIO 12 GPIO 13 Để biết thêm thông tin GPIO ESP8266, đọc: Tham chiếu sơ đồ chân ESP8266: Bạn nên sử dụng chân GPIO nào? Đấu dây mô-đun rơle với bảng mạch ESP8266 NodeMCU 5/16 Kết nối mô-đun rơle với ESP8266 thể sơ đồ sau Sơ đồ cho thấy hệ thống dây điện cho mô-đun rơle kênh, nối dây số kênh khác tương tự Cảnh báo: ví dụ này, xử lý điện áp nguồn Sử dụng sai dẫn đến thương tích nghiêm trọng Nếu bạn không quen thuộc với điện áp lưới, hỏi giúp bạn Trong lập trình ESP nối dây mạch bạn, đảm bảo thứ ngắt kết nối khỏi điện áp nguồn Ngồi ra, bạn sử dụng nguồn điện 12V để điều khiển thiết bị 12V Trong ví dụ này, điều khiển đèn Chúng tơi muốn thắp sáng đèn, tốt sử dụng cấu hình mở bình thường Chúng kết nối chân IN1 với GPIO 5, bạn sử dụng GPIO phù hợp khác Xem Hướng dẫn Tham khảo GPIO ESP8266 Điều khiển mô-đun chuyển tiếp với ESP8266 NodeMCU - Arduino Sketch Mã để điều khiển rơle với ESP8266 đơn giản điều khiển đèn LED đầu khác Trong ví dụ này, sử dụng cấu hình thường mở, cần gửi tín hiệu LOW dịng điện chạy tín hiệu HIGH để dừng dòng điện 6/16 Đoạn mã sau sáng đèn bạn 10 giây tắt thêm 10 giây /********* Rui Santos Complete project details at https://RandomNerdTutorials.com/esp8266-relaymodule-ac-web-server/ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software *********/ const int relay = 5; void setup() { Serial.begin(115200); pinMode(relay, OUTPUT); } void loop() { // Normally Open configuration, send LOW signal to let current flow // (if you're usong Normally Closed configuration send HIGH signal) digitalWrite(relay, LOW); Serial.println("Current Flowing"); delay(5000); // Normally Open configuration, send HIGH signal stop current flow // (if you're usong Normally Closed configuration send LOW signal) digitalWrite(relay, HIGH); Serial.println("Current not Flowing"); delay(5000); } Xem mã thô ế 7/16 Mã hoạt động Xác định chốt mà chân IN rơle kết nối const int relay = 5; Trong setup(), định nghĩa relay đầu pinMode(relay, OUTPUT); Trong loop(), gửi tín hiệu LOW để dịng điện chạy thắp đèn digitalWrite(relay, LOW); Nếu bạn sử dụng cấu hình thường đóng, gửi tín hiệu CAO để thắp đèn Sau đó, đợi giây delay(5000); Dừng dịng điện cách gửi tín hiệu CAO đến chân rơle Nếu bạn sử dụng cấu hình thường đóng, gửi tín hiệu THẤP để dừng dòng điện digitalWrite(relay, HIGH); Điều khiển nhiều rơle với Máy chủ Web ESP8266 NodeMCU 8/16 Trong phần này, chúng tơi tạo ví dụ máy chủ web cho phép bạn kiểm soát rơle tùy thích thơng qua máy chủ web cho dù chúng định cấu thường mở hay đóng bình thường Bạn cần thay đổi vài dòng mã để xác định số lượng rơle bạn muốn điều khiển gán pin Để xây dựng máy chủ web này, sử dụng thư viện ESPAsyncWebServer Cài đặt thư viện ESPAsyncWebServer Làm theo bước để cài đặt thư viện ESPAsyncWebServer: Bấm vào để tải xuống thư viện ESPAsyncWebServer Bạn có thư mục zip thư mục Tải xuống Giải nén thư mục zip bạn nhận thư mục ESPAsyncWebServer-master Đổi tên thư mục bạn từ ESPAsyncWebServer-master thành ESPAsyncWebServer Di chuyển thư mục ESPAsyncWebServer vào thư mục thư viện cài đặt Arduino IDE bạn Ngồi ra, Arduino IDE, bạn vào Sketch > Include Library > Add ZIP library chọn thư viện bạn vừa tải xuống Cài đặt thư viện ESPAsyncTCP cho ESP8266 Thư viện ESPAsyncWebServer yêu cầu thư viện ESPAsyncTCP hoạt động Làm theo bước để cài đặt thư viện đó: Bấm vào để tải xuống thư viện ESPAsyncTCP Bạn có thư mục zip thư mục Tải xuống Giải nén thư mục zip bạn nhận thư mục ESPAsyncTCP-master Đổi tên thư mục bạn từ ESPAsyncTCP-master thành ESPAsyncTCP Di chuyển thư mục ESPAsyncTCP vào thư mục thư viện cài đặt Arduino IDE bạn Cuối cùng, mở lại Arduino IDE bạn Ngồi ra, Arduino IDE, bạn vào Sketch > Include Library > Add ZIP library chọn thư viện bạn vừa tải xuống Sau cài đặt thư viện cần thiết, chép mã sau vào Arduino IDE bạn 9/16 /********* Rui Santos Complete project details at https://RandomNerdTutorials.com/esp8266-relaymodule-ac-web-server/ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software *********/ // Import required libraries #include "ESP8266WiFi.h" #include "ESPAsyncWebServer.h" // Set to true to define Relay as Normally Open (NO) #define RELAY_NO true // Set number of relays #define NUM_RELAYS // Assign each GPIO to a relay int relayGPIOs[NUM_RELAYS] = {5, 4, 14, 12, 13}; // Replace with your network credentials const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD"; const char* PARAM_INPUT_1 = "relay"; const char* PARAM_INPUT_2 = "state"; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); const char index_html[] PROGMEM = R"rawliteral( html {font-family: Arial; display: inline-block; text-align: center;} h2 {font-size: 3.0rem;} p {font-size: 3.0rem;} body {max-width: 600px; margin:0px auto; padding-bottom: 25px;} switch {position: relative; display: inline-block; width: 120px; height: 68px} .switch input {display: none} slider {position: absolute; top: 0; left: 0; right: 0; bottom: 0; backgroundcolor: #ccc; border-radius: 34px} slider:before {position: absolute; content: ""; height: 52px; width: 52px; left: 8px; bottom: 8px; background-color: #fff; -webkit-transition: 4s; transition: 4s; border-radius: 68px} input:checked+.slider {background-color: #2196F3} input:checked+.slider:before {-webkit-transform: translateX(52px); -mstransform: translateX(52px); transform: translateX(52px)} ESP Web Server 10/16 %BUTTONPLACEHOLDER% function toggleCheckbox(element) { var xhr = new XMLHttpRequest(); if(element.checked){ xhr.open("GET", "/update?relay="+element.id+"&state=1", true); } else { xhr.open("GET", "/update?relay="+element.id+"&state=0", true); } xhr.send(); } )rawliteral"; // Replaces placeholder with button section in your web page String processor(const String& var){ //Serial.println(var); if(var == "BUTTONPLACEHOLDER"){ String buttons =""; for(int i=1; ihasParam(PARAM_INPUT_1) & request->hasParam(PARAM_INPUT_2)) { inputMessage = request->getParam(PARAM_INPUT_1)->value(); inputParam = PARAM_INPUT_1; inputMessage2 = request->getParam(PARAM_INPUT_2)->value(); inputParam2 = PARAM_INPUT_2; if(RELAY_NO){ Serial.print("NO "); digitalWrite(relayGPIOs[inputMessage.toInt()-1], !inputMessage2.toInt()); } else{ Serial.print("NC "); digitalWrite(relayGPIOs[inputMessage.toInt()-1], inputMessage2.toInt()); } } else { inputMessage = "No message sent"; inputParam = "none"; } Serial.println(inputMessage + inputMessage2); request->send(200, "text/plain", "OK"); }); // Start server server.begin(); } 12/16 void loop() { } Xem mã thơ Xác định cấu hình rơle Sửa đổi biến sau biết bạn sử dụng rơle cấu hình thường mở (NO) hay thường đóng (NC) Đặt biến RELAY_NO thành true cho hệ điều hành thường mở đặt thành false cho thường đóng #define RELAY_NO true Xác định số lượng rơle (kênh) Bạn xác định số lượng rơle bạn muốn kiểm sốt biến NUM_RELAYS Đối với mục đích trình diễn, chúng tơi đặt thành #define NUM_RELAYS Xác định gán pin rơle Trong biến mảng sau, bạn xác định GPIO ESP8266 điều khiển rơle int relayGPIOs[NUM_RELAYS] = {5, 4, 14, 12, 13}; Số lượng rơle đặt biến NUM_RELAYS cần phải khớp với số lượng GPIO gán mảng relayGPIOs Thông tin đăng nhập mạng Chèn thông tin đăng nhập mạng bạn vào biến sau const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD"; Nối dây kênh Relay đến ESP8266 NodeMCU Đối với mục đích trình diễn, chúng tơi kiểm sốt kênh chuyển tiếp Nối bảng mạch ESP8266 NodeMCU với mô-đun chuyển tiếp thể sơ đồ 13/16 Cuộc biểu tình Sau thực thay đổi cần thiết, tải mã lên ESP8266 bạn Mở Màn hình nối tiếp với tốc độ truyền 115200 nhấn nút ESP8266 RST để lấy địa IP Sau đó, mở trình duyệt mạng cục bạn nhập địa IP ESP8266 để có quyền truy cập vào máy chủ web Bạn nhận sau với nhiều nút số lượng rơle bạn xác định mã 14/16 Giờ đây, bạn sử dụng nút để điều khiển rơle từ xa điện thoại thơng minh Bao vây cho an tồn Đối với dự án cuối cùng, đảm bảo bạn đặt mô-đun rơle ESP bên vỏ bọc để tránh chân AC bị lộ Tổng kết 15/16 Sử dụng rơle với ESP8266 cách tuyệt vời để điều khiển thiết bị gia dụng AC từ xa Bạn đọc Hướng dẫn khác để điều khiển Mô-đun rơle ESP32 Điều khiển rơle ESP8266 dễ dàng điều khiển đầu khác, bạn cần gửi tín hiệu CAO THẤP bạn làm để điều khiển đèn LED Bạn sử dụng ví dụ máy chủ web khác chúng tơi để kiểm sốt đầu để điều khiển rơle Bạn cần ý đến cấu hình bạn sử dụng Trong trường hợp bạn sử dụng cấu hình mở bình thường, rơle hoạt động với logic đảo ngược Bạn sử dụng ví dụ máy chủ web sau để điều khiển chuyển tiếp mình: Máy chủ Web ESP8266 - Arduino IDE Máy chủ Web ESP8266 sử dụng SPIFFS (đầu điều khiển) ESP32 / ESP8266 Máy chủ web MicroPython - Kiểm sốt đầu Tìm hiểu thêm ESP8266 với tài nguyên chúng tôi: Tự động hóa gia đình sử dụng ESP8266 Lập trình MicroPython với ESP32 ESP8266 Thêm tài nguyên ESP8266 Cảm ơn bạn đọc 16/16

Ngày đăng: 09/04/2023, 19:17

Tài liệu cùng người dùng

Tài liệu liên quan