diff --git a/Software/Sensor_Node/Sensor_Node.ino b/Software/Sensor_Node_Eth/Sensor_Node_Eth.ino similarity index 68% rename from Software/Sensor_Node/Sensor_Node.ino rename to Software/Sensor_Node_Eth/Sensor_Node_Eth.ino index 692e1aa..a100341 100644 --- a/Software/Sensor_Node/Sensor_Node.ino +++ b/Software/Sensor_Node_Eth/Sensor_Node_Eth.ino @@ -10,12 +10,16 @@ #define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT #define ETH_PHY_POWER 12 -const char* wifi_ssid = "usrspace"; -const char* wifi_password = "1qay2wsx"; +const char* wifi_ssid = "ssid"; +const char* wifi_password = "passord"; -float temperature = 0; -float pressure = 0; -float humidity = 0; +static bool eth_connected = false; + +volatile float temperature = 0; +volatile float pressure = 0; +volatile float humidity = 0; + +boolean BME280_Sensor_State = false; String website = ""; @@ -35,14 +39,17 @@ void setup() { Serial.println("Starting..."); - WiFi.begin(wifi_ssid, wifi_password); +/* WiFi.begin(wifi_ssid, wifi_password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); Serial.println("IP address: "); - Serial.println(WiFi.localIP()); + Serial.println(WiFi.localIP()); */ + + WiFi.onEvent(EthEvent); + ETH.begin(); WebServer_Server.on("/", handleRoot); WebServer_Server.on("/metrics", handleMetrics); @@ -62,10 +69,14 @@ void setup() { Adafruit_BME280::FILTER_OFF); } +/* Main Loop */ + void loop() { WebServer_Server.handleClient(); } +/* Timer Events */ + void Service() { Serial.print("."); } @@ -83,6 +94,46 @@ void ReadSensors() { Serial.println(humidity); } +/* Eth Interface */ + +void EthEvent(WiFiEvent_t event) +{ + switch (event) { + case SYSTEM_EVENT_ETH_START: + Serial.println("ETH Started"); + //set eth hostname here + ETH.setHostname("esp32-poe-sensor"); + break; + case SYSTEM_EVENT_ETH_CONNECTED: + Serial.println("ETH Connected"); + break; + case SYSTEM_EVENT_ETH_GOT_IP: + Serial.print("ETH MAC: "); + Serial.print(ETH.macAddress()); + Serial.print(", IPv4: "); + Serial.print(ETH.localIP()); + if (ETH.fullDuplex()) { + Serial.print(", FULL_DUPLEX"); + } + Serial.print(", "); + Serial.print(ETH.linkSpeed()); + Serial.println("Mbps"); + eth_connected = true; + break; + case SYSTEM_EVENT_ETH_DISCONNECTED: + Serial.println("ETH Disconnected"); + eth_connected = false; + break; + case SYSTEM_EVENT_ETH_STOP: + Serial.println("ETH Stopped"); + eth_connected = false; + break; + default: + break; + } +} + +/* Webserver */ void handleRoot() { website = ""; website += "

Temperatur: ";