SmartConfig với ESP8266

Smartconfig là một khái niệm được nhắc đến khi người dùng muốn cấu hình thông tin cho thiết bị dùng WiFi (ở đây là ESP8266) có khả năng kết nối nhanh chóng đến Internet nhất thông qua các thao tác trên chính thiết bị (điện thoại) của họ.

Chúng ta cùng xem qua một hình minh họa để hiểu thêm




Để hiểu một cách đơn giản thì Smart config nghĩa là chúng ta gửi thông tin mạng wifi (bao gồm tên wifi và password wifi) cho ESP thông qua smartphone thay cho cách thông thường là phải khai báo thông tin này trong chương trình và nạp firmware xuống.

Vậy ưu điểm của SmartConfig là gì ?
  • Dễ dàng cấu hình wifi cho ESP8266 thông qua smartphone. 
  • Không cần phải nạp lại code để cấu hình 
  • Có thể dùng Smartconfig để cấu hình nhiều thiết bị một lúc 

Chuẩn bị

Phần cứng
Node MCU hoặc ESP8266 phiển bản bất kỳ + USB2UART modul (mình dùng NodeMCU)
Smartphone (mình dùng Android phone) 

Phần mềm
Android: tại ESP-Touch Android hoặc tải trực tiếp từ Playstore ESP8266 SmartConfig , 2 phiên bản giống nhau về cách smartconfig nên các bạn yên tâm sử dụng
iOS: bạn có thể tải trên Appstore.

Cách SmartConfig cho ESP8266 ?

Trước hết cần có chương trình để nạp xuống ESP8266 trước, mình giải thích trong code cho các bạn tiện theo dõi.


#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

WiFiUDP Udp;

void setup() {
  int cnt = 0;
  //Khi to baud 115200
  Serial.begin(115200);
  //Mode wifi là station
  WiFi.mode(WIFI_STA);
  //Ch kết ni
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    if(cnt++ >= 10){
       WiFi.beginSmartConfig();
       while(1){
           delay(1000);
           //Kim tra kết ni thành công in thông báo
           if(WiFi.smartConfigDone()){
             Serial.println("SmartConfig Success");
             break;
           }
       }
    }
  }
  
  Serial.println("");
  Serial.println("");
  
  WiFi.printDiag(Serial);
  
  // Khi to server
  Udp.begin(49999);
  Serial.println("Server started");

  // In địa ch IP
  Serial.println(WiFi.localIP());
}

void loop() {
  // Nhn gói tin gi t ESPTouch
  Udp.parsePacket();
  //In IP ca ESP8266
  while(Udp.available()){
    Serial.println(Udp.remoteIP());
    Udp.flush();
    delay(5);
  }
}


Tiếp theo chúng ta thực hiện theo các bước sau
  1. Nạp chương trình trên cho ESP để kích hoạt chức năng Smart Config.
  2. Kết nối smartphone với mạng wifi hiện có.
  3. Mở ESP-TOUCH App đã cài đặt trên smartphone.
  4. Kiểm tra SSID (tương ứng với tên Wifi) và mật khẩu (ở đây là mật khẩu wifi của bạn) để kết nối tới thiết bị.
  5. Thực hiện ấn nút trong thời gian ngắn trên NodeMCU sau đó thả ra sẽ có thông báo.

Các bạn có thể theo dõi hình bên dưới để biết cách thao tác



Coi như chúng ta đã có thể cấu hình nhanh chóng thông tin wifi cho ESP8266 mà không cần phải tác động thay đổi vào code firmware gì nhiều, việc này rất thuận lợi trong trường hợp bạn mang món đồ có dùng ESP8266 tới nhà bạn gái mà không kết nối được wifi, giờ không lẽ bảo bạn gái đi cài Arduino vào để anh lập trình điều chỉnh tên wifi, password, quá vất vả phải không ? Giờ thì bạn có thể ứng dụng nó vào các bài hướng dẫn khác của mình rồi.

Nếu các bạn muốn tìm hiểu thêm về code android ios chương trình smartconfig bạn có thể tham khảo ở đây

Nguồn https://hocarm.org

Nhận xét

Bài đăng phổ biến từ blog này

Cài đặt thư viện của ESP32 để lập trình trong Arduino