Elektronika

ESP32 – Sterownik podlewania – ESPHOME v1

Sterownik oparty o ESP32, MCP23017 oraz LAN8720.

Sterownik może komunikować się poprzez sieć LAN lub WiFi.

Elementem wykonawczym jest 8 przekaźników ze stykiem NO. Istnieje możliwość mostkowania wyjść w celu podłączenia np. plusa zasilania jednym przewodem.

Jako wejścia mamy do dyspozycji 8 wejść z optoizolacją (dodana jest też zworka do wyboru zasilania, wewnętrzne lub zewnętrzne 3,3V). Dodatkowo możemy monitorować wiele parametrów czujnikami o komunikacji I2C lub 1Wire. Wyprowadzone są również 4 piny analogowe oraz 6 pinów GPIO, przewidziane jest tam miejsce na rezystor pull-up/pull-down w zależności od potrzeby.

W zależności od wersji mamy do wyboru jedno z trzech źródeł zasilania:

  • 230V – podłączane do złącza ZASILANIE
  • DC – podłączane do złącza ZASILANIE 5V – 30V (minus z lewej strony, plus z prawej strony)
  • PoE – zasilanie poprzez skrętkę ethernet  18V – 72 V

Opis PCB góra:

W górnej części od lewej:

  • 8 wejść z optoizolacją 3,3V
  • I2C oraz 1Wire
  • GPIO oraz ADC

W dolnej części od lewej:

  • zasilanie
  • 8 wyjść NO
  • led zasilania oraz Status
  • wejście LAN
  • złącze programowania ESP32

Zworka Z9 gdy jest zwarta podane jest zasilanie 3,3V do optoizolatorów. Można wtedy wysterowywać wejścia zwykłymi przyciskami/przełącznikami.

Rezystory nad złączem wejść GPIO/ADC to rezystory pull-down.

Zasilanie

 

Opis PCB dół:

Rezystory nad złączem wejść GPIO/ADC to rezystory pull-up.

Z1-Z8 służą do mostkowania wyjść z przekaźników

Aby zaprogramować sterownik poprzez złącze dostępne na PCB, należy podłączyć 1.TX, 2.RX oraz 6.GND do programatora. Następnie połączyć przewodem pin 4.IO0 z GND (np. pierwszym lewym pinem złącza CN6). Podłączyć zasilanie sterownika i mamy ESP w trybie flashowania.

Skrypt YAML ESPHOME:


esphome:
  name: podlewanie-lan
  friendly_name: Podlewanie_LAN
esp32:
  board: esp32dev
  framework:
    type: arduino
logger:
api:
  encryption:
    key: "API KLUCZ"
ota:
  password: "OTA PASS"
ethernet:
  id: eth
  type: LAN8720
  mdc_pin: GPIO14
  mdio_pin: GPIO15
  clk_mode: GPIO0_IN
  phy_addr: 1
  power_pin: GPIO12
web_server:
  port: 80
  auth:
    username: admin
    password: a1234
status_led:
  pin:
    number: GPIO2
    inverted: true
sensor:
  - platform: uptime
    name: "Uptime"
    filters:
      - lambda: return x;
text_sensor:
  - platform: ethernet_info
    ip_address:
      name: IP
i2c:
  sda: 33
  scl: 32
  scan: true
  id: bus_a
mcp23017:
  - id: 'hub'
    address: 0x20
switch:
  - platform: gpio
    name: "R_1"
    pin:
      mcp23xxx: hub
      number: 0
      mode:
        output: true
      inverted: false
  - platform: gpio
    name: "R_2"
    pin:
      mcp23xxx: hub
      number: 1
      mode:
        output: true
      inverted: false
  - platform: gpio
    name: "R_3"
    pin:
      mcp23xxx: hub
      number: 2
      mode:
        output: true
      inverted: false
  - platform: gpio
    name: "R_4"
    pin:
      mcp23xxx: hub
      number: 3
      mode:
        output: true
      inverted: false
  - platform: gpio
    name: "R_5"
    pin:
      mcp23xxx: hub
      number: 4
      mode:
        output: true
      inverted: false
  - platform: gpio
    name: "R_6"
    pin:
      mcp23xxx: hub
      number: 5
      mode:
        output: true
      inverted: false
  - platform: gpio
    name: "R_7"
    pin:
      mcp23xxx: hub
      number: 6
      mode:
        output: true
      inverted: false
  - platform: gpio
    name: "R_8"
    pin:
      mcp23xxx: hub
      number: 7
      mode:
        output: true
      inverted: false
binary_sensor:
  - platform: gpio
    name: "IN_1"
    pin:
      mcp23xxx: hub
      number: 8
      mode:
        input: true
      inverted: false
  - platform: gpio
    name: "IN_2"
    pin:
      mcp23xxx: hub
      number: 9
      mode:
        input: true
      inverted: false
  - platform: gpio
    name: "IN_3"
    pin:
      mcp23xxx: hub
      number: 10
      mode:
        input: true
      inverted: false
  - platform: gpio
    name: "IN_4"
    pin:
      mcp23xxx: hub
      number: 11
      mode:
        input: true
      inverted: false
  - platform: gpio
    name: "IN_5"
    pin:
      mcp23xxx: hub
      number: 12
      mode:
        input: true
      inverted: false
  - platform: gpio
    name: "IN_6"
    pin:
      mcp23xxx: hub
      number: 13
      mode:
        input: true
      inverted: false
  - platform: gpio
    name: "IN_7"
    pin:
      mcp23xxx: hub
      number: 14
      mode:
        input: true
      inverted: false
  - platform: gpio
    name: "IN_8"
    pin:
      mcp23xxx: hub
      number: 15
      mode:
        input: true
      inverted: false


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.