Esp8266 Connect Mixed Mode als Arduino Tab.
Connect.ino
// ****************************************************************
// Sketch Esp8266 Connect Mixed Mode Modular(Tab)
// created: Jens Fleischer, 2020-12-29
// last mod: Jens Fleischer, 2023-03-17
// For more information visit: https://fipsok.de
// ****************************************************************
// Hardware: Esp8266
// Software: Esp8266 Arduino Core 2.7.4 - 3.1.1
// Getestet auf: Nodemcu, Wemos D1 Mini Pro, Sonoff Dual
/******************************************************************
Copyright (c) 2020 Jens Fleischer. All rights reserved.
This file is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
*******************************************************************/
// Diese Version von Connect Mixed Mode sollte als Tab eingebunden werden.
// #include <WebServer.h> sollte im Haupttab aufgerufen werden
// Dieser Tab kann mit dem ESP8266 Webserver betrieben werden.
// Die Funktion "connectWifi();" muss im Setup eingebunden werden.
/**************************************************************************************/
const char* STA_SSID = "Netzwerkname"; // Darf bis zu 32 Zeichen haben.
const char* STA_PASSWORD = "PasswortvomNetzwerk"; // Mindestens 8 Zeichen jedoch nicht länger als 64 Zeichen.
const char* AP_SSID = "Esp8266AP"; // Darf bis zu 31 Zeichen haben.
const char* AP_PASSWORD = "Passphrase"; // Mindestens 8 Zeichen jedoch nicht länger als 63 Zeichen. Gegebenenfalls auch ohne PW.
//#define STA_CONFIG // Einkommentieren wenn der ESP im STA Modus dem Router die IP mitteilen soll.
#ifdef STA_CONFIG
IPAddress staticIP(192, 168, 178, 99); // Statische IP des NodeMCU ESP8266
IPAddress gateway(192, 168, 178, 1); // IP-Adresse des Router
IPAddress subnet(255, 255, 255, 0); // Subnetzmaske des Netzwerkes
IPAddress dns(192, 168, 178, 1); // DNS Server
#endif
#define AP_CONFIG // Auskommentieren falls die Standard Konfiguration des Esp8266 AP verwendet werden soll.
#ifdef AP_CONFIG
IPAddress apIPv4(10, 0, 0, 1); // Eigene IP des Esp8266 Access Point
IPAddress apsubnet(255, 0, 0, 0); // Subnetzmaske des Netzwerkes
#endif
void connectWifi() { // Funktionsaufruf "connectWifi();" muss im Setup eingebunden werden.
WiFi.persistent(false); // Auskommentieren wenn Netzwerkname und Passwort in den Flash geschrieben werden sollen.
WiFi.mode(WIFI_AP_STA);
yield(); // Erforderlich, wenn die WiFi Settings" nicht aus dem Flash gelesen werden können.
#ifdef AP_CONFIG
WiFi.softAPConfig(apIPv4, apIPv4, apsubnet);
#endif
if (WiFi.softAP(AP_SSID, AP_PASSWORD)) {
Serial.printf(PSTR("Der Esp stellt einen Access Point zur Verfügung SSID:\"%s\" PW:\"%s\"\nGib die IP %s im Browser ein.\n\n"),
WiFi.softAPSSID().c_str(), WiFi.softAPPSK().c_str(), WiFi.softAPIP().toString().c_str());
} else {
Serial.println(PSTR("Fehler beim erstellen des AP."));
}
#ifdef STA_CONFIG
WiFi.config(staticIP, gateway, subnet, dns);
#endif
WiFi.begin(STA_SSID, STA_PASSWORD);
while (WiFi.status() != WL_CONNECTED && millis() < 8000) yield();
Serial.println(millis());
if (WiFi.isConnected()) {
Serial.printf(PSTR("Verbunden mit Station: %s\nEsp8266 IP: %s\n\n"), WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
}
else {
WiFi.disconnect();
}
}