Skip to main content

SmartConfig với ESP8266

 SmartConfig là gì ? Làm sao để sử dụng SmartConfig với ESP8266 ?

Hẳn là các bạn có nghe về cấu hình tự động rồi chứ ? Bạn nghĩ thế nào nếu chỉ với một chiếc điện thoại smartphone là có thể làm cho ESP8266 có thể kết nối vào wifi được ? Mình cùng thử cách làm thôi

Smartconfig ?

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;
  //Khởi tạo baud 115200
  Serial.begin(115200);
  //Mode wifi là station
  WiFi.mode(WIFI_STA);
  //Chờ kết nối
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    if(cnt++ >= 10){
       WiFi.beginSmartConfig();
       while(1){
           delay(1000);
           //Kiểm tra kết nối thành công in thông báo
           if(WiFi.smartConfigDone()){
             Serial.println("SmartConfig Success");
             break;
           }
       }
    }
  }
  
  Serial.println("");
  Serial.println("");
  
  WiFi.printDiag(Serial);
  
  // Khởi tạo server
  Udp.begin(49999);
  Serial.println("Server started");

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

void loop() {
  // Nhận gói tin gửi từ ESPTouch
  Udp.parsePacket();
  //In IP của ESP8266
  while(Udp.available()){
    Serial.println(Udp.remoteIP());
    Udp.flush();
    delay(5);
  }
}
Arduino

Tiếp theo chúng ta thực hiện theo các bước sau

  • Nạp chương trình trên cho ESP để kích hoạt chức năng Smart Config.
  • Kết nối smartphone với mạng wifi hiện có.
  • Mở ESP-TOUCH App đã cài đặt trên smartphone.
  • 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ị.
  • 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

Về cơ bản, các ứng dụng SmartConfig sẽ gửi các gói UDP theo chu kì lặp lại, ESP8266 sẽ giám sát mạng và tìm thấy các gói được gửi lặp đi lặp lại và lấy thông tin từ đó.

Tạm kết

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.

Comments

Popular posts from this blog

Hướng dẫn các bước lập trình trung tâm báo cháy Hochiki HCP 1000 seris

   1. Đèn trạng thái báo động ngõ ra Continuous:  Bật 100% thời gian. Temporal Code : Đèn 0.5s sáng, 0.5s tắt trong 3 lần, tạm ngừng 1.5s. March Cod e:  Đèn 0.5s sáng, 0.5s tắt liên tục. California Code : Đèn 5s sáng, 10s tắt. Two-stage codes: Alert Code:  Đèn 0.5s sáng, 2.75s tắt. General Alarm: Đèn được cài đặt riêng.  2.   Mô tả cài đặt hệ thống, Lập trình TTBC HCP 1000 Cấu hình của  bảng điều khiển  trung tâm báo cháy HCP 1000 được thực hiện bởi sự kết hợp của cấu hình cài đặt công tắc DIP và nhấn nút   ACKNOW-  LEDGE  (nút vàng),  RENERAL ALRM  ( nút đỏ). Có thể truy cập các công tắc DIP cấu hình từ module hiển thị chính sau khi gỡ bỏ vỏ bảo vệ. Các công tắc DIP được dán nhãn CONFIG. 1 đến 8 Hoạt động bình thường của hệ thống bị tạm ngắt  trong khi chế độ cấu hình được kích hoạt. Truy cập chế độ cấu hình bất cứ khi nào công tắc DIP cấu hình được đặt theo các mã được liệt kê trong bên dưới...

Cảm biến MQ2 cảnh báo khói qua điện thoại với ESP8266 và ứng dụng Blynk

1. Chuẩn bị: + NodeMCU ESP8266 + Cảm biến Khói, Gas (MQ-2 Smoke Gas Sensor) + BreadBoard + Jumpers 2. Kết nối: MQ2   <kết nối>  NodeMCU             A0  <--->  A0 GND  <--->  GND VCC  <--->  3.3V 3. Code Blynk: // youtube.com/c/nnchau // Blynk MQ-2 Smoke Detector #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <SimpleTimer.h> #define BLYNK_PRINT Serial char auth[] = "mã Blynk"; char ssid[] = "tên WiFi"; char pass[] = "mật khẩu WiFi"; SimpleTimer timer; int mq2 = A0; int data = 0; void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); timer.setInterval(1000L, getSendData); } void loop() { timer.run(); Blynk.run(); } void getSendData() { data = analogRead(mq2); Blynk.virtualWrite(V2, data); if (data > 700) { Blynk.notify("Smoke Detected!"); } }

Cảm biến nhiệt độ ẩm DHT11 với ESP8266 và ứng dụng BLYNK

  1. Chuẩn bị:      + NodeMcu ESP8266      + DHT11 Temperature Sensor      + BreadBoard      + Jumpers 2. Kết nối: 3. Code Blynk:   //www.youtube.com/c/nnchau //Cảm biến nhiệt, độ ẩm DHT11 /************************************************************** * App project setup: * Value Display widget attached to V5 * Value Display widget attached to V6 * **************************************************************/ #define BLYNK_PRINT Serial #include <SPI.h> #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <SimpleTimer.h> #include <DHT.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = ""; //Enter the Auth code which was send by Blink // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = ""; //Enter your WIFI Name char pass[] = ""; //Enter your WIFI Password #define DHTPIN 2 ...