-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwifi.cpp
82 lines (70 loc) · 2.21 KB
/
wifi.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <WiFi.h>
#include <WiFiClient.h>
const char* ssid = "dein_SSID";
const char* password = "dein_Passwort";
const char* dptServer = "time.nist.gov"; // Beispiel DPT-Server
const int dptPort = 13;
WiFiClient client;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Verbinde mit WiFi");
unsigned long startAttemptTime = millis();
const unsigned long timeout = 10000; // 10 Sekunden Timeout
while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < timeout) {
delay(1000);
Serial.print(".");
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.println("WiFi verbunden.");
Serial.print("IP-Adresse: ");
Serial.println(WiFi.localIP());
connectToDptServer();
} else {
Serial.println();
Serial.println("WiFi-Verbindung fehlgeschlagen.");
}
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
Serial.println("Verbindung verloren, versuche erneut zu verbinden...");
WiFi.disconnect();
WiFi.begin(ssid, password);
unsigned long reconnectAttemptTime = millis();
const unsigned long reconnectTimeout = 10000; // 10 Sekunden Timeout
while (WiFi.status() != WL_CONNECTED && millis() - reconnectAttemptTime < reconnectTimeout) {
delay(1000);
Serial.print(".");
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.println("WiFi erneut verbunden.");
Serial.print("IP-Adresse: ");
Serial.println(WiFi.localIP());
connectToDptServer();
} else {
Serial.println();
Serial.println("Erneute Verbindung fehlgeschlagen.");
}
}
delay(10000); // 10 Sekunden Pause, bevor erneut geprüft wird
}
void connectToDptServer() {
Serial.print("Verbinde mit DPT-Server: ");
Serial.println(dptServer);
if (client.connect(dptServer, dptPort)) {
Serial.println("Verbunden mit DPT-Server.");
while (client.connected() && client.available() == 0) {
delay(100);
}
while (client.available()) {
String line = client.readStringUntil('\n');
Serial.println(line);
}
client.stop();
Serial.println("Verbindung zum DPT-Server geschlossen.");
} else {
Serial.println("Verbindung zum DPT-Server fehlgeschlagen.");
}
}