24小時聯系電話:18217114652、13661815404
中文
行業資訊
ESP8266 操作 WIFI 模式
ESP8266 操作 WIFI 模式
我們將 ESP8266 連接到預先存在的 WIFI 網絡。它是項目中常用的方法,尤其是當有興趣訪問互聯網時。
對于這些情況,ESP8266 作為網絡上的“站”運行。但是我們可以找到沒有WIFI網絡連接的場景。在這些情況下,我們還可以使用 ESP8266 嗎?
ESP8266 操作模式
ESP8266 WiFi 模塊可以在 2 種不同模式下運行:
STA (該模塊作為一個站運行,可用于連接到接入點)。
AP (該模塊創建一個具有可自定義 SSID 和密碼的網絡。我們將討論每種模式的工作原理、其局限性以及如何使用
STA模式
我們使用 STA 模式將 ESP8266 連接到預先存在的 Wi-Fi 網絡。此連接由一個接入點建立,該接入點將負責管理信息流量。
在 Arduino 平臺上配置和使用,我們使用 ESP8266WiFi.h 庫。該庫使用簡單且功能強大,為我們提供了配置 WiFi 模塊的所有工具,而不會讓我們用標志和寄存器過載。
對于我們的配置,還有兩個相關的函數,begin() 和 config()。
開始()函數
begin() 函數需要一些必要的參數,其他可選的。這是因為該函數屬于重載類型,在調用函數時提供了更大的靈活性。舉個更好的例子,讓我們看看 begin() 函數的完整形式和最小形式:
完整形式:begin(ssid, password, channel, bssid, connect)
最小形式:begin(ssid, password)
相同的功能,兩種調用方式。兩者都有效。這是因為它是在庫中使用不止一種聲明格式構建的。
我們來看看它接受的參數:
SSID:我們要連接的網絡的名稱。必填字段,最多可包含 32 個
password : 所選必填字段的密碼,必須在 8 到 64 個字符之間。
channel:定義帶寬 此參數是可選的,在具有許多不同網絡的區域中很有用。選擇好的信道可以最大限度地減少干擾并增加網絡覆蓋范圍。如果省略,它將被自動選中。
bssid:另外一個可選參數。如果設置為 true,該函數將返回它所連接的 AP 的 MAC
Connect:一個布爾參數,如果設置為 false,將保存函數中定義的參數,但不會連接到
此信息將保存在 FLASH 的保留區域中,如果連接丟失,將自動嘗試重新連接。
另一個重要的點是,默認情況下,該站被配置為 DHCP(動態主機配置協議)客戶端。這意味著在連接時,ESP8266 會向接入點詢問 IP 地址。如果 AP 啟用了 DHCP,我們將在那里配置的網絡范圍內收到一個隨機 IP。
配置()函數
config() 函數對于站點等連接不是必需的。但是,如果您想使用固定 IP 地址連接到網絡,則需要它。該函數具有以下格式:
config(local_ip, gateway, subnet, dns1, dns2)其中參數代表:
local_ip:我們要分配給
網關:接入點 IP 地址。
子網:我們將要訪問的網絡的 IP 掩碼
dns1 和 dn2:DNS 服務器(域名服務器)的 IP 地址的可選字段。
當我們調用 config() 函數時,會自動禁用 DHCP 模式。然后站會強制使用我們選擇的地址。當通過沒有 DHCP 服務器的網絡連接時,或者當具有固定地址是基本項目要求時,此方法很有用。
選擇IP地址和子網時需要小心,好像和網絡配置不兼容,我們會連接,但我們將無法與任何東西交互。
在圖像中,我們有一個作為站的配置和連接代碼。
接入點模式 (AP)
在 AP 模式下,ESP8266 創建其 WiFi 網絡,允許站點連接到它。下圖應該可以幫助您更好地了解它的工作原理。ESP8266配置為AP,代替了路由器在網絡中的作用(有一定的局限性,但原理是一樣的)。
嚴格來說,這種模式的名稱是Soft Access Point,因為作為AP的功能不使用任何等同于普通AP的硬件資源。它就像一個虛擬 AP。這不會影響健康,但會嚴重影響性能。
主要限制是它可以管理的連接數。雖然廠商建議最多連接8個站,但是超過5個就會有嚴重的問題。如果你的應用數據流量很大,我建議你限制為4個連接。
另一個限制是創建的網絡未連接到 Internet。因此請記住,這是適用于在本地網絡和少數設備上運行良好的應用程序的模型。
這種格式的一個示例應用是訪問控制系統。用手機靠近,連接ESP8266網絡,獲得開門權限。
設置此模式與設置站點非常相似。我們有一個用于開始的重載函數和另一個用于配置的重載函數。
softAP() 函數
它相當于我們的車站模式 begin() 函數。
softAP(ssid):創建一個沒有密碼的開放網絡。
softAP(ssid, password, channel, hidden, max_connection):創建一個受保護的網絡。
讓我們為每個參數取一個:
SSID:我們網絡的名稱,最多可以包含 63 這是角色中唯一的必填字段,不能為空。
密碼:此字段包含工作站連接時需要輸入的密碼。如果沒有通知,網絡將是開放的,可以在沒有任何安全性的情況下訪問。如果包含一個,則必須至少包含 8 個字符,遵循 WPA2-PSK 網絡安全標準。
Channel : 正如我們為站討論的,這個字段定義了 wifi 操作 它必須接收一個從 1 到 13 的數值。如果沒有通知,它將接收 1 作為默認值。
Hidden : 如果設置為 true,SSID 將不可見且無法被標識符檢測到(例如在您手機的 WiFi 網絡列表中。如果站寫,網絡仍然可以連接
Max_connection:定義允許的最大站數。接收從 0 到 8 的值,默認值為 4。
softAPConfig() 函數
此函數設置一些參考 IP 地址的參數。它的格式為:WiFi.softAPConfig(local_ip, gateway, subnet)
其中參數代表:
Local_ip : 接入點的 IP 地址
網關:網關的IP 地址(這是站將用作交換機的地址)
子網:定義 IP 范圍
使用該代碼,您將配置一個對您的手機或計算機可見的簡單接入點。
STA + AP 模式
顧名思義,esp8266 將同時作為一個站點(能夠連接到網絡)和一個接入點(允許站點連接到它)運行。
這種方法背后的目的是在網狀網絡配置中使用 esp8266。這個想法很有趣,但是如果作為 AP 運行時性能還不是很出色,可以想象為 AP 和 STA。
這種格式的文檔非常稀缺,在某種程度上,制造商本身已經放棄了。樂鑫在推出 ESP8266 的繼任者 ESP32 時,包含了一個特定的 MESH 庫。