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
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 ...

Sau đó chọn gói esp32 By Espressif

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 )

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


Nạp Code vào ESP32

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
Thêm Shortcut cho 2 API /led/on và /led/off