Forráskód Böngészése

* Heltec CT62: sensor role (with 2 channel relay support + 1 digital input)

Scott Powell 1 éve
szülő
commit
86ec82fd06

+ 27 - 1
variants/heltec_ct62/HT-CT62Board.h

@@ -8,9 +8,35 @@
 #include <helpers/ESP32Board.h>
 
 class Heltec_CT62_Board : public ESP32Board {
+  uint32_t gpio_state = 0;
+
 public:
+  void begin() {
+    ESP32Board::begin();
+#if defined(PIN_BOARD_RELAY_CH1) && defined(PIN_BOARD_RELAY_CH2) 
+    pinMode(PIN_BOARD_RELAY_CH1, OUTPUT);
+    pinMode(PIN_BOARD_RELAY_CH2, OUTPUT);
+#endif
+#if defined(PIN_BOARD_DIGITAL_IN)
+    pinMode(PIN_BOARD_DIGITAL_IN, INPUT);
+#endif
+  }
+  uint32_t getGpio() override {
+#if defined(PIN_BOARD_DIGITAL_IN)
+    return gpio_state | (digitalRead(PIN_BOARD_DIGITAL_IN) ? 1 : 0);
+#else
+    return 0;
+#endif
+  }
+  void setGpio(uint32_t values) override {
+#if defined(PIN_BOARD_RELAY_CH1) && defined(PIN_BOARD_RELAY_CH2) 
+    gpio_state = values;
+    digitalWrite(PIN_BOARD_RELAY_CH1, values & 2);
+    digitalWrite(PIN_BOARD_RELAY_CH2, values & 4);
+#endif
+  }
 
-uint16_t getBattMilliVolts() override {
+  uint16_t getBattMilliVolts() override {
   #ifdef PIN_VBAT_READ
     analogReadResolution(12);         // ESP32-C3 ADC is 12-bit - 3.3/4096 (ref voltage/max counts)
     uint32_t raw = 0;

+ 21 - 0
variants/heltec_ct62/platformio.ini

@@ -86,3 +86,24 @@ lib_deps =
   ${Heltec_ct62.lib_deps}
   ${esp32_ota.lib_deps}
   densaugeo/base64 @ ~1.4.0
+
+[env:Heltec_ct62_sensor]
+extends = Heltec_ct62
+build_flags =
+  ${Heltec_ct62.build_flags}
+  -D ADVERT_NAME='"HT-CT62 Sensor"'
+  -D ADVERT_LAT=0.0
+  -D ADVERT_LON=0.0
+  -D ADMIN_PASSWORD='"password"'
+  -D PIN_BOARD_SDA=-1
+  -D PIN_BOARD_SCL=-1
+  -D PIN_BOARD_RELAY_CH1=0
+  -D PIN_BOARD_RELAY_CH2=1
+  -D PIN_BOARD_DIGITAL_IN=19
+;  -D MESH_PACKET_LOGGING=1
+;  -D MESH_DEBUG=1
+build_src_filter = ${Heltec_ct62.build_src_filter}
+  +<../examples/simple_sensor>
+lib_deps =
+  ${Heltec_ct62.lib_deps}
+  ${esp32_ota.lib_deps}