37 lines
820 B
C++
37 lines
820 B
C++
#include "wlan.h"
|
|
#include "credentials.h"
|
|
#include <ESP8266WiFi.h>
|
|
|
|
void initial_connection() {
|
|
WiFi.begin(SSID, PSK);
|
|
WiFi.persistent(true);
|
|
WiFi.setAutoConnect(true);
|
|
WiFi.setAutoReconnect(true);
|
|
}
|
|
|
|
void wlan_connection(int max_retries) {
|
|
if (WiFi.SSID() != SSID)
|
|
initial_connection();
|
|
int retries = 0;
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
retries++;
|
|
if (retries == max_retries)
|
|
enter_deep_sleep(true);
|
|
delay(1000);
|
|
Serial.print(".");
|
|
}
|
|
Serial.println("WiFi connected");
|
|
Serial.println(WiFi.localIP());
|
|
}
|
|
|
|
void mqtt_connection(char *server, int port, char *fingerprint) {
|
|
WiFiClientSecure client;
|
|
client.connect(server, port);
|
|
}
|
|
|
|
void enter_deep_sleep(bool wifi_timeout) {
|
|
if (wifi_timeout)
|
|
WiFi.disconnect();
|
|
ESP.deepSleep(SLEEP_TIME, WAKE_RF_DEFAULT);
|
|
}
|