ESP8266作为无线终端连接网络

描述

ESP8266既可以作为一个无线终端(STA模式),像手机一样连接路由器,也可以作为热点(AP模式),像路由器一样让手机、电脑来连接。本篇介绍ESP8266作为无线终端连接网络。

1. 连接网络

打开Arduino IDE,新建sketch,拷贝如下代码并保存。

/*
 * connect01
 * ESP8266连接网络
 */
#include 

const char* ssid     = "your-ssid";//连接WIFI名(SSID)
const char* password = "your-password";//WIFI密码

void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.println("--------------");
  
  WiFi.begin(ssid,password);//启动网络连接

  Serial.printf("Begin to Connect %s\\r\\n", ssid);
  while (WiFi.status() != WL_CONNECTED)//检测网络是否连接成功
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();

  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP());//返回ESP8266的IP地址
}

void loop() {}

电脑连接开发板,在工具—开发板—端口中选择正确的端口号,点击上传,程序编译并上传。

Arduino

程序下载

上传完成后打开串口监视器,波特率设置115200,可以看到串口打印联网信息如下:

Arduino

打印信息

当成功连接网络后,ESP8266将获取到IP地址,在同一局域网下的电脑端,打开命令提示符,通过ping命令测试通讯正常。

Arduino

网络测试

2. 扫描多个热点连接

在ESP8266WiFiMulti库中,为我们提供了往ESP8266添加多个热点存储功能,ESP8266会在添加的多个热点中,自动搜索信号最强的那个连接,当开发板需要在多个地方使用时,可以非常方便的自动连接当前环境的热点。

/*
 * connect02
 * ESP8266在多个热点中寻找信号最强的进行连接
 */
#include 
#include 

ESP8266WiFiMulti wifis;//建立ESP8266WiFiMulti对象

void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.println("--------------");

  //添加多个热点信息
  wifis.addAP("TonyCode", "12345678");
  wifis.addAP("TonyCode1","12123455");
  wifis.addAP("TonyCode2","88888888");
  wifis.addAP("TonyCode3","66666666");
  
  Serial.println("Begin to Connect");
  while (wifis.run() != WL_CONNECTED)//检测网络是否连接成功
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();

  Serial.printf("Connected %s, IP address: ", WiFi.SSID());
  Serial.println(WiFi.localIP());//返回ESP8266的IP地址
}

void loop() {}

通过addAP()函数,添加需要存储的热点SSID和密码,run()函数在当前环境中搜索存储的热点,寻找信号最强的进行连接。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分