logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Generyczny zmotoryzowany siłownik inteligentnego zaworu - od BK7238 do ESP8266

tjkolev 04 Mar 2026 03:45 477 2
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21853840
    tjkolev
    Poziom 5  
    Posty: 3
    Ocena: 4
    Pozdrowienia!

    Zakupiłem jeden z tych ogólnych siłowników zaworów z Amazon . Jest tu kilka postów o podobnych, ale stwierdziłem, że wrzucę też swój.

    Oprócz siłownika zaworu kupiłem również w serwisie eBay używany przepływomierz Keyence FD-Q20C. Cele projektu:
    * Wyrzucić jakikolwiek kod uruchamiany przez zawór. Nie chcę, aby rozmawiał z osobami z zewnątrz.
    * Zainstalować mój kod do sterowania zaworem i zbierać dane telemetryczne przepływu wody z Keyence.
    * Zamknąć zawór po wykryciu określonych warunków. Na przykład wyciek wody. Lub zużycie wody, gdy jesteśmy na wakacjach. Albo nastolatek korzysta z prysznica dłużej niż uważam za konieczne.

    Ten post dotyczy dwóch pierwszych elementów. Nadal zbieram dane, aby ustalić rozsądne progi dla trzeciego.

    Zawór
    To nie jest coś, czym można się ekscytować. Dobre jest to, że można go zainstalować bez cięcia rur. Mam go na moim 3/4" ćwierćobrotowym zaworze kulowym, który znajduje się bezpośrednio za wodomierzem domowym. Złą stroną jest to, że silnik jest słaby i mocuje się go do jednego punktu na rurze za pomocą słabego zacisku węża. Cały zawór ma tendencję do obracania się wokół rury, gdy próbuje pokonać moment obrotowy zaworu rurowego. Zamierzam zbudować coś w rodzaju ramy wokół korpusu zaworu, aby zapobiec jego przemieszczaniu się.

    Kilka zdjęć z wymiarami w mm (+/- 1 mm).

    Mechanizm z czarną obudową i metalowym ramieniem z wymiarami w pomarańczowych liniach

    Czarny element mechaniczny z uchwytem i kablami, z naniesionymi pomiarami 16, 21 i 67

    Zawór sterujący
    Zawór wykorzystuje moduł T1-U-HL z MCU Beken BK7238. Spędziłem trochę czasu szukając dobrego SDK do programowania BK7238, ale nic nie znalazłem. OpenBeken wymienia układ jako obsługiwany. Próbowałem go zbudować bez powodzenia. Zdecydowałem się użyć ESP8266 - mam już własną bibliotekę narzędziową dla niego. Być może ESP-12F pasowałby lepiej, ale nie miałem takiego. Miałem za to kilka Wemosów D1-s.

    Przed modyfikacjami:

    Zbliżenie płytki PCB z modułem Wi‑Fi, przyciskiem, kondensatorem 220 µF 10 V i układem LM2596S

    Zbliżenie na silnik elektryczny z dwiema płytkami PCB, przewodami i elementami elektronicznymi

    Oprócz 3V3 i GND używane są trzy piny z T1-U-HL:
    P24: Sterowanie silnikiem poprzez układ sterownika silnika BDR6133.
    P09: Przycisk.
    P08: DIODA LED.
    P24 steruje wejściem IB, a ten sam sygnał jest odwracany przez tranzystor i podawany na wejście IA układu BDR6133. Oznacza to, że silnik jest zawsze zasilany w taki czy inny sposób. Przestaje się poruszać z powodu wyłączników krańcowych i diod, które odłączają jeden z jego zacisków. Zmiany, które wprowadziłem:
    (1) Indywidualne sterowanie IA i IB. W ten sposób mogę ustawić oba na LOW, a silnik nie będzie zasilany (oba zaciski na 0V) i nie będzie się w ogóle poruszał.
    (2) Odczyt stanu zaworu. Używane są dwa mikroprzełączniki, ale tylko ich styki NC. Podłączyłem dwa wejścia ESP8266 do nieużywanych styków NO za pomocą diod, aby utrzymać 12V silnika z dala od MCU. Przed odczytaniem wejść upewniam się, że silnik jest wyłączony (zarówno IA, jak i IB LOW). W ten sposób odczytuję LOW z jednego z przełączników w zależności od tego, czy zawór jest zamknięty czy otwarty. Oba odczytują stan WYSOKI, gdy zawór jest w połowie drogi. Odczyt przełączników, gdy zawór się porusza, okazał się niejednoznaczny.

    Zbliżenie płytki PCB z elementami i czerwonymi okręgami oraz zielonymi oznaczeniami D0–D3

    Powyższy obraz próbuje pokazać modyfikacje. Chociaż nie zrobiłem ich wszystkich w momencie robienia zdjęcia. I zapomniałem zrobić zdjęcie, kiedy to zrobiłem. Niektóre zmiany można zobaczyć na poniższych obrazkach.
    Czerwone oznaczenia pokazują usunięte elementy. Zielone - nowe połączenia. Od lewej:
    * Przecięcie ścieżki łączącej dwa rezystory dla wejść IA/IB. Teraz można nimi sterować oddzielnie.
    * Usunięto tranzystor i rezystor odwracający sygnał IB dla wejścia IA. Nie są już potrzebne. Dodano zworkę, aby podłączyć rezystor 2K2 do wejścia IA po usunięciu tranzystora.
    * Usunięto dwie diody. Dioda LED świeciła z różnych źródeł, a diody je izolowały.
    * Usunąłem rezystor podciągający i dwa kondensatory - obwód debounce dla przycisku, jak sądzę.
    Ostatni element mógł nie być potrzebny. Początkowo zasilałem 3V3 z pinu 2 (wyjście) wbudowanego układu LM2596. Miałem ciągłe problemy ze stabilnością ESP8266. Dopóki nie przyjrzałem się typowej aplikacji LM2596, która jest używana.

    Schemat przetwornicy step-down LM2596 5.0: 12 V wejście, dławik 33 µH, 5 V wyjście 3 A

    Podczas rozwiązywania tych problemów pozbyłem się obwodu RC przycisku.

    Zdjęcia z modyfikacjami. Ale zanim naprawiłem problem z zasilaniem.

    Zbliżenie na płytki PCB z przewodami; strzałki wskazują piny układu z podpisami „Bad pin 2” i „Correct pin 4”.

    Zbliżenie na płytki PCB z kolorowymi przewodami zamontowane na silniku; oznaczenia D5 i D6 w kółkach.

    Oto kilka schematów obwodów. Brakuje w nich komponentów pomocniczych wokół LM2596 i BDR6133. Ale powinny uchwycić zmiany, które wprowadziłem.
    Przed:
    Schemat zasilania 12 V z przetwornicą LM2596 i sterownikiem silnika BDR6133

    Po:
    Schemat układu z ESP8266, regulatorem LM2596 i sterownikiem silnika BDR6133 oraz wejściami Ch1/Ch2.
  • #2 21854360
    divadiow
    Poziom 38  
    Posty: 5027
    Pomógł: 438
    Ocena: 891
    interesujące!

    tjkolev napisał:
    Próbowałem go zbudować bezskutecznie


    Myślę, że dałoby się to zrobić z BK7238, są dostępne skompilowane binaria ze strony https://github.com/openshwprojects/OpenBK7231T_App/releases gotowe do flashowania.
  • #3 21855942
    tjkolev
    Poziom 5  
    Posty: 3
    Ocena: 4
    divadiow napisał:
    ciekawe!

    Myślę, że dałoby się to zrobić z BK7238, są skompilowane binaria dostępne na https://github.com/openshwprojects/OpenBK7231T_App/releases gotowe do flashowania.


    Prawdopodobnie. Próbowałem zbudować powyższe repo, ale się nie udało. Nie naciskałem zbyt wiele. Nie chciałem używać całej aplikacji (mam ją uruchomioną na kilku innych przełącznikach). Chciałem ją zbudować, a następnie rozebrać repo (lub wyodrębnić) podstawową bibliotekę rdzenia, aby bezpośrednio kontrolować BK7238. Chciałem zintegrować się z moją biblioteką narzędzi, której używam od lat w moim środowisku. W pewnym momencie zdecydowałem, że spędziłem na tym wystarczająco dużo czasu i wymieniłem ESP. Znajoma i łatwiejsza ścieżka.

    Dzięki!
REKLAMA