前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ESP8266如何设置wifi。

ESP8266如何设置wifi。

原创
作者头像
挥刀北上
修改2020-07-27 10:54:42
7.6K0
修改2020-07-27 10:54:42
举报
文章被收录于专栏:Node.js开发Node.js开发

esp8266设置WIFI常用方法有两种方式,一种是接入点模式,此种方式esp8266将作为一个热点,其他设备可以连接这个热点,这种方式的英文名称为Access Point, 也称 AP。

另外一种为终端模式,英文名称为Station,简写为STA,此种方式将esp8266作为一台设备连接到局域网路由,从而其他在同一局域网的设备可以访问web服务器,从而实现通讯。

操作wifi需要用到esp8266的一个WiFi库,名字叫做:ESP8266WiFi,我们看一下分别用接入点和终端模式如何连接wifi。

先看接入点的代码:

#include <ESP8266WiFi.h>        
 
const char *ssid = "wificount"; 
const char *password = "12345678";  
 
void setup() {
  Serial.begin(9600);               
  WiFi.softAP(ssid, password);     
  Serial.println(WiFi.softAPIP());    
}
 
void loop() { 
}

阅读源码,发现有如下几个步骤:

1、引入ESP8266WIFI库

2、自定义wifi账号和密码。

3、直接使用调用WIFI.softAP函数启动wifi,这个函数需要传递两个参数,分别是wifi账号和密码。

4、用WIFI.softAPIP打印出接入点也就是esp8266的ip地址。

步骤很简单,没有什么难点,接下来看一下esp8266作为终端如何连接wifi。

#include <ESP8266WiFi.h>        // 本程序使用ESP8266WiFi库
 
const char* ssid     = "wificount";     
const char* password = "12345678";           
void setup() {
  Serial.begin(9600);         
  WiFi.begin(ssid, password);                                                   
  while (WiFi.status() != WL_CONNECTED) {       
    delay(100);                                      
  }                                                                                    
  Serial.println(WiFi.localIP());  
  }
void loop() {                                   
}

阅读源码,步骤如下:

1、引入WIFI库。

2、定义wifi账号和密码,这里的账号和密码是附近已知的wifi的账号和密码。

3、调用WFI.begin函数连接wifi,这个参数需要传递两个参数,wifi的账号和密码。

4、通过while循环持续检测连接wifi的情况,如果没有连接则一直检测,连接成功跳出检测,这是一段阻塞代码,这里需要主要需要使用WIFI.status()函数来获取wifi连接状况,如果这个函数返回的值为:WL_CONNECTED,那么说明wifi连接成功。

5、通过WIFI.localIP()函数获取esp8266的ip地址,并打印。

关于终端模式,这里还要补充一点,假设我们所处的环境wifi环境比较多,我们想让esp8266链接信号最强的wifi,该如何操作呢?这里需要用到另一个wifi库。

代码如下:

#include <ESP8266WiFi.h>        
#include <ESP8266WiFiMulti.h>    
 
ESP8266WiFiMulti wifiMulti;      

void setup(void){
  Serial.begin(9600);           
  wifiMulti.addAP("wifi1", "12345678");   
  wifiMulti.addAP("wifi2", "87654321");  
  wifiMulti.addAP("wifi3", "13572468");  
                                                                              
  while (wifiMulti.run() != WL_CONNECTED) {   
    delay(100);                             
  }                                                                                      
  Serial.println(WiFi.localIP()); 
}
void loop() {                                   
}

步骤如下:

1、导入ESP8266WIFI库和ESP8266WIFIMulti库。

2、使用ESP8266WIFIMulti实例化一个wifiMulti实例。

3、调用wifiMulti.addAP方法将wifi账号密码添加进内存进行存储。

4、利用while循环和wifiMulti.run方法链接wifi,wifiMulti.run方法成功后返回WL_CONNECTED字符串,wifiMulti.run会自动查找wifi信号最强的wifi。

5、带引esp8266的IP地址。

关于终端模式还有最后需要补充的一点,我们可以固定esp8266的ip地址,而不是每次连接路由,被随机分配IP地址,具体怎么设置呢?看代码:

#include <ESP8266WiFi.h>        
#include <ESP8266WiFiMulti.h>    
 
ESP8266WiFiMulti wifiMulti;   
   
IPAddress local_IP(192, 168, 0, 123); // 设置ESP8266-NodeMCU联网后的IP
IPAddress gateway(192, 168, 0, 1);    // 设置网关IP(通常网关IP是WiFI路由IP)
IPAddress subnet(255, 255, 255, 0);   // 设置子网掩码
IPAddress dns(192,168,0,1);           // 设置局域网DNS的IP(通常局域网DNS的IP是WiFI路由IP)

void setup(void){
  Serial.begin(9600);   
  
  // 设置开发板网络环境
  if (!WiFi.config(local_IP, gateway, subnet)) {
    Serial.println("Failed to Config ESP8266 IP"); 
  } 
                  
  wifiMulti.addAP("wifi1", "12345678");   
  wifiMulti.addAP("wifi2", "87654321");  
  wifiMulti.addAP("wifi3", "13572468");  
                                                                              
  while (wifiMulti.run() != WL_CONNECTED) {   
    delay(100);                             
  }                                                                                      
  Serial.println(WiFi.localIP()); 
}
void loop() {                                   
}

阅读追加的代码,调用IPAddress定义了四个变量,local_AP,gateway,subnet,dns,分别为本地ip,网关ip,子网掩码,dns的ip。

然后调用WIFI.config函数,一次传入上面得到的参数,并且用函数的返回结果做判断,如果设置成功返回ture,设置失败,返回false。

以上便是esp8266设置wifi的一些具体操作,希望对你有所帮助。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档