Wemos d1 + zestaw z ChRL = podlewanie kwiatów / problem

próbuje stworzyć system podlewania doniczek. Płytka to https://allegro.pl/oferta/modul-wemos-d1-wifi-r3-esp8266-zgodny-z-arduino-12623289153 do tego https://botland.com.pl/przekazniki-przekazniki-arduino/2579-modul-przekaznikow-4-kanaly-z-optoizolacja-styki-10a-250vac-cewka-5v-5904422330996.html

podłączam to wg schematu poniżej.

Wgrywam kod

esphome:
  name: podlewacz02
  friendly_name: podlewacz02

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "gmY5WweDzZPzByeEZK9gtolV3r/k3q96rEWIoD8/KOY="

ota:
  - platform: esphome
    password: "6e85e1d919641f50accbb17551af7476"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  manual_ip:
    static_ip: 192.168.0.38
    gateway: 192.168.0.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Podlewacz01 Fallback Hotspot"
    password: "PBoK4TOLJuJH"

captive_portal:

web_server:
  port: 80

time:
  - platform: homeassistant
    id: homeassistant_time

sprinkler:
  - id: sprinkler_ctrlr
    main_switch: "Podlewanie"
    auto_advance_switch: "Przechodz dalej"
    valves:
      - valve_switch: "Drzewko Szczescia"
        enable_switch: "Podlewaj Drzewko Szczescia"
        run_duration: 15s
        valve_switch_id: sprinkler_pump_sw0
      - valve_switch: "Kryspin Avocado"
        enable_switch: "Podlewaj Kryspina"
        run_duration: 15s
        valve_switch_id: sprinkler_pump_sw1
      - valve_switch: "Kawa w kubku"
        enable_switch: "Podlewaj Kawe"
        run_duration: 15s
        valve_switch_id: sprinkler_pump_sw2
      - valve_switch: "Marian Avocado"
        enable_switch: "Podlewaj Mariana"
        run_duration: 15s
        valve_switch_id: sprinkler_pump_sw3
switch:
  - platform: gpio
    id: sprinkler_pump_sw0
    pin: 14
    inverted: true
    icon: "mdi:sprinkler-variant"
  - platform: gpio
    id: sprinkler_pump_sw1
    pin: 4
    inverted: true
    icon: "mdi:sprinkler-variant"
  - platform: gpio
    id: sprinkler_pump_sw2
    pin: 5
    inverted: true
    icon: "mdi:sprinkler-variant"
  - platform: gpio
    id: sprinkler_pump_sw3
    pin: 16
    inverted: true
    icon: "mdi:sprinkler-variant"

i mimo funkcji inverted jako true lub false zawsze mam uruchomione przekaźniki. Ktoś może mnie naprowadzić gdzie jest błąd?

Możesz ten rysunek wrzucić w pełnej rozdzielczości (jeśli sam go tworzyłeś) albo dać link do miejsca skąd pochodzi?

Chwilowo zapomnij o ESP i przetestuj samą płytkę z przekaźnikami.

W ogóle to najprawdopodobniej powinieneś rozpiąć tą zworkę i zasilanie przekaźników podać jako osobne 5V, a logikę na płytce przekaźników zasilić z 3V3.

Poszukaj podobnych tematów na forum i jeśli znajdziesz w nich schemat swojej płytki z przekaźnikami to podrzuć linka, bo chyba gdzieś to było ale nie będę szukał.

PS co to jest “temu”

Zacznę od końca. Temu to taki inny aliexpress. Stamtąd pochodzi zestaw DIY do podlewania. Składał się z pomp, mierników wilgotności i płytki z 4 przekaźnikami i rurek do podlewania. Schemat/rysunek pochodzi właśnie z temu i lepszego nie mam. Jutro sprawdzę te zworkę. Dobrze opisałem piny w gpio? Według google powinienem opisywać je jako D3 a nie 3 ale wtedy wywala mi błąd przy wgrywaniu że to nie jest prawidłowo opisany pin

Nie wiem czy istnieje gotowa definicja dla płytki ESP8266 w formacie Uno
ale możesz spróbować takiej, bo to jest chyba Wemos D1 r1 albo jego klon

esp8266:
  board: d1

ewentualnie - tylko gdyby wcześniejsza definicja nie pasowała

esp8266:
  board: d1_mini

ale pisząc o tym naprowadziłeś mnie na coś raczej ważnego - to jest prawdopodobna przyczyna dla której nic nie działa
Dx to nie jest GPIOx i nie możesz zastąpić liczby za D samym x
tu masz popularne płytki ESP8266 (większość klonów też korzysta z takiej numeracji)

przykładowo układ numeracji najczęściej spotykany w Wemosach i NodeMCU oraz ich klonach dla płytek ESP8266

Dx GPIOx x
D0 GPIO16 16
D1 GPIO5 5
D2 GPIO4 4
D3 GPIO0 0
D4 GPIO2 2
D5 GPIO14 14
D6 GPIO12 12
D7 GPIO13 13
D8 GPIO15 15

Ale kwestia zworki i oddzielnego zasilania przekaźników i logiki rożnymi napięciami jest nadal obowiązująca (nawet jeśli po poprawkach definicji płytki projekt zadziała) ponieważ w niesprzyjających okolicznościach można usmażyć ESP (więc zasilanie logiki płytki przekaźników napięciem wyższym niż 3.3V tylko jeśli przy tym napięciu to nie będzie chciało działać).

Aha, a to temu wywalamy, zero marketingu platform sprzedażowych w tytułach (myślałem, że to jakaś nazwa własna sprzętu który użyłeś i zbieżność z nazwą sklepu jest przypadkowa)


pięknie nie jest ale działa. Znacie może jakiś patent żeby pompy zasilić z wemosa pomijając baterie AAA? Wemos ma wolny pin 3,3 V oraz 5V

Ale wemosa i tak będziesz zasilał z USB czy jak? Bo jesli tak to ja często używam takiego modułu:
https://allegro.pl/oferta/modul-zasilania-3-3v-5v-z-gniazdem-dc-6v-do-12v-13000011776
Nim sobie zasilam ESP i to co tam mam dodatkowego.

Może jestem czarnowidzem, ale podejrzewam, że te pompki mają spory prąd rozruchowy (to w sumie chyba jedyna motywacja dla której Chińczyk dał w zestawie koszyk na ogniwa, bo duży prąd rozruchowy może zakłócać pracę MCU przy nieodpowiednim torze zasilania) - pozostaje poeksperymentować.

Można wprawdzie wprowadzić programowy interlock (by w danym momencie nigdy nie pracowała więcej niż jedna pompka naraz).

Z pinu 3V3 pod żadnym pozorem nie próbuj korzystać do zasilania przekaźników czy silników pompek - to jest okazja do uszkodzenia stabilizatora zasilającego MCU i zarazem puszczenia całej płytki prototypowej z dymem.

W ogóle nie powinieneś korzystać z zasilania przez USB jeśli planujesz podpinać większe obciążenie do układu (górna granica rozsądku to pobór 1A przez wszystkie zastosowane podzespoły, a należy przyjąć że sama płytka prototypowa pobiera 0.3A, czyli przy zasilaniu w ten sposób maksymalnie 1 przekaźnik i cześć - weź od uwagę ograniczenia elektryczne złącza microUSB-B), co ważne masz tam gniazdo zasilania typu beczka, sprawdź w specyfikacji płytki jakie są dopuszalne napięcia zasilania i jaki jest maksymalny prąd do uzyskania w ten sosób - w torze zasilającym widać przetwornicę - jest to najprawdopodobniej najlepsza metoda zasilania tego układu.

Jeśli chodzi o wyżej proponowany moduł stabilizatorów to zwykle optymalnie jest użyć zasilacz 6V lub 9V, (zbyt wysokie napięcie będzie grzało stabilizatory niepotrzebnie, a przy niższym niż 6V straty na stabilizatorach LDO mogą być już za duże dla komponentów wymagających zasilania 5V).


Natomiast drugie co mi przyszło do głowy to jakieś-tam względy BHP (zasilanie z ogniw równa się całkowitej izolacji od sieci zasilającej 230V~ więc jest w 100% bezpieczne, nawet gdyby poszło coś bardzo nie tak w mokrym środowisku).


OFF_TOPIC
Kwestia używania ogniw - w koszyczku są jakieś losowe ogniwa, to jest częsty błąd - każdy uczciwy producent urządzenia bateryjnego informuje użytkownika o konieczności wymiany ogniw zawsze wszystkich naraz na nowe i jednakowe, ta informacja nie jest bezpodstawna - ma na celu używanie ogniw o możliwie najbardziej identycznych parametrach podczas całego ich życia (czy procesu rozładowania jeśli chodzi o akumulatory).

Przy pracy szeregowej w przypadku ogniw o różnych parametrach, to które jest “najsłabsze” (częściowo rozładowane lub innego producenta, inny model czy mające po prostu inną charakterystykę rozładowania) rozładuje się najszybciej, jeśli rozrzut parametrów jest duży, to może być to zdecydowanie wcześniej od pozostałych, a wtedy może dojść do wycieku elektrolitu, a nawet przebiegunowania (szczególnie groźne w przypadku akumulatorów, którym grozi wybuch w kolejnym cyklu ładowania).