Add support for static IP addressing when using WiFi on gateways

pull/149/head
Jeff Lehman 1 year ago
parent 4ee23b54ef
commit 41259087e4

@ -59,6 +59,14 @@
// WiFi and MQTT Credentials -- These will override the global settings
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
//#define DNS1_IPADDRESS "192.168.0.1" // Required for NTP even if not using static IP defined below
// 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 DNS2_IPADDRESS "192.168.0.2" // Optional. Only DNS1 is required to be able to use NTP
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883

@ -59,6 +59,14 @@
// WiFi and MQTT Credentials -- These will override the global settings
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
//#define DNS1_IPADDRESS "192.168.0.1" // Required for NTP even if not using static IP defined below
// 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 DNS2_IPADDRESS "192.168.0.2" // Optional. Only DNS1 is required to be able to use NTP
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883

@ -59,6 +59,14 @@
// WiFi and MQTT Credentials -- These will override the global settings
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
//#define DNS1_IPADDRESS "192.168.0.1" // Required for NTP even if not using static IP defined below
// 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 DNS2_IPADDRESS "192.168.0.2" // Optional. Only DNS1 is required to be able to use NTP
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883

@ -59,6 +59,14 @@
// WiFi and MQTT Credentials -- These will override the global settings
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
//#define DNS1_IPADDRESS "192.168.0.1" // Required for NTP even if not using static IP defined below
// 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 DNS2_IPADDRESS "192.168.0.2" // Optional. Only DNS1 is required to be able to use NTP
//#define MQTT_ADDR "192.168.0.8"
//#define MQTT_PORT 1883 // Default MQTT port is 1883

@ -59,6 +59,14 @@
// WiFi and MQTT Credentials -- These will override the global settings
//#define WIFI_SSID "Your SSID"
//#define WIFI_PASS "Your Password"
//#define DNS1_IPADDRESS "192.168.0.1" // Required for NTP even if not using static IP defined below
// 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 DNS2_IPADDRESS "192.168.0.2" // Optional. Only DNS1 is required to be able to use NTP
#define MQTT_ADDR "192.168.2.3"
//#define MQTT_PORT 1883 // Default MQTT port is 1883

@ -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)

@ -32,6 +32,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 GW_IPADDRESS
#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)
@ -74,6 +116,10 @@ void WiFiEvent(WiFiEvent_t event)
#endif // USE_ETHERNET
const char *ssid = FDRS_WIFI_SSID;
const char *password = FDRS_WIFI_PASS;
#ifdef USE_STATIC_IPADDRESS
IPAddress hostIpAddress, gatewayAddress, subnetAddress, dns2Address;
#endif
IPAddress dns1Address;
void begin_wifi()
{
@ -87,6 +133,11 @@ void begin_wifi()
delay(500);
}
#else
#ifdef USE_STATIC_IPADDRESS
WiFi.config(hostIpAddress.fromString(FDRS_HOST_IPADDRESS), gatewayAddress.fromString(FDRS_GW_IPADDRESS), subnetAddress.fromString(FDRS_SUBNET_ADDRESS), dns1Address.fromString(FDRS_DNS1_IPADDRESS), dns2Address.fromString(FDRS_DNS2_IPADDRESS));
#else
WiFi.dnsIP(dns1Address.fromString(FDRS_DNS1_IPADDRESS));
#endif
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{

@ -7,6 +7,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