位置导航: ESP8266库 / ESP8266WiFiSTA库 / 本页
说明
config函数可以用来设置ESP8266模块在无线终端模式下的IP配置,并将站接口的IP地址设置为用户定义的值。
语法
wiFi.config()
wiFi.config(local_ip, gateway, subnet, dns1, dns2)
用法简例
1 2 3 4 5 |
IPAddress staticIP(192,168,1,22);//ESP8266的IP地址 IPAddress gateway(192,168,1,9); //网关IP地址 IPAddress subnet(255,255,255,0);//子网掩码 WiFi.config(staticIP, gateway, subnet);//进行设置 |
参数
local_ip: 配置ESP8266的固定IP地址。(IPAdress型)
gateway: 网关IP地址。(IPAdress型)
subnet: 子网掩码。(IPAddress型)
dns1,dns2: 这两个参数是可选参数。它们可定义域名服务器(DNS)的ip地址,这些域名服务器会关联一个域名目录,并将它们翻译成ip地址 (IPAddress型)
返回值
返回值会返回调用函数后是否有设置成功的结果。如果设置成功则返回true。数据类型为布尔型。
示例程序
关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。
当您将WiFi连接信息修改后并且将本示例程序上传ESP8266开发板后,开发板随即会自动连接WiFi。WiFi连接成功后,您将可以从串口监视器获取当前ESP8266开发板的网络配置信息。
以下程序中,我们首先使用了以下语句建立用于配置ESP8266模块的IP地址信息。
1 2 3 |
IPAddress staticIP(192, 168, 1, 22); IPAddress gateway(192, 168, 1, 9); IPAddress subnet(255, 255, 255, 0); |
接下来,我们使用以下语句对开发板进行网络配置。
1 |
WiFi.config(staticIP, gateway, subnet) |
在使用以下示例程序时请注意:
1.设置了静态IP地址的无线终端在连接WiFi时速度会更快。下面附带的例子用了500ms左右就可以连接上。原因是跳过了获得动态IP配置这一步。在设置固定IP时,要注意不要出现设置的ESP8266开发板IP地址与其它网络设备的IP发生冲突。
2.由于不同路由所提供的WiFi网络配置是不同的,使用本例程时请根据网络环境设置自己的网关IP、设备IP和子网掩码,否则可能会造成例程无法正常运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
/********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : WiFi.config()演示 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : 小黑 日期/Date(YYYYMMDD) : 20200405 程序目的/Purpose : 此程序使用ESP8266WiFiSTA库来演示建立连接,ESP8266模块设置无线终端模式下的IP配置。 ----------------------------------------------------------------------- 本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。 该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页: http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/ ***********************************************************************/ #include <ESP8266WiFi.h> #define AP_ssid "TaichiMaker_WIFI" //这里改成你的设备当前环境下要连接的接入点名字 #define password "xxxxxxx" //这里改成你的设备当前环境下要连接的接入点密码 int i = 0;//用来判定连接是否超时的累加量 IPAddress staticIP(192, 168, 1, 22);//请按照自己的网络环境设置这三个参数 IPAddress gateway(192, 168, 1, 9); IPAddress subnet(255, 255, 255, 0); void setup(void) { Serial.begin(9600); // 启动串口通讯,波特率设置为9600 Serial.printf("正在配置网络"); //无线终端模式下配置IP,并将接口的IP配置设置为用户定义的值 WiFi.config(staticIP, gateway, subnet); Serial.println("开始连接"); //调用 WiFi.begin()函数,开始连接接入点 WiFi.begin(AP_ssid, password); Serial.print("正在连接到"); Serial.print(AP_ssid); //这里的循环用来判断是否连接成功的。连接过程中每隔500毫秒会检查一次是否连接成功,,并打一个点表示正在连接中 //连接成功后会给出提示,但是若60秒后还是没有连接上,则会提示超时 while (WiFi.status() != WL_CONNECTED) { i++; delay(500); Serial.print("."); if (i > 120) { //60秒后如果还是连接不上,就判定为连接超时 Serial.print("连接超时!请检查网络环境"); break; } } Serial.println("网络连接成功"); //这一部分用来输出连接网络的基本信息 Serial.println("500"); // 延时500毫秒 Serial.print("当前工作模式:"); // 告知用户设备当前工作模式 Serial.println(WiFi.getMode()); Serial.print("连接到的接入点名字:"); Serial.println(AP_ssid); // 告知用户连接到的接入点WiFi名 Serial.print("连接到的接入点密码:"); Serial.println(password); // 告知用户连接到的接入点WiFi密码 Serial.print("无线终端模式成功开启"); Serial.print("当前无线终端静态IP地址: ");// 告知用户当前无线终端的IP地址(也就是我们设置的地址) Serial.println(WiFi.localIP()); Serial.print("当前无线终端网关的IP地址: ");// 告知用户当前无线终端网关的IP地址 Serial.println(WiFi.gatewayIP()); Serial.print("当前无线终端: ");// 告知用户当前无线终端的子网掩码地址 Serial.println(WiFi.subnetMask()); Serial.println("初始化完成"); } void loop() {} |
相关内容
– begin
位置导航: ESP8266库 / ESP8266WiFiSTA库 / 本页