Oprogramowanie wemos d1 mini

Cześć, potrzebują rozwiązania następującego problemu (uprzedzam, jestem zielony w temacie i potrzebują raczej gotowego rozwiązania niż podpowiedzi - oferuję kawę, piwo, itp)

Mam WeMos D1 Mini ESP8266-12F.

chcę podłączyć do niego z jednej strony wyłącznik chwilowy, a z drugiej potrzebuję zwarcia na chwilę dwóch pinów. Ma to zadziałać tak - jednokrotne wciśnięcie przełącznika spowoduje zwarcie na 1 sek. pinów o określonej godzinie (np. 13:00). Dwukrotne lub dłuższe przytrzymanie spowoduje zwarcie pinów na 1 sek. natychmiast. I chciałbym móc z HA ustawiać ten czas.

  1. Może trochę mniej tajemniczości, a więcej konkretów?

    Masz jakiś moduł przekaźnika, który połączysz z tym D1 mini? Moja wiedza o budowie takiej elektroniki pochodzi wprawdzie sprzed wielu lat (i ulega systematycznej degeneracji jako nieużywana :stuck_out_tongue: ), ale jeśli się nie mylę GPIO nie oferuje możliwości zwierania jednego pinu do innego pinu (w trybie pracy jako wyjścia), bo konstrukcyjnie jest to co najwyżej pseudo-OD (konstrukcja nieco podobna do otwartego drenu, ale z pewnymi istotnymi ograniczeniami).

  2. Tak to się chyba nie da… (no chyba, że ktoś akurat ma podobny gotowy projekt w użytku i się nim podzieli, ale i tak będzie lepiej, gdy będziesz to ogarniał).

Już wyjaśniam. Chodzi o uruchamianie zmywarki w godzinach tańszego prądu. Zmywarka jest uruchamiana przyciskiem. Chciałbym zrobić coś takiego, żeby wpiąć pomiędzy przycisk, a sterownik zmywarki wemosa, który by reagował na wciśnięcie fizycznego przycisku i w przypadku krótkiego naciśnięcia przycisku uruchamiał zmywarkę o określonej godzinie, a przy dłuższym naciśnięciu natychmiast.
Jeśli się nie da tego zrobić bezpośrednio z płytki to mogę dołożyć na wyjściu przekaźnik. To nie problem.
W zasadzie można by to zrobić jako autonomiczne urządzenie bez udziału HA, ale chciałbym mieć zestaw bardziej uniwersalny gdzie mógłbym z HA ustawiać godzinę włączenia.
Usiłuję to rozwiązać w esp easy ale idzie mi to bardzo opornie :frowning:

Rozwiązanie jest być może znacznie prostsze niż myślisz - wystarczy smartplug sterowany harmonogramem z możliwością lokalnego włączenia (czyli wpięty w łatwo dostępne gniazdko).
Praktycznie każda pralka i zmywarka ma możliwość automatycznej kontynuacji przerwanego programu (np. przez awarię zasilania) i opisane rozwiązanie bezczelnie to wykorzystuje.

Tryb postępowania - włączasz smartpluga, włączasz zmywanie, wyłączasz smartpluga, a on już zasilanie podaje w/g harmonogramu.
Oczywiście program zmywania musi się czasowo zmieścić w tych “tańszych godzinach” (no i generalnie jest jeszcze parę innych warunków do spełnienia - dobrze by było gdyby wypadało to w godzinach gdy ktoś jest w domu, każda zmywarka ma wprawdzie podstawowe zabezpieczenie przed zalaniem, ale praktyka pokazuje, że nie zawsze ono działa, dodatkowo jeśli nie jest to szczególnie cichy model to np. fajnie by było gdyby to nie pracowało w środku nocy, dla G12 pewnie optymalny czas włączenia to jakoś po 22:00).


Prawdopodobnie nie da się, ale to musisz ocenić sam, przekaźnik musi być jeśli nie wiesz co robisz, bo jeśli ogarniasz temat, to być może wystarczy podanie odpowiedniego poziomu logicznego na właściwy pin programatora (ten od przycisku), co najwyżej z konwerterem poziomów logiki (oczywiście fajnie by było gdyby ESP był zasilany bezpośrednio z zasilacza trybu standby - dodatkowe 0,5W-1,5W niby powinno się dać podebrać z fabrycznego zasilacza zmywarki, lepiej byłoby to zrobić bez przekaźnika ze względu na pobór mocy, być może tranzystor wysterowany z GPIO i wpięty w układzie OC byłby OK?).

Najlepiej by było gdybyś zdobył schemat lub chociaż serwisówkę programatora, ale możesz też pomierzyć na nim napięcia (założenie “w ciemno” - przycisk zwiera jakiś pin MCU w programatorze do masy, bo to jest najprostsze w realizacji i równocześnie łatwe do “zhackowania” :stuck_out_tongue: ).


Ale na dobry początek sprawdź czy rozwiązanie ze smartplugiem opisane powyżej zadziała (stosowałem takie rozwiązanie zarówno w przypadku starej pralki jak i zmywarki), z tym, że u mnie harmonogram włączał zmywarkę po prostu codziennie o 6 rano i wyłączał o 10 bez żadnych dodatkowych kombinacji, bo to był akurat stary Bosch z elektromechanicznym programatorem, więc nie wymagał inicjalizacji - można go uruchomić w stanie bez zasilania, to oczywiście godziny nie na G12 :stuck_out_tongue:
Opisane rozwiązanie działa również z programatorami elektronicznymi, warunkiem jest ręczne zaincjalizowanie programu (zmywania/prania) przed odcięciem zasilania.

Niestety rozwiązanie z gniazdkiem nie zadziała u mnie. To stara zmywarka i nie wznawia pracy. Też o tym na początku myślałem tym bardziej, że mam smartpluga. Co do bezpieczeństwa i głośności - mam pod zmywarką czujkę zalania, która w połączeniu z HA odetnie mi wodę. Mam taką taryfę, że najlepiej byłoby włączyć zmywarkę o 13 i wtedy mieści w dwu godzinach taniego prądu (wtedy może pohałasować).
Z zasilaniem nie ma problemu bo mam w zmywarce na płytce 12V i mogę dołożyć przetwornicę stepdown. Przekaźnik też nie jest problemem. Mam w głowie całą funkcjonalną logikę tylko nie umiem jej jeszcze przełożyć na program sterownika.

Czasem do wznawiania jest potrzebne wykonanie 1 kroku programatora pralki/zmywarki (zwykle rusza pompa zanim nabierze wody - w przypadku prostej pralki to było koniecznością).

Co do wykonania na bazie ESP ja bym użył ESPHome, ale nie mam nic co można by wykorzystać jako “gotowiec”.

PS z ciekawości sprawdziłem jak to wygląda dla aktualnej G12 i jeśli używasz zmywarki codziennie daje to jakieś 17groszy oszczędności na zmywaniu dla konstrukcji bez przekaźnika i nieco mniej z przekaźnikiem.

PPS
Moja obecna zmywarka nie daje rady się ogarnąć w 2h.

“Ziarnko do ziarnka…” Mnie wychodzi trochę więcej ale to stara zmywarka. Teraz to mi nie chodzi nawet o te grosze, a bardziej że się zawziąłem na to rozwiązanie. Przekaźnik niewiele zmieni bo ma się załączyć raptem na pół sekundy. Generalnie cały ten “program” to pewnie zamknie się w 12 linijkach i już w zasadzie mam napisany. Trochę mam problemów ze składnią ale pewnie jakoś to ugryzę.

Faktycznie przekaźnik nie ma istotnego wpływu na oszczędności (błędnie go doliczyłem do czasu pracy zmywarki), natomiast może to mieć znaczenie dla układu zasilania (dodatkowy przekaźnik dorzuca nawet koło 1W do obciążenia zasilacza, a jak rozumiem masz tam tryb standby, czyli może być to rozwiązanie o bardzo małej obciążalności).

Wspomniałem o tym codziennym używaniu, choć to nie rzutuje na wynik :stuck_out_tongue: natomiast częstość używania ma wpływ na sens ekonomiczny.
W ramach ciekawostek zmywarka (“superekologiczna”) kupiona w tym roku, żre dokładnie tyle samo energii co ponad 30-letnia (która po prostu skończyła żywot z braku części zamiennych, bo gdyby nie to, to pewnie by pociągnęła drugie 30).

PS Sugeruję ESPHome, bo się genialnie prosto integruje z HA (tzn. zupełny plug and play).

Ale “superekologiczna” to 50% do ceny i 20% do lansu :slight_smile: Miałem podobnie z pralką :slight_smile:
ESP home znam. Ma dwa moduły wpięte do HA ale miałem gotowce i nie musiałem tego programować. Teraz się uparłem i jestem coraz bliżej rozwiązania.

Co do tej “superekologii”, to istotnie bierze trochę mniej wody, ale reszta to bełkot marketingowy - technologia w AGD się nie zmieniła istotnie przez te parędziesiąt lat, a energooszczędna elektronika to wciąż “pieśń przyszłości”.

Ale podsunąłeś ideę - fajnie by było użyć deep-sleep, chociaż na ESP8266 możliwości są mocno ograniczone (i w tym zastosowaniu sobie tego nie wyobrażam na D1 mini) i fajnie by było użyć ESP32, które ma lepiej dopracowane możliwości usypiania, a raczej budzenia (wprawdzie to zaoszczędzi dodatkowo zaledwie jakieś ~1,5 grosza na dobę, więc taka zmiana sprzętu może się nigdy nie zwrócić :smiley: to jednak byłoby to ciekawe posunięcie).