17 #ifndef WIPPERSNAPPER_ESP8266_H    18 #define WIPPERSNAPPER_ESP8266_H    20 #ifdef ARDUINO_ARCH_ESP8266    21 #include "Adafruit_MQTT.h"    22 #include "Adafruit_MQTT_Client.h"    23 #include "ESP8266WiFi.h"    24 #include "ESP8266WiFiMulti.h"    69     _wifi_client = 
new WiFiClient;
    70     WiFi.persistent(
false);
    79   ~Wippersnapper_ESP8266() {
    95   void set_ssid_pass(
const char *ssid, 
const char *ssidPassword) {
   100     if ((ssidPassword != NULL) && (strlen(ssidPassword) == 0)) {
   103       _pass = ssidPassword;
   114     _ssid = WS.
_config.network.ssid;
   115     _pass = WS.
_config.network.pass;
   132     int n = WiFi.scanNetworks();
   138     bool foundNetwork = 
false;
   141     for (uint8_t i = 0; i < n; i++) {
   142       if (!foundNetwork && strcmp(WiFi.SSID(i).c_str(), _ssid) == 0) {
   147           if (strcmp(WS.
_multiNetworks[j].ssid, WiFi.SSID(i).c_str()) == 0) {
   181     uint8_t mac[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
   182     WiFi.macAddress(mac);
   183     memcpy(WS.
_macAddr, mac, 
sizeof(mac));
   192   int32_t 
getRSSI() { 
return WiFi.RSSI(); }
   206     if (WS.
_config.io_port == 8883)
   208     WS.
_mqtt = 
new Adafruit_MQTT_Client(
   220     switch (WiFi.status()) {
   222       return WS_NET_CONNECTED;
   223     case WL_CONNECT_FAILED:
   224       return WS_NET_CONNECT_FAILED;
   228       return WS_NET_DISCONNECTED;
   238   const char *connectionType() { 
return "ESP8266"; }
   241   const char *_ssid = NULL;
   242   const char *_pass = NULL;
   243   WiFiClient *_wifi_client;
   244   ESP8266WiFiMulti _wifiMulti;
   253     if (WiFi.status() == WL_CONNECTED)
   256     if (strlen(_ssid) == 0) {
   257       _status = WS_SSID_INVALID;
   259       WiFi.setAutoReconnect(
false);
   265       _status = WS_NET_DISCONNECTED;
   281       if (_wifiMulti.existsAP(_ssid) == 
false) {
   282         _wifiMulti.addAP(_ssid, _pass);
   285       long startRetry = millis();
   288       while (_wifiMulti.run(5000) != WL_CONNECTED &&
   289              millis() - startRetry < 10000) {
   294       if (WiFi.status() == WL_CONNECTED) {
   295         _status = WS_NET_CONNECTED;
   297         _status = WS_NET_DISCONNECTED;
   315 #endif // ARDUINO_ARCH_ESP8266   316 #endif // WIPPERSNAPPER_ESP8266_H virtual void setupMQTTClient(const char *clientID)
Sets up the MQTT client session. 
Definition: Wippersnapper.cpp:205
 
#define WS_DEBUG_PRINT(...)
Prints debug output. 
Definition: Wippersnapper.h:51
 
#define WS_DEBUG_PRINTHEX(...)
Prints debug output. 
Definition: Wippersnapper.h:57
 
secretsConfig _config
Definition: Wippersnapper.h:408
 
#define WL_MAC_ADDR_LENGTH
MAC address length - from RP2040 BSP. 
Definition: Wippersnapper_Networking.h:20
 
ws_status_t
Definition: Wippersnapper.h:192
 
virtual bool check_valid_ssid()
Performs a scan of local WiFi networks. 
Definition: Wippersnapper.cpp:250
 
Class that provides storage and functions for the Adafruit IO Wippersnapper interface. 
Definition: Wippersnapper.h:285
 
virtual void _connect()
Connects to wireless network. 
Definition: Wippersnapper.cpp:164
 
#define WS_MAX_ALT_WIFI_NETWORKS
Maximum number of alternative networks. 
Definition: Wippersnapper.h:253
 
virtual void getMacAddr()
Sets the network interface's unique identifier, typically the MAC address. 
Definition: Wippersnapper.cpp:183
 
virtual void set_ssid_pass()
Sets the device's wireless network credentials from the secrets.json configuration file...
Definition: Wippersnapper.cpp:240
 
void feedWDT()
Feeds the WDT to prevent hardware reset. 
Definition: Wippersnapper.cpp:2632
 
bool _isWiFiMulti
Definition: Wippersnapper.h:410
 
networkConfig _multiNetworks[3]
Definition: Wippersnapper.h:409
 
#define WS_DEBUG_PRINTLN(...)
Prints line from debug output. 
Definition: Wippersnapper.h:54
 
Wippersnapper WS
Definition: Wippersnapper.cpp:36
 
uint8_t _macAddr[6]
Definition: Wippersnapper.h:403
 
Adafruit_MQTT * _mqtt
Definition: Wippersnapper.h:406
 
virtual ws_status_t networkStatus()
Returns the network's connection status. 
Definition: Wippersnapper.cpp:215
 
virtual int32_t getRSSI()
Gets the network's RSSI. 
Definition: Wippersnapper.cpp:193
 
virtual void _disconnect()
Disconnect Wippersnapper MQTT session and network. 
Definition: Wippersnapper.cpp:173