#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的密码,有没有大佬给解答一下困惑。
相似问题