Timm Bogner 8 months ago
commit 426933fc2b

@ -63,6 +63,14 @@
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
// Use Static IP Address for WiFi connections
// #define USE_STATIC_IPADDRESS
// #define HOST_IPADDRESS "192.168.0.100"
// #define GW_IPADDRESS "192.168.0.1"
// #define SUBNET_ADDRESS "255.255.255.0"
// #define DNS1_IPADDRESS "192.168.0.1"
// #define DNS2_IPADDRESS "192.168.0.2"
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883
//#define MQTT_AUTH //Enable MQTT authentication

@ -63,6 +63,14 @@
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
// Use Static IP Address for WiFi connections
// #define USE_STATIC_IPADDRESS
// #define HOST_IPADDRESS "192.168.0.100"
// #define GW_IPADDRESS "192.168.0.1"
// #define SUBNET_ADDRESS "255.255.255.0"
// #define DNS1_IPADDRESS "192.168.0.1"
// #define DNS2_IPADDRESS "192.168.0.2"
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883
//#define MQTT_AUTH //Enable MQTT authentication

@ -63,6 +63,14 @@
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
// Use Static IP Address for WiFi connections
// #define USE_STATIC_IPADDRESS
// #define HOST_IPADDRESS "192.168.0.100"
// #define GW_IPADDRESS "192.168.0.1"
// #define SUBNET_ADDRESS "255.255.255.0"
// #define DNS1_IPADDRESS "192.168.0.1"
// #define DNS2_IPADDRESS "192.168.0.2"
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883
//#define MQTT_AUTH //Enable MQTT authentication

@ -63,6 +63,14 @@
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
// Use Static IP Address for WiFi connections
// #define USE_STATIC_IPADDRESS
// #define HOST_IPADDRESS "192.168.0.100"
// #define GW_IPADDRESS "192.168.0.1"
// #define SUBNET_ADDRESS "255.255.255.0"
// #define DNS1_IPADDRESS "192.168.0.1"
// #define DNS2_IPADDRESS "192.168.0.2"
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883
//#define MQTT_AUTH //Enable MQTT authentication

@ -63,6 +63,15 @@
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
// Use Static IP Address for WiFi connections
// #define USE_STATIC_IPADDRESS
// #define HOST_IPADDRESS "192.168.0.100"
// #define GW_IPADDRESS "192.168.0.1"
// #define SUBNET_ADDRESS "255.255.255.0"
// #define DNS1_IPADDRESS "192.168.0.1"
// #define DNS2_IPADDRESS "192.168.0.2"
#define MQTT_ADDR "192.168.2.3"
//#define MQTT_PORT 1883 // Default MQTT port is 1883
//#define MQTT_AUTH //Enable MQTT authentication

@ -117,6 +117,12 @@ void printActivatedProtocols() {
#if defined(USE_WIFI) && defined(USE_ESPNOW)
DBG("WARNING: You must not use USE_ESPNOW and USE_WIFI together! USE_WIFI is only needed for MQTT!");
#endif
#ifdef USE_STATIC_IPADDRESS
DBG("Using Static IP Address");
#else
DBG("Using DHCP");
#endif
}
@ -155,6 +161,51 @@ void printWifiDetails() {
//exit(0);
#endif //WIFI_PASS
#ifdef USE_STATIC_IPADDRESS
#if defined(HOST_IPADDRESS)
DBG("Host IP Address used from HOST_IPADDRESS : " + String(FDRS_HOST_IPADDRESS));
#elif defined (GLOBAL_HOST_IPADDRESS)
DBG("Host IP Address used from GLOBAL_HOST_IPADDRESS : " + String(FDRS_HOST_IPADDRESS));
#else
DBG("NO Host IP Address defined! Please define in fdrs_globals.h (recommended) or in fdrs_gateway_config.h");
//exit(0);
#endif // HOST_IPADDRESS
#if defined(GW_IPADDRESS)
DBG("Gateway IP Address used from GW_IPADDRESS : " + String(FDRS_GW_IPADDRESS));
#elif defined (GLOBAL_GW_IPADDRESS)
DBG("Gateway IP Address used from GLOBAL_GW_IPADDRESS : " + String(FDRS_GW_IPADDRESS));
#else
DBG("NO Gateway IP Address defined! Please define in fdrs_globals.h (recommended) or in fdrs_gateway_config.h");
//exit(0);
#endif // GW_IPADDRESS
#if defined(SUBNET_ADDRESS)
DBG("Subnet Address used from SUBNET_ADDRESS : " + String(FDRS_SUBNET_ADDRESS));
#elif defined (GLOBAL_SUBNET_ADDRESS)
DBG("Subnet Address used from GLOBAL_SUBNET_ADDRESS : " + String(FDRS_SUBNET_ADDRESS));
#else
DBG("NO Subnet Address defined! Please define in fdrs_globals.h (recommended) or in fdrs_gateway_config.h");
//exit(0);
#endif // SUBNET_ADDRESS
#if defined(DNS2_IPADDRESS)
DBG("DNS2 IP Address used from DNS2_IPADDRESS : " + String(FDRS_DNS2_IPADDRESS));
#elif defined (GLOBAL_DNS2_IPADDRESS)
DBG("DNS2 IP Address used from GLOBAL_DNS2_IPADDRESS : " + String(FDRS_DNS2_IPADDRESS));
#endif // DNS2_IPADDRESS
#endif // USE_STATIC_IPADDRESS
#if defined(DNS1_IPADDRESS)
DBG("DNS1 IP Address used from DNS1_IPADDRESS : " + String(FDRS_DNS1_IPADDRESS));
#elif defined (GLOBAL_DNS1_IPADDRESS)
DBG("DNS1 IP Address used from GLOBAL_DNS1_IPADDRESS : " + String(FDRS_DNS1_IPADDRESS));
#else
DBG("NO DNS1 IP Address defined! Please define in fdrs_globals.h (recommended) or in fdrs_gateway_config.h");
//exit(0);
#endif // DNS1_IPADDRESS
printSmallSectionHeader("MQTT BROKER CONFIG:");
#if defined(MQTT_ADDR)

@ -78,6 +78,7 @@ void releaseLogBuffer();
#ifdef USE_WIFI
#include "fdrs_gateway_wifi.h"
#include "fdrs_gateway_mqtt.h"
#include "fdrs_gateway_ota.h"
#endif
#if defined(USE_FS_LOG) || defined(USE_SD_LOG)
#include "fdrs_gateway_filesystem.h"
@ -133,6 +134,7 @@ void beginFDRS()
begin_wifi();
DBG("Connected.");
begin_mqtt();
begin_OTA();
#endif
#ifdef USE_ESPNOW
begin_espnow();
@ -184,6 +186,7 @@ void loopFDRS()
#endif
#ifdef USE_WIFI
handleMQTT();
handleOTA();
#endif
#ifdef USE_OLED
drawPageOLED(true);

@ -0,0 +1,59 @@
#if defined(ESP32) || defined(ESP8266)
#include <ArduinoOTA.h>
#endif // defined(ESP32) || defined (ESP8266)
void begin_OTA() {
#if defined(ESP32) || defined(ESP8266)
// Port defaults to 3232
// ArduinoOTA.setPort(3232);
// Hostname defaults to esp3232-[MAC]
//
ArduinoOTA.setHostname("FDRSGW");
// No authentication by default
// ArduinoOTA.setPassword("admin");
// Password can be set with it's md5 value as well
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
ArduinoOTA.onStart([]() {
String type;
if (ArduinoOTA.getCommand() == U_FLASH) {
type = "sketch";
}
else { // U_SPIFFS
type = "filesystem";
}
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
//ESP_LOGI(TAG, "Start updating " + type);
});
ArduinoOTA.onEnd([]() {
DBG("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
#ifndef USE_OLED // Displaying on OLED slows down the download process
DBG("Progress: " + String(progress / (total / 100)) + "%");
#endif
});
ArduinoOTA.onError([](ota_error_t error) {
DBG("Error[" + String(error) + "]");
if (error == OTA_AUTH_ERROR) { DBG("Auth Failed"); }
else if (error == OTA_BEGIN_ERROR) { DBG("Begin Failed"); }
else if (error == OTA_CONNECT_ERROR) { DBG("Connect Failed"); }
else if (error == OTA_RECEIVE_ERROR) { DBG("Receive Failed"); }
else if (error == OTA_END_ERROR) { DBG("End Failed"); }
});
ArduinoOTA.begin();
#endif // defined(ESP32) || defined (ESP8266)
}
void handleOTA() {
#if defined(ESP32) || defined(ESP8266)
ArduinoOTA.handle();
#endif // defined(ESP32) || defined (ESP8266)
}

@ -28,6 +28,48 @@
#else
// ASSERT("NO WiFi password defined! Please define in fdrs_globals.h (recommended) or in fdrs_node_config.h");
#endif // WIFI_PASS
// select Host IP Address
#if defined(HOST_IPADDRESS)
#define FDRS_HOST_IPADDRESS HOST_IPADDRESS
#elif defined(GLOBAL_HOST_IPADDRESS)
#define FDRS_HOST_IPADDRESS GLOBAL_HOST_IPADDRESS
#else
#endif // HOST_IPADDRESS
// select Gateway IP Address
#if defined(GW_IPADDRESS)
#define FDRS_GW_IPADDRESS GW_IPADDRESS
#elif defined(GLOBAL_GW_IPADDRESS)
#define FDRS_GW_IPADDRESS GLOBAL_GW_IPADDRESS
#else
#endif // GW_IPADDRESS
// select Subnet Address
#if defined(SUBNET_ADDRESS)
#define FDRS_SUBNET_ADDRESS SUBNET_ADDRESS
#elif defined(GLOBAL_SUBNET_ADDRESS)
#define FDRS_SUBNET_ADDRESS GLOBAL_SUBNET_ADDRESS
#else
#endif // SUBNET_ADDRESS
// select DNS1 IP Address configuration
#if defined(DNS1_IPADDRESS)
#define FDRS_DNS1_IPADDRESS DNS1_IPADDRESS
#elif defined(GLOBAL_DNS1_IPADDRESS)
#define FDRS_DNS1_IPADDRESS GLOBAL_DNS1_IPADDRESS
#else
// ASSERT("NO DNS1 IP Address defined! Please define in fdrs_globals.h (recommended) or in fdrs_gateway_config.h");
#endif // DNS1_IPADDRESS
// select DNS2 IP Address configuration
#if defined(DNS2_IPADDRESS)
#define FDRS_DNS2_IPADDRESS DNS2_IPADDRESS
#elif defined(GLOBAL_DNS2_IPADDRESS)
#define FDRS_DNS2_IPADDRESS GLOBAL_DNS2_IPADDRESS
#else
#endif // DNS2_IPADDRESS
#ifdef USE_ETHERNET
static bool eth_connected = false;
void WiFiEvent(WiFiEvent_t event)
@ -70,6 +112,22 @@ void WiFiEvent(WiFiEvent_t event)
#endif // USE_ETHERNET
const char *ssid = FDRS_WIFI_SSID;
const char *password = FDRS_WIFI_PASS;
#ifdef USE_STATIC_IPADDRESS
uint8_t hostIpAddress[4], gatewayAddress[4], subnetAddress[4], dns2Address[4];
#endif
uint8_t dns1Address[4];
// Convert IP Addresses from strings to byte arrays of 4 bytes
void stringToByteArray(const char* str, char sep, byte* bytes, int maxBytes, int base) {
for (int i = 0; i < maxBytes; i++) {
bytes[i] = strtoul(str, NULL, base); // Convert byte
str = strchr(str, sep); // Find next separator
if (str == NULL || *str == '\0') {
break; // No more separators, exit
}
str++; // Point to next character after separator
}
}
void begin_wifi()
{
@ -83,6 +141,15 @@ void begin_wifi()
delay(500);
}
#else
#ifdef USE_STATIC_IPADDRESS
// Convert from String to byte array
stringToByteArray(FDRS_HOST_IPADDRESS, '.', hostIpAddress, 4, 10);
stringToByteArray(FDRS_GW_IPADDRESS, '.', gatewayAddress, 4, 10);
stringToByteArray(FDRS_SUBNET_ADDRESS, '.', subnetAddress, 4, 10);
stringToByteArray(FDRS_DNS1_IPADDRESS, '.', dns1Address, 4, 10);
stringToByteArray(FDRS_DNS2_IPADDRESS, '.', dns2Address, 4, 10);
WiFi.config(hostIpAddress, gatewayAddress, subnetAddress, dns1Address, dns2Address);
#endif
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{

@ -8,6 +8,8 @@
#define GLOBAL_WIFI_SSID "Your SSID"
#define GLOBAL_WIFI_PASS "Password"
#define GLOBAL_DNS1_IPADDRESS "8.8.8.8" // Default to Google Primary DNS
#define GLOBAL_DNS2_IPADDRESS "8.8.4.4" // Default to Google Secondary DNS
#define GLOBAL_MQTT_ADDR "192.168.0.8"
#define GLOBAL_MQTT_PORT 1883

Loading…
Cancel
Save