Browse code

fucj this

root authored on28/07/2022 12:41:35
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,69 @@
1
+#include <ESP8266WiFi.h>
2
+#include <ArduinoOTA.h>
3
+#include <PubSubClient.h>
4
+#include <WiFiClient.h>
5
+
6
+#include "settings.h"
7
+
8
+WiFiClient espClient;
9
+PubSubClient mqttClient(espClient);
10
+
11
+void setup()
12
+{
13
+  // Initialize pins
14
+  pinMode(LED_BUILTIN, OUTPUT); // Inverted on Wemos D1 Mini
15
+  digitalWrite(LED_BUILTIN, LOW);
16
+
17
+  Serial.begin(BAUD_RATE, SERIAL_8N1, SERIAL_RX_ONLY, 3, true);
18
+
19
+  WiFi.begin(WIFI_SSID, WIFI_PASS);
20
+  while (WiFi.status() != WL_CONNECTED) {
21
+    blinkLed(20, 50); // Blink fast to indicate no WiFi connection
22
+    delay(500);
23
+  }
24
+
25
+  setupOTA();
26
+  setupDataReadout();
27
+
28
+  mqttClient.setServer(MQTT_HOST, atoi(MQTT_PORT));
29
+  blinkLed(5, 500); // Blink 5 times to indicate end of setup
30
+}
31
+
32
+void loop()
33
+{
34
+  if (WiFi.status() != WL_CONNECTED) {
35
+    blinkLed(20, 50); // Blink fast to indicate failed WiFi connection
36
+    WiFi.begin(WIFI_SSID, WIFI_PASS);
37
+
38
+    while (WiFi.status() != WL_CONNECTED) {
39
+      delay(500);
40
+    }
41
+  }
42
+
43
+  ArduinoOTA.handle();
44
+  long now = millis();
45
+
46
+  if (!mqttClient.connected())
47
+  {
48
+    long now = millis();
49
+
50
+    if (now - LAST_RECONNECT_ATTEMPT > 5000)
51
+    {
52
+      LAST_RECONNECT_ATTEMPT = now;
53
+
54
+      if (mqttReconnect())
55
+      {
56
+        LAST_RECONNECT_ATTEMPT = 0;
57
+      }
58
+    }
59
+  }
60
+  else
61
+  {
62
+    mqttClient.loop();
63
+  }
64
+
65
+  if (now - LAST_UPDATE_SENT > UPDATE_INTERVAL)
66
+  {
67
+    readP1Serial();
68
+  }
69
+}