来源
https://arduino-esp8266.readthedocs.io/en/3.0.2/ideoptions.html
https://www.arduino.cc/en/Reference/WiFi
WIFI库
连接示例
#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
Serial.println();
WiFi.begin("network-name", "pass-to-network");
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
}
void loop(){}
包含的class
-
Station 连接wifi
-
SOFT-AP 作为软路由-提供其他设备联网能力
-
Scan 扫描范围内的SSID
-
Client
WiFiClient() connected() connect() write() print() println() available() read() flush() stop()
-
WiFi Multi 记录多个ap并在断线时选择信号最好的wifi连接
#include <ESP8266WiFiMulti.h> ESP8266WiFiMulti wifiMulti; // WiFi connect timeout per AP. Increase when connecting takes longer. const uint32_t connectTimeoutMs = 5000; void setup() { // Set in station mode WiFi.mode(WIFI_STA); // Register multi WiFi networks wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1"); wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); } void loop() { // Maintain WiFi connection if (wifiMulti.run(connectTimeoutMs) == WL_CONNECTED) { ... } }
-
Server
例子#include <ESP8266WiFi.h> const char* ssid = "********"; const char* password = "********"; WiFiServer server(80); void setup() { Serial.begin(115200); Serial.println(); Serial.printf("Connecting to %s ", ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" connected"); server.begin(); Serial.printf("Web server started, open %s in a web browser\n", WiFi.localIP().toString().c_str()); } // prepare a web page to be send to a client (web browser) String prepareHtmlPage() { String htmlPage; htmlPage.reserve(1024); // prevent ram fragmentation htmlPage = F("HTTP/1.1 200 OK\r\n" "Content-Type: text/html\r\n" "Connection: close\r\n" // the connection will be closed after completion of the response "Refresh: 5\r\n" // refresh the page automatically every 5 sec "\r\n" "<!DOCTYPE HTML>" "<html>" "Analog input: "); htmlPage += analogRead(A0); htmlPage += F("</html>" "\r\n"); return htmlPage; } void loop() { WiFiClient client = server.available(); // wait for a client (web browser) to connect if (client) { Serial.println("\n[Client connected]"); while (client.connected()) { // read line by line what the client (web browser) is requesting if (client.available()) { String line = client.readStringUntil('\r'); Serial.print(line); // wait for end of client's request, that is marked with an empty line if (line.length() == 1 && line[0] == '\n') { client.println(prepareHtmlPage()); break; } } } while (client.available()) { // but first, let client finish its request // that's diplomatic compliance to protocols // (and otherwise some clients may complain, like curl) // (that is an example, prefer using a proper webserver library) client.read(); } // close the connection: client.stop(); Serial.println("[Client disconnected]"); } }
-
UDP UDP通信
begin() available() beginPacket() endPacket() write() parsePacket() peek() read() flush() stop() remoteIP() remotePort()
初心者のための外国為替取引ビデオ. https://jp.system-forex.com