blinker-iot / blinker-library

An IoT Solution,Blinker library for embedded hardware. Works with Arduino, ESP8266, ESP32.
https://diandeng.tech/
MIT License
3.9k stars 232 forks source link

增加多热点连接能力 #560

Closed qudongyu1 closed 3 years ago

qudongyu1 commented 3 years ago

1.keywords.txt 增加两个高亮字add 和 BLINKER_WIFI_Multi

2.Blinker.h文件 根据BLINKER_WIFI_Multi 判断8266 还是esp32 创建WiFiMulti变量,

3.BlinkerESPMQTT.h 增加3个函数 (1)add函数 用于添加ap热点列表

Blinker.addAP("ssid_from_AP_1", "your_password_for_AP_1");

(2)借用配网begin函数,判断BLINKER_WIFI_Multi 进入联网函数

`#if defined(BLINKER_ESP_SMARTCONFIG) Transp.smartconfigBegin();

elif defined(BLINKER_APCONFIG)

Transp.apconfigBegin();

elif defined(BLINKER_WIFI_Multi)

Transp.connectWiFiMulti();

endif`

(3). 增加connectWiFiMulti() 因为联网后才知道ssid ,所以后打印ssid

`void BlinkerMQTT::connectWiFiMulti() { uint32_t _connectTime = millis();

WiFi.mode(WIFI_STA); String _hostname = BLINKERF("DiyArduinoMQTT"); _hostname += macDeviceName();

if defined(ESP8266)

WiFi.hostname(_hostname.c_str());

elif defined(ESP32)

WiFi.setHostname(_hostname.c_str());

endif

while (WiFiMulti.run() != WL_CONNECTED) { delay(100); } BLINKER_LOG(BLINKER_F("Connecting to "),WiFi.SSID()); }`

4 .BlinkerApi.h文件, 增加断线重连

` #if defined(BLINKER_WIFI_Multi) BLINKER_LOG(BLINKER_F("WiFiMulti disconnected! reconnecting!")); WiFiMulti.run();

else

                    BLINKER_LOG(BLINKER_F("WiFi disconnected! reconnecting!"));
                    WiFi.reconnect();
                #endif`

5.增加Blianker_multi.ino 示例