Lập trình ESP32 – Bài 2: Kết nối WiFi và kiểm tra Internet với ESP32

Hướng dẫn cách kết nối ESP32 với mạng WiFi, kiểm tra trạng thái kết nối Internet và in địa chỉ IP lên Serial Monitor. Áp dụng cho mọi board ESP32 DevKit.

Mục lục

  1. Giới thiệu
  2. Phần cứng cần chuẩn bị
  3. Phần mềm và thư viện
  4. Sơ đồ kết nối
  5. Mã nguồn ví dụ
  6. Giải thích mã
  7. Kết quả khi chạy
  8. Gợi ý mở rộng

1. Giới thiệu

Kết nối WiFi là bước đầu tiên để biến ESP32 trở thành thiết bị IoT thực thụ.

Sau khi thiết lập WiFi thành công, ESP32 có thể gửi dữ liệu cảm biến lên server, MQTT broker, hoặc hiển thị thông tin trên web.

Trong bài này, bạn sẽ học cách:

  • Kết nối ESP32 vào mạng WiFi gia đình.
  • Kiểm tra trạng thái kết nối.
  • In địa chỉ IP lên Serial Monitor.

2. Phần cứng cần chuẩn bị

  • Bo mạch ESP32 DevKit V1 (38 pin)
  • Cáp USB Type-C (hoặc Micro-USB)
  • Máy tính có Internet và cài Arduino IDE

Ghi chú: không cần thêm linh kiện ngoài vì chỉ sử dụng WiFi tích hợp.

3. Phần mềm và thư viện

  • Arduino IDE + thư viện ESP32 (đã cài ở bài 1).
  • Không cần cài thêm thư viện phụ.

4. Sơ đồ kết nối

Ghi chú: ESP32 nhận nguồn trực tiếp qua cổng USB, không cần đấu thêm linh kiện nên không cần sơ đồ kết nối dây.

5. Mã nguồn ví dụ

#include <WiFi.h>

const char *ssid = "YourWiFiName"; // thay bằng tên WiFi của bạn
const char *password = "YourPassword"; // thay bằng mật khẩu WiFi

void setup()
{
    Serial.begin(115200);
    delay(1000);
    Serial.println("Connecting to WiFi...");
    WiFi.begin(ssid, password);
    int retry = 0;

    while (WiFi.status() != WL_CONNECTED && retry < 20)
    {
        delay(500);
        Serial.print(".");
        retry++;
    }

    if (WiFi.status() == WL_CONNECTED)
    {
        Serial.println("\n✅ Connected!");
        Serial.print("IP address: ");
        Serial.println(WiFi.localIP());
    }
    else
    {
        Serial.println("\n❌ Failed to connect WiFi.");
    }
}

void loop()
{

    // kiểm tra trạng thái mỗi 10 giây
    if (WiFi.status() != WL_CONNECTED)
    {
        Serial.println("⚠️ Lost connection. Trying to reconnect...");
        WiFi.reconnect();
    }
    else
    {
        Serial.println("WiFi still connected.");
    }
    delay(10000);
}

6. Giải thích mã

  • WiFi.begin(ssid, password); – khởi động kết nối tới mạng WiFi.
  • WiFi.status() – kiểm tra trạng thái (WL_CONNECTED = đã kết nối).
  • WiFi.localIP() – in địa chỉ IP mà router cấp cho ESP32.
  • WiFi.reconnect() – tự động kết nối lại khi mất WiFi.

7. Kết quả khi chạy

Trên Serial Monitor bạn sẽ thấy:

Connecting to WiFi ………….

✅ Connected!

IP address: 192.168.1.105

Nếu nhập sai mật khẩu hoặc không có mạng, sẽ báo lỗi “Failed to connect WiFi”.

8. Gợi ý mở rộng

  • Gửi dữ liệu lên web hoặc MQTT sau khi kết nối.
  • Thêm đèn LED báo trạng thái WiFi.
  • Lưu SSID/PASS vào Flash (Preferences).

Comments

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *