Tự học IOT - Tự chế hệ thống website điều khiển đèn từ xa - P2 Nạp mạch tạo API điều khiển đèn

Hình ảnh minh họa cho Tự học IOT - Tự chế hệ thống website điều khiển đèn từ xa - P2 Nạp mạch tạo API điều khiển đèn

Trong bài viết này chúng ta sẽ tìm hiểm cách để làm cho mạch ESP32 kết nối tới wifi để làm Webserver sau đó điều khiển đèn LED thông qua API

Chuẩn bị 

+ 1 máy tính có cổng USB đã cài đặt Arduino IDE (Mac hay Window đều được nhen)

+ Mạch ESP32

+ Dây cáp USB to C để gắn vô ESP32 và máy tính

Mô hình

Screenshot at May 10 12 55 44

Cài đặt thư viện cho IDE

 
Mở Arduino IDE 
 
Cài đặt gói thư viện ESP32. 
Bạn vào Tools chọn Boards Manager ...
Screenshot at May 10 13 12 22
 
 
Sau đó chọn gói esp32 By Espressif
Screenshot at May 10 13 12 44
 
 
Sau khi cài đặt xong bạn cần chỉ định loại mạch cho IDE 
 
Vào Tools chọn Board > esp32 > ESP32C3 Dev Module (Vì mình dùng C3 còn bạn dùng loại khác thì chọn khác nhen )
 
Screenshot at May 10 13 13 08
 
Sau khi cắm USB kết nối giữa Laptop và Mạch ESP thì đèn sẽ sáng và mình sẽ chọn Port để IDE connect với mạch
 
Screenshot at May 10 13 13 30
 
Screenshot at May 10 13 18 06
 
 
 

Nạp Code vào ESP32

Screenshot at May 10 16 08 59
 
Code điều khiển nạp vào ESP32 
 
#include <WiFi.h>
#include <WebServer.h>

// Thông tin WiFi
const char* ssid = "daihoctot.com"; // Thay bằng tên WiFi của bạn
const char* password = "12345678"; // Thay bằng mật khẩu WiFi

// Cấu hình LED
const int ledPin = 4; // Chân GPIO4 nối với LED
bool ledState = false; // Trạng thái LED (false = tắt, true = bật)

// Tạo đối tượng WebServer trên cổng 80
WebServer server(80);

void setup() {
// Khởi tạo Serial
Serial.begin(115200);
delay(1000);

// Cấu hình chân LED
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // Tắt LED khi khởi động

// Kết nối WiFi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Đang kết nối đến WiFi: ");
Serial.println(ssid);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("Đã kết nối WiFi!");
Serial.print("Địa chỉ IP: ");
Serial.println(WiFi.localIP());

// Cấu hình các endpoint API cho WebServer
server.on("/led/on", handleLedOn); // Bật LED
server.on("/led/off", handleLedOff); // Tắt LED

// Bắt đầu server
server.begin();
Serial.println("WebServer đã khởi động!");
}

void loop() {
server.handleClient(); // Xử lý các yêu cầu HTTP
delay(10);
}


// Xử lý yêu cầu bật LED
void handleLedOn() {
ledState = true;
digitalWrite(ledPin, HIGH);
Serial.println("LED đã được bật");
server.send(200, "text/plain", "LED ON");
}

// Xử lý yêu cầu tắt LED
void handleLedOff() {
ledState = false;
digitalWrite(ledPin, LOW);
Serial.println("LED đã được tắt");
server.send(200, "text/plain", "LED OFF");
}
 

Cài đặt phím tắt trên điện thoại để gọi vào API

Cài đặt ứng dụng HTTP Request Shortcut

https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts&pli=1

Screenshot at May 10 16 58 55

Thêm Shortcut cho 2 API /led/on và /led/off 

Screenshot at May 10 16 59 50Screenshot at May 10 16 57 17