|
本帖最后由 topdog 于 2021-6-13 01:02 编辑
之前写过 ESP8266使用WiFiManager库自动配网的操作,在此用于实践为Blinker APP提供新的配置网络的办法,这样很方便产品的开发。
知识点:
(1)WiFiManager配网以后WiFi名称和密码是String类型,要转化成const char* ,即string.c_str()。
(2)Blinker.begin(auth, ssid, pswd),以实体管理器wm为例,其中ssid对应 (String)wm.getWiFiSSID().c_str(),pswd对应(String)wm.getWiFiPass().c_str() 。
[pre]#define BLINKER_WIFI
#include <Blinker.h>
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager
char auth[] = "授权码";
BlinkerButton Button1("btn-abc");
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 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();
WiFi.mode(WIFI_STA);
WiFiManager wm;
bool res;
res = wm.autoConnect("AutoConnectAP", "password");
if (!res) {
Serial.println("Failed to connect");
ESP.restart();
}
else {
Serial.println("connected...yeey :)");
Blinker.begin(auth, wm.getWiFiSSID().c_str(), wm.getWiFiPass().c_str());
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
}
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
}
void loop() {
Blinker.run();
}[/pre]
|
|