接入WIFI模式
参考:http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/internet-basics/link-layer/
模式1 – 无线终端模式(Wireless Station)
简单说就是把这个开发板做为终端连入WiFi
程序实例
需要注意:端口号,串口波特率,打开监视串口后复位开发板,连接同一个WiFi网络
#include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库
const char* ssid = "Tenda_2E5100"; // 连接WiFi名 (需要已有的个人网络,不能随意取名字)
const char* password = "88888888"; // 连接WiFi密码
void setup() {
Serial.begin(9600); // 启动串口通讯
WiFi.begin(ssid, password); // 和另一种模式不同,启动网络连接
Serial.print("\n Connecting to "); // 串口监视器输出网络连接信息
Serial.print(ssid); Serial.println(" ..."); // 告知用户NodeMCU正在尝试WiFi连接
int i = 0; // 这一段程序语句用于检查WiFi是否连接成功
while (WiFi.status() != WL_CONNECTED) { // WiFi.status()函数的返回值是由NodeMCU的WiFi连接状态所决定的。
delay(1000); // 如果WiFi连接成功则返回值为WL_CONNECTED
Serial.print(i++); Serial.print("**"); // 此处通过While循环让NodeMCU每隔一秒钟检查一次WiFi.status()函数返回值
} // 同时NodeMCU将通过串口监视器输出连接时长读秒。
Serial.println("");
Serial.println(WiFi.status()); //返回值是3
Serial.println("Connection established!"); // NodeMCU将通过串口监视器输出"连接成功"信息。
Serial.print("IP address: "); // 同时还将输出NodeMCU的IP地址。这一功能是通过调用
Serial.println(WiFi.localIP()); // 该函数的返回值即NodeMCU的IP地址。是开发板被路由分配的IP
}
void loop() {
}
可选择多个WiFi接入点的库
#include <ESP8266WiFiMulti.h>
//下面会自动连接信号强的一个
wifiMulti.addAP(SSID1", "PASS1"); // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。
wifiMulti.addAP(SSID2", "PASS2"); // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。
wifiMulti.addAP(SSID3", "PASS3"); // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。
模式2 – 接入点模式(Access Point, 也称 AP)
将开发板做为了一个网络通道的中继站,相当于一个路由
程序实例
需要注意:端口号,串口波特率,打开监视串口后复位开发板
#include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库
const char *ssid = "MAR-TEST"; // 这里定义将要建立的WiFi名称。
const char *password = "88888888"; // 这里定义将要建立的WiFi密码。
void setup() {
Serial.begin(9600); // 启动串口通讯
WiFi.softAP(ssid, password); // 将开发板设置为无线接入点,和另一种模式不同
Serial.print("\n Access Point: "); // 通过串口监视器输出信息
Serial.println(ssid); // 告知用户NodeMCU所建立的WiFi名
Serial.print("IP address: "); // 以及NodeMCU的IP地址
Serial.println(WiFi.softAPIP()); // 通过调用WiFi.softAPIP()可以得到NodeMCU的IP地址
}
void loop() {
}
通过终端(电脑的CMD环境),检测建立是否正确,但需要把终端连接到"MAR-TEST"的WiFi网络(开发板自己的WiFi)
模式3-前两种模式合并使用
两种模式使用函数的比较
无线接入点模式:
WiFi.softAP(ssid, password); // 将开发板设置为无线接入点,和另一种模式不同
Serial.println(WiFi.localIP()); //开发板自己做为WiFi的IP地址
无线终端模式:
WiFi.begin(ssid, password); //开始连接WiFi
Serial.println(WiFi.localIP()); //显示连接成功后路由器分配个开发板的IP