首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关于ESP8266利用blinker在多个WiFi中选择信号最强的WiFi进行连接的代码问题?

关于ESP8266利用blinker在多个WiFi中选择信号最强的WiFi进行连接的代码问题?

提问于 2023-03-08 16:51:51
回答 0关注 0查看 146

#include <ESP8266WiFi.h>

#define BLINKER_WIFI

#define jidianqi D0

#include <Blinker.h>

#include "ESP8266WiFiMulti.h"

ESP8266WiFiMulti WiFiMulti;//实例化ESP8266WiFiMulti对象

char auth[] = "eab8565539a3";

// char ssid[] = "HONOR 30";

// char pswd[] = "66666666";

// 新建组件对象

BlinkerButton Button1("btn-abc");

BlinkerButton Button2("JIDIANQI");

BlinkerNumber Number1("num-abc");

int counter = 0;

// 按下按键即会执行该函数

void button1_callback(const String & state)

{

BLINKER_LOG("get button state: ", state);

digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

}

// 按下按键即会执行该函数

void button2_callback(const String & state)

{

BLINKER_LOG("get button state: ", state);

digitalWrite(jidianqi, !digitalRead(jidianqi));

}

// 如果未绑定的组件被触发,则会执行其中内容

void dataRead(const String & data)

{

BLINKER_LOG("Blinker readString: ", data);

    counter++;

Number1.print(counter);

}

void setup()

{

    // 初始化串口

Serial.begin(115200);

BLINKER_DEBUG.stream(Serial);

BLINKER_DEBUG.debugAll();    

delay(100);

    //通过addAp函数存储  WiFi名称       WiFi密码

WiFiMulti.addAP("HONOR 30", "66666666");  

WiFiMulti.addAP("w1", "87654321");

WiFiMulti.addAP("w2", "13572468");

    // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。

    // 这3个WiFi网络名称分别是taichi-maker, taichi-maker2, taichi-maker3。

    // 这3个网络的密码分别是123456789,87654321,13572468。

    // 此处WiFi信息只是示例,请在使用时将需要连接的WiFi信息填入相应位置。

    // 另外这里只存储了3个WiFi信息,您可以存储更多的WiFi信息在此处。

    // 初始化有LED的IO

pinMode(LED_BUILTIN, OUTPUT);

pinMode(jidianqi, OUTPUT);

digitalWrite(LED_BUILTIN, HIGH);

digitalWrite(jidianqi, HIGH);

while(WiFiMulti.run() != WL_CONNECTED) {

Serial.print(".");

delay(500);

}

char ssid[] = WiFi.SSID();

char pswd[] = WiFi.;

    // 此处的wifiMulti.run()是重点。通过wifiMulti.run(),NodeMCU将会在当前

    // 环境中搜索addAP函数所存储的WiFi。如果搜到多个存储的WiFi那么NodeMCU

    // 将会连接信号最强的那一个WiFi信号。

    // 一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。这也是

    // 此处while循环判断是否跳出循环的条件。

    // 初始化blinker

Blinker.begin(auth,ssid ,pswd);

Blinker.attachData(dataRead);

Button1.attach(button1_callback);

Button2.attach(button2_callback);    

Serial.println('\n');                     // WiFi连接成功后

Serial.print("Connected to ");            // NodeMCU将通过串口监视器输出。

Serial.println(WiFi.SSID());              // 连接的WiFI名称

Serial.print("IP address:\t");            // 以及

Serial.println(WiFi.localIP());           // NodeMCU的IP地址

}

void loop() {

Blinker.run();

}

如上是笔者的代码,希望通过ESP8266和blinker在多个WiFi中选择信号最强的WiFi进行连接。但是在初始化blinker时, Blinker.begin(auth,ssid ,pswd)这个函数需要填入所要连接的WiFi的密码,这个应该怎么获得呢,以为WiFi账号和密码都是被放在WiFi库的,不知道存放格式,因此不知道如何获得WiFi的密码,有没有大佬给解答一下困惑。

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档