ESP i przekaźniki - jak to działa?

Witam, mam takie może dla niektórych banalne pytanie, ale nie znalazłem na nie odpowiedzi w prostych poradnikach. Nie jestem elektronikiem, dopiero zaczynam zabawę z ESP i chciałbym zrozumieć jak to działa. Chodzi o sterowanie przekaźnikami przez ESP (takimi przekaźnikowymi gotowymi modułami z elektroniką, na płytce). Są tam dwa piny do podpięcia napięcia i pin do sterowania. I teraz jeżeli mamy przekaźnik sterowany stanem wysokim, to aby go załączyć na ten pin z modułu ESP podajemy 3,3V, natomiast jeżeli jest sterowany stanem niskim, to ten pin przez moduł ESP łączony jest do masy (tyle wyczytałem, poprawcie mnie jeżeli się mylę). A co jest podane na tym pinie kiedy przekaźnik ma być wyłączony? Nic? Masa? Czy w przypadku sterowania stanem niskim to będzie 3,3V? Czy to jest tak, że wyjście z ESP może przybierać tylko dwa stany - 3,3V albo GND, czy też może nie być połączone ani z jednym ani z drugim?

https://esphome.io/cookbook/relay.html?highlight=relay

https://esphome.io/components/switch/gpio.html

Zapoznałem się oczywiście z tymi stronami wcześniej, i to wszystko jest dla mnie jasne, natomiast nie ma tam odpowiedzi na moje pytanie.
Spytam więc krócej: czy na sterującym pinie Gpio w trybie switch przełączamy na zmianę 3,3v z GND ?

Użycie gotowego modułu przystosowanego do sterowania z dowolnego MCU (nieprawda - te najprostsze konstrukcję są dedykowane dla poziomów typowych dla TTL, ale w przypadku logiki 3,3V wciąż działają poprawnie, natomiast zwykle te bardziej uniwersalne konstrukcje mają transoptor na wejściu, izolowane zasilanie przekaźnika oraz sterowanie stanem niskim dzięki czemu mogą być sterowane z wyjść typu OC/OD), a zawierającego przekaźnik znacznie ułatwia życie (bo przekaźnika NIE WOLNO podpinać bezpośrednio do wyjść MCU bez tego minimum elektroniki pośredniczącej).

Stan odwrotny do sytuacji włączonej.

Jeśli masz sterowanie stanem wysokim (3,3V) to “gasi światło” stan niski (0V).

A jeśli sytuacja jest odwrotna tj. przekaźnik jest załączony jest przy stanie niskim (0V) to zostanie wyłączony jeśli na wyjście podasz stan wysoki (3,3V).

Świetnym przykładem jest taki projekt (lampka zapalana przy użyciu przekaźnika wbudowanego w Sonoff Basic):

Tu masz jako wyjścia wykorzystane GPIO12 do sterowania przekaźnikiem i GPIO13 do zapalania kontrolki LED.
Przekaźnik pracuje w logice dodatniej (stan wysoki go załącza), a kontrolka LED w logice ujemnej - aktywnym stanem jest dla niej stan niski.

Tak naprawdę, to na wyjściach nie uzyskujesz ani prawdziwego 0V, ani 3,3V, lecz wartości dostatecznie bliskie oczekiwanych - elektronika cyfrowa jest “pod spodem” w istocie analogowa

Tak.

Musisz jednak projektując jakikolwiek sprzęt brać pod uwagę stan wyjść podczas bootowania MCU.
W przypadku niektórych GPIO jest to bardzo istotne, to należy sprawdzać w dokumentacji danego modelu MCU, ale zazwyczaj w sieci są dostępne “bryki” będące skrótem najważniejszych informacji, oto ich przykłady:

https://tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html

Rozumiem, dzięki za obszerny opis. Teraz sprawa jest jasna.

Dlaczego w ogóle mnie to nurtowało? Otóż mam jeden przekaźnik, którego nie mogłem za nic przełączyć przez ESP (po zasileniu i spięciu z ESP cały czas był załączony). Jednak po odłączeniu pinu sterującego przekaźnik się przełączał. Okazało się, że załącza się zarówno przy podpięciu pinu do masy jak i 3,3v, natomiast przy niepodpiętym nigdzie pinie sterującym jest wyłączony. Zacząłem się więc zastanawiać czy coś robię nie tak, czy to może zepsuty moduł przekaźnika.

Rozumiem w świetle tego wszystkiego, że jest zepsuty i w takiej sytuacji nie da się nim sterować przez moduł ESP.

Niekoniecznie zepsuty, pewnie po prostu niekompatybilny z poziomem logiki 3,3V albo podłączyłeś go niezgodnie z zamierzeniem projektanta.

Pokaż jakiś link do opisu technicznego tego modułu przekażnika, możliwe, że wejście sterujące jest przystosowane do innego poziomu logiki sterującej - w takim wypadku może pomóc konwerter poziomów logiki.

Tu masz taki przykładowy najprostszy (4 kanałowy, 1 kanał czegoś jeszcze prostszego można zbudować samemu, ale to prosta elektronika, może się znajdzie jakieś ultra-proste rozwiązanie)

Na znanym polskim portalu aukcyjnym był opisany jako: Moduł 1 przekaźnika 5V 10A Arduino Lo. W opisie nic więcej nie było, więc myślałem że to zwyky przekaźnik sterowany stanem niskim, ale teraz poszukałem i na innej aukcji podobnego przekaźnika znalazłem taki opis:

Napięcie włączające przekaźnik: 0V do Uzas-1,1V (0V do 3,9V)
Napięcie wyłączające przekaźnik: Uzas-1V do Uzas (4V do 5V). Styk niepodłączony, przekaźnik wyłączony.

Zasilanie jest 5V, czyli rozumiem, że wyłącza go napięcie od 4 do 5V. Czyli bezpośrednio z ESP8266/ESP32 go nie wysteruję?

p.s. pewnie taki konwerter zrobiłby robotę podnosząc napięcie z 3,3 do 5v, ale kupowanie płytki za 17zł aby móc sterować przekaźnikiem za 5zł to trochę bez sensu…

Taki?

Na czerwono w opisie oferty jest informacja, że nie współpracuje z RPi, więc nie będzie też współpracował z żadnym MCU z logiką 3,3V.

Jakkolwiek jest szansa, że przetwornik poziomów stanów logicznych pomoże - łącząc informacje z tego co napisałeś i z jako-takiego opisu technicznego w Botlandzie wynika, że on zarówno “0V” jak i “3,3V” (przypominam, to faktycznie są inne napięcia - masz multimetr?) traktuje jako stan niski na wejściu.
Pewnie można go zmodyfikować, ale musiałbyś znaleźć jego faktyczny schemat elektryczny (no sorry nie mam motywacji), albo chociaż zrysować mając płytkę w ręce - prawdopodobnie da się zmodyfikować, niestety jest ryzyko, że uwalisz sobie płytkę ESP, bo jest ryzyko, że na jego wejściu występuje niezerowe napięcie (a konkretniej znacznie przekraczające dopuszczalne dla ESP).

Z takim podejściem daleko nie zajedziesz - musisz zatem zacząć czytać dokumentację techniczną przed zakupem (kup sobie np. moduł przekaźnika z transoptorem kompatybilny z logiką 3,3V i przeczytaj ze zrozumieniem jego dokumentację przed użyciem - na GPIO ESP nigdy nie może pójść napięcie 5V, ani tym bardziej wyższe, więc musisz rozdzielić zasilanie takiego przekaźnika od zasilania jego elektroniki sterującej!!!, walnąłbym jeszcze więcej wykrzykników, bo zazwyczaj fabrycznie założona jest zworka łącząca te 2 obwody zasilania np. jak w takim gdzie trzeba zdjąć zworkę i oddzielnie podać 3,3V dla elektroniki na płytce po “stronie pierwotnej” transoptora, a oddzielnie po stronie przekaźnika 5V wpinając zasilanie przekaźnika ZAMIAST jednego z pinów zworki).

Masz też drugą opcję - douczyć się na tyle absolutnych podstaw elektroniki byś mógł samodzielnie zmodyfikować budowę takiej płytki przekaźnika, jaką już posiadasz (jest szansa, że to możliwe).