Zamontowałem kontaktron w furtce w celu automatyzacji oświetlenia przy otwarciu furtki. Furtka jest zamknięta a dzienniku mam otwarcie i zaraz zamknięcie(foto poniżej)
Wszystko pracuje na płytce Wemos D1 mini z softem SUPLA i integracja po MQTT do HA.
Dodam że zastosowalem rezystor podciągający 4,7k.
Problem że w nodered takie zachowanie kontaktrona powoduje zadziałanie oświetlenia a furtka wcale nikt nie otwiera. Co może być przyczyną.
Przy znacznie krótszych miałem problemy.
Aby potwierdzić hipotezę potrzebny byłby oscyloskop
Długie przewody działają jak antena i “łapią” zakłócenia. Można na próbę podłączyć na maksymalnie krótkich przewodach lub zewrzeć wej. na płytce i sprawdzić czy to jest “to”.
… od tego bym zaczął,
Następnie spróbować zastosować jakiś filtr sprzętowy lub programowy wg.
Próbowałeś zewrzeć GPIO do masy bezpośrednio na płytce?
Czy objaw ustał (oczywiście stałe zwarcie powoduje chwilową bezużyteczność rozwiązania, ale w ten sposób zdiagnozujesz czy przyczyna nie leży w innym miejscu niż kontaktron i jego przewody połączeniowe)?
Kontaktrony mają prąd przełączalny ok 0.5A więc śmiało można zmniejszyć pullup do 1kohm (można zejść nawet do 100ohm). Większy prąd, większy margines na zakłócenia + kondensator filtrujący - tak jak linku.
Warto zwrócić uwagę na klony D1 mini wyposażone w regulator 3V3 o obciążalności jedynie 150mA
wprawdzie np. XC6204E331MR łatwo pomylić z XC6204A331MR, bo oznaczenia na SOT-25 są niemal identyczne (różnica to kropki lub kreski).
Rezystor 100R spowoduje praktycznie bezustanne (bo kontaktron w stanie normalnym mamy zwarty) dodatkowe obciążenie regulatora napięcia na poziomie 33mA, więc trzeba mieć na uwadze inne peryferia, aby nie przekroczyć możliwości stabilizatora (sam MCU pobiera koło 180mA w piku, a przeciętnie trzeba liczyć koło 100mA, no ale jeśli się projektuje coś co ma działać stabilnie to trzeba brać pod uwagę ekstremalne wartości…).
Ponoć zabezpieczenie termiczne nawet w tych stabilizatorach o znamionowej obciążalności 150mA działa dopiero w okolicach >250mA, ale spadki napięcia wyjściowego mogą powodować niestabilną pracę MCU.
Jakkolwiek na pracę zabezpieczenia termicznego wpływają też takie czynniki jak choćby poprawność (precyzja) montażu czy poprawny projekt PCB z dużym polem masy, bo tylko ona stanowi radiator oraz temperatura otoczenia (dość istotna przy montażu na zewnątrz), co świetnie zobrazuje wykresik temperatur maksymalnych w niekorzystnym miejscu
Nie powinno się obniżać pullup poniżej zalecenego 4.7k ponieważ jakimś trafem możemy ustawić sobie pin jako output w stanie Lo i je uszkodzimy.
Po zaprogramowaniu i sprawdzeniu można próbować zmian. Dla GPIO jako input nie ma znaczenia.
Może masz możliwość na szybko podłączyć zamiast tego Wemosa inną płytkę? esp32, nodemcu
Jam mam 4szt kontaktronów na pytce 10m, 8m i 3m i do tego przełącznik rtęciowy, na przewodzie cieniutkim chyba z lampek znalezionym na złomie
bez żadnych dodatkowych rezystorów, tylko pullup w sofcie włączony żeby wewnętrzne na płytce aktywować i nigdy nie widziałem żeby cokolwiek było nie tak.
@bartik22
Niestety nie mam innej płytki ale spróbuje cos ogarnąć. Wemos d1 mini ma wewnętrzny pull up tylko na dwóch pinach jak dobrze pamiętam GPIO 0 i GPIO 2. Ja kontaktron mam podpięte pod GPIO 13. Może przepnę kontaktron na któryś z pull up wewnętrznym.
@angler
Prędzej bym uwierzył w zimny lut lub zardzewiałe połączenie śrubowe (jeśli to gotowy moduł kontaktronu we własnej obudowie), ale… oczywiście nie da się tego wykluczyć - tu by się przydała obserwacja na miejscu (wycieczka do furtki z laptopem z odpalonym na żywo logiem z ESP) - w sumie drgania konstrukcji istotnie mogą w szczególnych przypadkach dawać taki objaw (np. gdy magnes jest za słaby/za daleko/źle ustawiony), może po prostu wiatr targa ciężką furką i ona uderza w słupek ze stosunkowo dużą siłą, takich rzeczy nie da się stwierdzić zdalnie, nic nie zastąpi “badań organoleptycznych”, być może w tym wypadku wystaczyłoby przekręcenie kontaktronu by kierunek ruchu styków był prostopadły do typowego zaburzenia zewnętrznego (przy takiej operacji można uszkodzić kontaktron, więc wypadałoby wylutować zgiąć nóżki w nowym kierunku i wlutować ponownie jeśli to konstrukcja z kontaktronem na PCB).
Kolejna kwestia o której nie wiemy nic, to czy w bezpośredniej bliskości nie znajduje się urządzenie, które może być źródłem silnych zakłóceń impulsowych (to tak a propos nieekranowanych przewodów, chociaż przy zewnętrznym pullupie o sensownej wartości zakłócenia są mało prawdopodobne, to jednak możliwe).
@Lomax1983
Nie używaj do tego ani GPIO0 ani GPIO2, owszem mają one podpięte fabryczne pullupy, ale nie bez powodu - są to piny “specjalne” biorące udział w bootowaniu i dlatego nie nadają się do podpięcia kontaktronu, który w stanie normalnym będzie zwierał którykolwiek z nich do masy (można za to wykorzystać je do podpięcia przycisków lokalnych, których stanem normalnym jest NO).
Tak samo nie należy używać GPIO15 - decydującego skąd MCU ma bootować (tzn. nie należy zmieniać zastanego stanu na większości modułów).
Każdy inny “normalny” GPIO możesz wykorzystać do tego celu (o ile nie jest to np. GPIO z wewnętrznym pulldown’em, jak np. GPIO16, ale taki z definicji nie jest “normalny”), swoją drogą “normalne” GPIO można konfigurować by włączyć na nich slaby wewnętrzny pullup, ale po co? - lepiej to olać i dać fizyczny rezystor.
(te wewnętrzne słabe pullupy to proszenie się o problemy przy przewodach dłuższych niż kilka cm)
PS
To oryginalny WeMos (ma o tej treści napis na PCB lub ekranie modułu) czy klon?
Dziękuje wszystkim za sugestie i pomoc ale muszę Was zaszokować. Okazało się że problem był prozaiczny. Wemosa mam przy furtce w metalowej rozdzielnicy. Jest to D1 min pro z zewnętrzną anteną. Wemos mam zanotowane na drzwiczkach tej rozdzielnicy. Antenę mam z magnesem zamocowaną na na drzwiczkach na zewnątrz. Okazało się że magnes anteny był na tej samej wysokości co Wemos. Przesunąłem antenę w inne miejsce, dalej od Wemosa i problem sam ustał. Nie mogłem w to uwierzyć i po ponad 24h prawidłowego działania przesunąłem antenę z powrotem i problem znowu się pojawił. Jeszcze raz dzięki wszystkim.