Bình thường, chúng ta điền sẵn thông tin wifi và pass trong code esp8266, tuy nhiên cách này chỉ dùng được cho mục đích test tại chỗ, còn khi sử dụng thực tế thì rất bất tiện. Ví dụ khi bạn mang mạch đi khoe với bạn bè hay khi làm đồ án và mang lên trường để báo cáo, chả lẽ lại phải lôi laptop ra rồi nạp lại code
Trong bài này mình sẽ hướng dẫn các bạn 1 vài phương pháp để truyền thông tin wifi xuống cho esp8266 mà không cần nạp lại code, đó là sử dụng chế độ Wifi AP ( điểm truy cập)
Cụ thể, ESP sẽ phát ra 1 wifi để điện thoại connect vào và truyền thông tin wifi xuống cho esp8266 qua giao thức http
Sử dụng thư viện wifi manager
Tải thư viện wifi manager tại đây
Ngoài ra, các bạn cài thêm thư viện ArduinoJSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager void setup() { WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP Serial.begin(115200); WiFiManager wm; bool res; res = wm.autoConnect("AutoConnectAP"); // password protected ap if(!res) Serial.println("Failed to connect"); else Serial.println("connected...yeey :)"); } void loop() { } |
Quy trình hoạt động của nó như sau:
Khi ESP khởi động, nó sẽ thử kết nối vào wifi đã được kết nối trước đó, nếu không thành công. Nó sẽ phát ra wifi tên là AutoConnectAP
Chúng ta chỉ việc lấy điện thoại ra và kết nối vào wifi AutoConnectAP, 1 của sổ sẽ bật lên và bạn chỉ việc chọn wifi nhà và điền password vào là xong
Nếu cửa sổ cài đặt không tự động mở lên thì các bạn vào chrome hoặc bất kì trình duyệt nào rồi gõ 192.168.4.1 là được