UY TÍN -CHUYÊN NGHIỆP

Tự làm công tắc wifi thông minh

sơ đồ kết nối công tắc wifi

Công nghệ wifi không còn xa lạ và công tắc sử dụng wifi đang được sử dụng rất phổ biến ở các thành phố lớn. Trong bài viết này, suadientu247.com sẽ hướng dẫn thực hiện dự án tự làm công tắc wifi. Hi vọng với bài viết này sẽ hữu ích cho các bạn đam mê, tìm hiểu, thích mày mò điện tử công nghệ

Công tắc wifi và bộ xử lý 

Phần quan trọng của bất kỳ thiết bị công nghệ là bộ vi xử lý. Trong dự án này bộ vi xử lý ESP8266 được chọn. Đây là một trong những bộ vi xử lý có chi phí thấp, dễ mua, tiêu thụ khá ít năng lượng và được sử dụng khá nhiều, thông dụng trong công nghiệp điện tử

Mô tả chân của ESP-01 

No.

Pin Name

Function

1

GND

GND

2

GPIO2

GPIO,Internal Pull-up

3

GPIO0

GPIO,Internal Pull-up

4

RX

UART0,data received pin RXD

5

VCC

3.3V power supply (VDD)

6

RST

External reset pin, active low

7

CH_PD

Chip enable pin. Active high

8

TXD

UART0,data send pin RXD

ESP01 Module công tắc wifi

Công tắc wifi và các vật tư linh kiện cần thiết cho dự án

  • ESP-01
  • Nguồn Hi-Link (5V 0.6A)
  • Rơle Solid State
  • Terminal Block
  • Tụ (100uF, 2.2uf)
  • Trở (100KΩ, 10KΩ, 1KΩ)
  • BC557 Transistor
  • AMS1117 3.3V
  • Mỏ hàn
  • Dây điện
  • Board cắm

ESP-01 sơ đồ chân

sơ đồ chân BC557

 

sơ đô chân AMS1117

Công tắc wifi và mạch điện

sơ đồ kết nối công tắc wifi

Chúng ta sẽ sử dụng module nguồn Hi-Link (5V 0.6A). ESP-01 hoạt động với điện áp 3.3V; do vậy, cần có IC hạ áp-LM1117 3.3V với tụ lọc ở cả nguồn đầu vào và ra .

Chân GPIO 0 của ESP -01 được kết nối với trở 10kΩ.

Chân GPIO 2 được kết nối tới chân B của BC557 PNP để điều khiển đóng ngắt transistor này. BC557 PNP đóng ngắt điều khiển cấp điện đóng ngắt rơle.

GPIO 3 được kết nối với công tắc

Sau khi kết nối, mạch hoàn thiện có hình như bên dưới

mạch hoàn thiện công tắc wifi

Lập trình công tắc wifi

Lập trình ESP công tắc wifi

Để lập trình công tắc wifi, chúng ta cần kết nối ESP-01 với máy tính PC hoặc laptop thông qua mạch CP2102 USB

 

 

Bên dưới là phần mền Arduino IDE dùng để lập trình

ESP01 - lập trình công tắc wifi

Code bật tắt công tắc wifi

Cài đặt ESPAsyncWebServer và thư viện ESPAsyncTCP từ github cho Arduino IDE.

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>

Cung cấp SSID và pass để ESP có thể kết nối wifi nhà bạn

const char* ssid = "SSID";
const char* password = "Password";

Khi web server lần đầu khởi động, đặt giá trị HIGH. Để giữ đèn tắt khi hệ thống bật

int ledState = HIGH;

Biến buttonState và lastButtonState xác định công tắc bật hay không

int buttonState;         
int lastButtonState = HIGH;

CSS kiểu nút nhấn

<style>

    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: 108px; height: 50px} 
    .switch input {display: none}
    .slider {position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius: 34px}
    .slider:before {position: absolute; content: ""; height: 40px; width: 40px; left: 6px; bottom: 5px; 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); -ms-transform: translateX(52px); transform: translateX(52px)}
    h4{font-size:28px;}
    #outputState{background:gainsboro;padding:2px 18px;font-size:28px;margin-left:10px;border-radius:3px;}
  </style>

toggleCheckbox() chức năng được gọi khi nhấn nút. Để bật tắt role, phương pháp này sẽ gửi lệnh đến URLs.

function toggleCheckbox(element) {
  var xhr = new XMLHttpRequest();
  if(element.checked){ xhr.open("GET", "/update?state=0", true); }
  else { xhr.open("GET", "/update?state=1", true); }
  xhr.send();
}

Để giữ trạng thái của web server được cập nhật, chúng ra gửi lệnh trạng thái URL mỗi giây

     setInterval(function ( ) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      var inputChecked;
      var outputStateM;
      if( this.responseText == 1){
        inputChecked = false;
        outputStateM = "Off";
      }
      else {
        inputChecked = true;
        outputStateM = "On";
      }
      document.getElementById("output").checked = inputChecked;
      document.getElementById("outputState").innerHTML = outputStateM;
    }
  };
  xhttp.open("GET", "/state", true);
 xhttp.send();
}, 1000 ) ;

Khi ESP8266-01 nhận lệnh từ URLs, chúng ta cần quản lý nó

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/html", index_html, processor);

Chuyển đổi RX thành GPIO 3. (Bởi vì RX giờ là một GPIO và không giữ chức năng chuyển (serial data) dữ liệu, chúng ta không thể sử dụng Serial Monitor) 

pinMode(3, FUNCTION_3);
  pinMode(3, OUTPUT);

Transitor PNP sẽ ngừng dẫn khi GPIO ở mức HIGH và ngược lại.

  if(digitalRead(buttonPin)==0)
        digitalWrite(output, HIGH);
        else
        if(digitalRead(buttonPin)==1)
        digitalWrite(output, LOW);

Mô hình công tắc wifi 3D

Bước cuối cùng là tạo vỏ cho công tắc wifi. Bạn có thể sử dụng phần mềm vẽ 3D ( solidwork ) để tạo mô hình

Vỏ công tắc wifi

Sau đó dùng Ultimake Cura để tạo file in cho máy in 3D

công tắc wifi In bằng Cura

Kiểm tra hoạt động công tắc thông minh

điều khiển công tắc wifi

 

TÁC GIẢ
CÁC DỊCH VỤ
BÀI VIẾT MỚI GẦN ĐÂY