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).
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:
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.
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.
Podczas rozwiązywania tych problemów pozbyłem się obwodu RC przycisku.
Zdjęcia z modyfikacjami. Ale zanim naprawiłem problem z zasilaniem.
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:
Po:
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).
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:
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.
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.
Podczas rozwiązywania tych problemów pozbyłem się obwodu RC przycisku.
Zdjęcia z modyfikacjami. Ale zanim naprawiłem problem z zasilaniem.
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:
Po: