Browse Source

Added optional GPIO test and fixed pin numbering

Thomas Buck 3 years ago
parent
commit
76c9a73d02
2 changed files with 65 additions and 6 deletions
  1. 9
    6
      include/config_pins.h
  2. 56
    0
      src/WifiStuff.cpp

+ 9
- 6
include/config_pins.h View File

25
 
25
 
26
 #ifdef FUNCTION_CONTROL
26
 #ifdef FUNCTION_CONTROL
27
 
27
 
28
+// out 1, out 2, out 3, out 4, in
28
 #define VALVE_COUNT 5
29
 #define VALVE_COUNT 5
29
 #define VALVE_PINS 10, 11, 12, 14, 15
30
 #define VALVE_PINS 10, 11, 12, 14, 15
30
 
31
 
32
+// a, b, c
31
 #define PUMP_COUNT 3
33
 #define PUMP_COUNT 3
32
 #define PUMP_PINS 16, 17, 18
34
 #define PUMP_PINS 16, 17, 18
33
 
35
 
36
+// bottom, top
34
 #define SWITCH_COUNT 2
37
 #define SWITCH_COUNT 2
35
 #define SWITCH_PINS 19, 20
38
 #define SWITCH_PINS 19, 20
36
 
39
 
57
 
60
 
58
 #ifdef FUNCTION_CONTROL
61
 #ifdef FUNCTION_CONTROL
59
 
62
 
60
-// R1 R2 R3 R4  R5 R6 R7 R8
61
-//  4  0  2 15  18  5 17 16
62
-
63
+// out 1, out 2, out 3, out 4, in
63
 #define VALVE_COUNT 5
64
 #define VALVE_COUNT 5
64
-#define VALVE_PINS 4, 0, 2, 15, 18
65
+#define VALVE_PINS 27, 14, 5, 18, 15
65
 
66
 
67
+// a, b, c
66
 #define PUMP_COUNT 3
68
 #define PUMP_COUNT 3
67
-#define PUMP_PINS 5, 17, 16
69
+#define PUMP_PINS 2, 0, 4
68
 
70
 
71
+// bottom, top
69
 #define SWITCH_COUNT 2
72
 #define SWITCH_COUNT 2
70
-#define SWITCH_PINS 22, 23
73
+#define SWITCH_PINS 26, 25
71
 
74
 
72
 #define I2C_SDA_PIN 21
75
 #define I2C_SDA_PIN 21
73
 #define I2C_SCL_PIN 22
76
 #define I2C_SCL_PIN 22

+ 56
- 0
src/WifiStuff.cpp View File

37
 String message_buffer_c;
37
 String message_buffer_c;
38
 String message_buffer_d;
38
 String message_buffer_d;
39
 
39
 
40
+//#define ENABLE_GPIO_TEST
41
+#ifdef ENABLE_GPIO_TEST
42
+
43
+#define GPIO_TEST_INTERVAL 4000
44
+#define GPIO_TEST_DELAY 200
45
+static bool runningGpioTest = false;
46
+static bool gpioTestState = false;
47
+unsigned long lastGpioTime = 0;
48
+
49
+void runGpioTest(bool state) {
50
+    lastGpioTime = millis();
51
+    
52
+    for (int i = 0; i < VALVE_COUNT; i++) {
53
+        get_plants()->getValves()->setPin(i, state);
54
+        delay(GPIO_TEST_DELAY);
55
+    }
56
+    
57
+    for (int i = 0; i < PUMP_COUNT; i++) {
58
+        get_plants()->getPumps()->setPin(i, state);
59
+        if (i < (PUMP_COUNT - 1)) {
60
+            delay(GPIO_TEST_DELAY);
61
+        }
62
+    }
63
+}
64
+
65
+void handleGpioTest() {
66
+    runningGpioTest = !runningGpioTest;
67
+    gpioTestState = runningGpioTest;
68
+    
69
+    String message = F("GPIOs turned ");
70
+    message += runningGpioTest ? "on" : "off";
71
+
72
+    server.send(200, "text/html", message);
73
+    
74
+    runGpioTest(gpioTestState);
75
+}
76
+
77
+#endif // ENABLE_GPIO_TEST
78
+
40
 void wifi_set_message_buffer(String a, String b, String c, String d) {
79
 void wifi_set_message_buffer(String a, String b, String c, String d) {
41
     message_buffer_a = a;
80
     message_buffer_a = a;
42
     message_buffer_b = b;
81
     message_buffer_b = b;
433
     message += F("<p>Try <a href='/update'>/update</a> for OTA firmware updates!</p>\n");
472
     message += F("<p>Try <a href='/update'>/update</a> for OTA firmware updates!</p>\n");
434
     message += F("<p>Made by <a href='https://xythobuz.de'>xythobuz</a></p>\n");
473
     message += F("<p>Made by <a href='https://xythobuz.de'>xythobuz</a></p>\n");
435
     message += F("<p><a href='https://git.xythobuz.de/thomas/giess-o-mat'>Project Repository</a></p>\n");
474
     message += F("<p><a href='https://git.xythobuz.de/thomas/giess-o-mat'>Project Repository</a></p>\n");
475
+    
476
+#ifdef ENABLE_GPIO_TEST
477
+    message += F("<p><a href='/gpiotest'>GPIO Test</a></p>\n");
478
+#endif // ENABLE_GPIO_TEST
479
+    
436
     message += F("</div></div>\n");
480
     message += F("</div></div>\n");
437
     
481
     
438
     message += F("<div class='log'><pre id='logbuf'>\n");
482
     message += F("<div class='log'><pre id='logbuf'>\n");
589
     MDNS.begin(hostname.c_str());
633
     MDNS.begin(hostname.c_str());
590
     updater.setup(&server);
634
     updater.setup(&server);
591
     server.on("/", handleRoot);
635
     server.on("/", handleRoot);
636
+    
637
+#ifdef ENABLE_GPIO_TEST
638
+    server.on("/gpiotest", handleGpioTest);
639
+#endif // ENABLE_GPIO_TEST
640
+    
592
     server.begin();
641
     server.begin();
593
     MDNS.addService("http", "tcp", 80);
642
     MDNS.addService("http", "tcp", 80);
594
     
643
     
618
     if (millis() >= (6 * 60 * 60 * 1000)) {
667
     if (millis() >= (6 * 60 * 60 * 1000)) {
619
         ESP.restart();
668
         ESP.restart();
620
     }
669
     }
670
+    
671
+#ifdef ENABLE_GPIO_TEST
672
+    if (runningGpioTest && ((millis() - lastGpioTime) >= GPIO_TEST_INTERVAL)) {
673
+        gpioTestState = !gpioTestState;
674
+        runGpioTest(gpioTestState);
675
+    }
676
+#endif // ENABLE_GPIO_TEST
621
 }
677
 }
622
 
678
 
623
 #endif // PLATFORM_ESP
679
 #endif // PLATFORM_ESP

Loading…
Cancel
Save