玩命加载中 . . .

ESP8266物联网开发笔记05—ESP8266连接网络


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

1. 连接网络

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

/*
 * connect01
 * ESP8266连接网络
 */
#include <ESP8266WiFi.h>

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() {}

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

程序下载

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

打印信息

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

网络测试

2. 扫描多个热点连接

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

/*
 * connect02
 * ESP8266在多个热点中寻找信号最强的进行连接
 */
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

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()函数在当前环境中搜索存储的热点,寻找信号最强的进行连接。


关注公众号「TonyCode」。

扫码关注


文章作者: Tony
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Tony !