接入点模式
第一种模式为接入点模式,简称AP模式类似wifi热点,其他设备可以接入SEP8266,
结构图如下:
图1
这种接入模式的代码如下
#include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库
const char *ssid = "taichi-maker";
const char *password = "12345678";
void setup() {
Serial.begin(9600); // 启动串口通讯
WiFi.softAP(ssid, password);
Serial.print("Access Point: "); // 通过串口监视器输出信息
Serial.println(ssid); // 告知用户NodeMCU所建立的WiFi名
Serial.print("IP address: "); // 以及NodeMCU的IP地址
Serial.println(WiFi.softAPIP()); // 通过调用WiFi.softAPIP()可以得到NodeMCU的IP地址
}
void loop() {
}
代码解析:
第一步:首先导入wifi库,
第二步:导入wifi库后会有一个WIFI全局对象,此对象上有一个方法,softAP,这个方法需要传递两个参数,第一个参数为wifi的账户,第二个为密码。并且数据类型为char,调用方式为:WiFi.softAP(ssid, password);
第三步:到第二步基本就算完成了,为了得到sep8266本身这个热点的IP,需要调用wifi的softAPIP方法。
终端模式
示意图如下:
图2
代码如下:
#include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库
const char* ssid = "taichi-maker";
const char* password = "12345678";
void setup() {
Serial.begin(9600); // 启动串口通讯
WiFi.begin(ssid, password); // 启动网络连接
Serial.print("Connecting to ");
Serial.print(ssid); Serial.println(" ...");
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将通过串口监视器输出连接时长读秒。
// 这个读秒是通过变量i每隔一秒自加1来实现的。
Serial.println(""); // WiFi连接成功后
Serial.println("Connection established!"); // NodeMCU将通过串口监视器输出"连接成功"信息。
Serial.print("IP address: "); // 同时还将输出NodeMCU的IP地址。这一功能是通过调用
Serial.println(WiFi.localIP()); // WiFi.localIP()函数来实现的。该函数的返回值即NodeMCU的IP地址。
}
void loop() {
}
阅读源码
第一步:导入weifi库;
第二步:生命需要链接的wifi的账号和秘密
第三步:启动网络链接,调用的是begin方法:WiFi.begin(ssid, password);
第四步:使用while循环和status方法重复检测,直至wifi链接:
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(i++); Serial.print(' ');
}
status方法会获取wifi的链接状态,而WL_CONNECTED是wifi链接成功后返回的状态;
注意:获取esp8266这个设备的局域网的ip是通过localIP方法。