Không kết nối được esp8266mod trên mac
Kết nối phần cứng¶Kết nối USB với Board mạch IoT WiFi Uno như hình bên dưới, đảm bảo đèn LED (khoanh tròn) sáng Show Cài đặt USB Driver¶Tùy thuộc từng hệ điều hành, làm theo các hướng dẫn bên dưới Mac OS¶Mac OS Sierra¶Một số trường hợp đã cài đặt driver phiên bản cũ, tuy nhiên sau khi nâng cấp lên Sierra sẽ bị reset ngay khi cắm USB vào. Để xử lý vấn đề này như sau:
Cấu hình kết nối¶
Khái niệm cơ bản¶Thiết bị kết nối vào mạng WIFI được gọi là station (trạm). Việc kết nối vào mạng Wifi được hỗ trợ bởi một access point (AP), một AP có chức năng như một hub nhưng dùng cho nhiều station. Một access point thông thường được kết nối vào một mạng dây để phát WIFI (tức là chuyển từ mạng dây sang WIFI). Do đó access point luôn được tích hợp vào router. Mỗi access point được nhận biết bằng một SSID (Service Set IDentifier), SSID cũng là tên của mạng hiển thị khi ta kết nối vào WIFI. Thư viện ESP8266WiFi.h có hỗ trợ các câu lệnh để module thưc hiện việc kết nối vào WIFI (làm chức năng của station). Nội dung của lớp này được chia thành 4 phần:
Mục lục¶
Kết nối¶begin¶Để chuyển đối sang chế độ station, ta dùng hàm WiFi.begin(ssid, password) Theo mặc định, ESP sẽ cố kết nối lại đến mạng WiFi sau khi bị disconnect. Do đó chúng ta không cần phải xử lý việc này trong code. Gọi hàm này module sẽ chuyển sang chế độ station và kết nối với điểm truy cập cuối cùng được sử dụng dựa trên cấu hình được lưu trong bộ nhớ flash. Để thiết lập tất cả các thông số, ta có thể dùng lệnh: WiFi.begin(ssid, password, channel, bssid, connect) Các thông số:
config¶Lệnh này sẽ vô hiệu hóa DHCP và thiết lập cấu hình IP tĩnh cho station. WiFi.config(local_ip, gateway, subnet, dns1, dns2) Các đối số:
Ví dụ: #include output Connecting to gith-wifi . Connected, IP address: 192.168.1.22 Video DEMO¶Quản lý kết nối¶reconnect¶Điều này được thực hiện bằng cách ngắt kết nối sau đó thiết lập kết nối lại đến cùng một điểm truy cập. Ghi chú
Ví dụ: WiFi.reconnect(); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } disconnect¶Thiết lập cấu hình
isConnected¶Trả về setAutoConnect¶Định cấu hình module để tự động kết nối khi cấp nguồn đến điểm truy cập cuối cùng được sử dụng. WiFi.setAutoConnect(autoConnect)
getAutoConnect¶Đây là chức năng đi đôi với Trả về setAutoReconnect¶Thiết đặt cho module tự động kết nối lại với một điểm truy cập trong trường hợp nó bị ngắt kết nối. WiFi.setAutoReconnect(autoReconnect) Nếu tham số Ghi chú Chạy waitForConnectResult¶Chờ cho đến khi module kết nối với điểm truy cập. Chức năng này dành cho
các module được cấu hình trong chế độ WiFi.waitForConnectResult() Chức năng trả về một trong các trạng thái kết nối sau đây:
Cấu hình¶macAddress¶Lấy địa chỉ MAC của ESP station Với Ví dụ: if (WiFi.status() == WL_CONNECTED) { uint8_t macAddr[6]; WiFi.macAddress(macAddr); Serial.printf("Connected, mac address: %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]); } Nếu bạn không muốn sử dụng con trỏ, bạn có thẻ dùng lệnh dưới, nó trả về một định dạng if (WiFi.status() == WL_CONNECTED) { Serial.printf("Connected, mac address: %s\n", WiFi.macAddress().c_str()); } output: localIP¶Chức năng dùng để lấy địa chỉ IP của ESP station Kiểu trả về là đại chỉ IP của module ESP8266. if (WiFi.status() == WL_CONNECTED) { Serial.print("Connected, IP address: "); Serial.println(WiFi.localIP()); } output: Connected, IP address: 192.168.1.10 subnetMask¶Trả về subnet mask của ESP station Module nên được kết nối với điểm truy cập. Nếu không sẽ trả về 0.0.0.0 Serial.print("Subnet mask: "); Serial.println(WiFi.subnetMask()); output: Subnet mask: 255.255.255.0 gatewayIP¶Lấy địa chỉ IP của gateway Serial.printf("Gataway IP: %s\n", WiFi.gatewayIP().toString().c_str()); output: dnsIP¶Lấy địa chỉ IP của Máy chủ Tên miền (DNS). Với tham số đầu vào Ví dụ; Serial.print("DNS #1, #2 IP: "); WiFi.dnsIP().printTo(Serial); Serial.print(", "); WiFi.dnsIP(1).printTo(Serial); Serial.println(); output: DNS #1, #2 IP: 62.179.1.60, 62.179.1.61 hostname¶Lấy DHCP hostname được gán cho ESP station. Trả về kiểu Tên máy chủ có thể được thay đổi bằng cách sử dụng chức năng sau: Tham số đầu vào Ví dụ, nếu giới hạn 32 ký tự vượt quá, chức năng sẽ trả lại Ví dụ: Serial.printf("Default hostname: %s\n", WiFi.hostname().c_str()); WiFi.hostname("Station_Tester_02"); Serial.printf("New hostname: %s\n", WiFi.hostname().c_str()); output: Default hostname: ESP_081117 New hostname: Station_Tester_02 status¶Trả về trạng thái kết nối Wi-Fi. Chức năng trả về một trong các trạng thái kết nối sau đây:
Giá trị trả lại kiểu Ví dụ: #include output: Connection status: 6 Connecting to sensor-net Connection status: 6 ...... Connection status: 3 Connected, IP address: 192.168.1.10 Các trạng thái kết nối đặc biệt 6 và 3 có thể được xem xét trong wl_definitions.h như sau: 3 - WL_CONNECTED 6 - WL_DISCONNECTED Dựa trên ví dụ này, khi chạy trên mã, mô-đun ban đầu bị ngắt kết nối khỏi mạng và trả về trạng thái kết nối 6 - SSID¶Trả lại tên của mạng Wi-Fi đã kết nối. Kiểu trả về Serial.printf("SSID: %s\n", WiFi.SSID().c_str()); output: psk¶Trả lại mật khẩu hiện tại của WiFi mà module đã kết nối tới: Kiểu trả về Ví dụ: Mô tả: Với module ESP8266 đã kết nối wifi ở trên,ta cần hiển thị password wifi đã kết nối Ví dụ: #include output: BSSID¶Trả lại địa chỉ mac điểm truy cập mà ESP kết nối đến. Trả về một con trỏ đến vị trí nhớ (một mảng Hàm dưới đây có chức năng tương tự, nhưng trả lại BSSID là một kiểu Serial.printf("BSSID: %s\n", WiFi.BSSIDstr().c_str()); output: Kết nối khác¶ESP8266 SDK cung cấp các phương pháp thay thế để kết nối trạm ESP với một điểm truy cập. Core esp8266 / Arduino thực hiện WPS và Smart Config như mô tả dưới đây. WPS¶Chức năng Tùy thuộc vào kết quả kết nối chức năng trả về Ví dụ: #include output: Wi-Fi mode set to WIFI_STA Begin WPS (press WPS button on your router) ... Success ......... Connected, IP address: 192.168.1.102 Smart Config¶Để bắt đầu thiết lập cấu hình bằng chức năng này, dùng lệnh sau: Kiểm tra trạng thái để quyết định khi ngừng cấu hình. Chức năng trả về Dừng cấu hình thông minh, giải phóng bộ đệm Để biết thêm chi tiết về Smart Config, vui lòng tham khảo tại đây. |