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