W elektronice po uszy

W elektronice po uszy...

Ostatnio rzadko tu (na polskojęzyczny blog rev3rsed) zaglądam ale dzieje się wiele. Realizuję właśnie ciekawy projekt, który łączy w sobie inżynierię wsteczną, programowanie oraz ostatnio lubianą przeze mnie elektronikę - ale do rzeczy...

PelletMon - czyli monitor aktywności kotła grzewczego

W zasadzie cała przygoda z elektroniką od tego się zaczęła. Stary kocioł grzewczy poszedł do kotłowni w piwnicy, więc zaszła potrzeba monitorowania - by nie było konieczności chodzenia tam co chwila, tylko dopiero wtedy, gdy faktycznie jest potrzeba dołożenia węgla. O tym pisałem w 2018 roku - tutaj.

Idzie postęp, wraz z tym zmienił się też kocioł - zamiast "śmieciucha" jest kocioł na pellet. Zamiast mojej szczątkowej wiedzy o elektronice - jest tej wiedzy zdecydowanie więcej.

Nowy kocioł nie wymaga tak wielkiej uwagi, jak stary "śmieciuch", jednak bardzo kusiło mnie skorzystanie z magistrali CAN. Przy okazji w zaprzyjaźnionej firmie JLCPCB płytki 4-warstwowe są obecnie bardzo tanie (5$ za 5 sztuk!). Postanowiłem więc, że zrobię pierwszą płytkę na 4 warstwach.

Płytka 4-warstwowa co do zasady ułatwia prowadzenie ścieżek, ma pewną pojemność elektryczną stabilizującą zasilanie, minimalizuje drogę prądów powrotnych, łatwo kontrolować impedancję itd.


Płytki z JLCPCB, pierwsza wersja. Mają kilka mankamentów, jednak powinny działać.
Mimo tego i tak zamówiłem poprawione wersje z fabryki :)

Miałem kilka przygód z płytkami, czekam w tej chwili na kolejną wersję. Gdy już to wszystko poskładam, postaram się opisać więcej o płytkach a także o nowo nabytej wiedzy.

Detale implementacyjne, czyli RE w natarciu

Dobranie się do danych z kotła było łatwe, po prostu przykładowy program nasłuchujący na magistrali CAN w połączeniu z transceiverem zadziałał od razu. Gorzej było z wypluciem danych do komputera. Żaden przykładowy program mnie nie satysfakcjonował, więc zdecydowałem się, że znajdę jakiś gotowy program monitorujący magistralę CAN i dopiszę do niego po prostu część obsługującą hardware. Wybór padł na CAN Monitor 3000 a ja zdecydowałem się zasymulować działanie "AdapterChina", czyli jakiegoś z urządzeń które program wspiera. Napisałem swój własny sniffer na ESP32.

Chwile grozy nadeszły, gdy wysłałem przez przypadek nieodpowiednią ramkę CAN. Kocioł zasygnalizował uszkodzenie czujnika. Na szczęście restart kotła pomógł!

Dalej, będąc już bardziej ostrożnym, zacząłem dobierać się do danych. Niestety, wyszło na to, że wartości temperatury, które mogę odczytać są jedynie w postaci surowej prosto z przetwornika ADC. Zacząłem się domyślać, że wewnątrz są dwa moduły - jeden to po prostu hub, do którego podłączone są peryferia a drugi to HMI. Hub wysyła dane do HMI (Human-machine-interface / panel sterujący), do których mam dostęp.


Przykładowe wartości dla temperatur spalania i kotła. Z lewej strony wartość surowa, z prawej rzeczywista wartość temperatury wyświetlana na panelu sterującym kotła.

Tutaj wydaje się to proste, jednak uzyskanie tych wartości było nie lada wyzwaniem. Początkowo czekałem i notowałem zmiany "na żywo", czyli po prostu obserwując kocioł. Niestety ten sposób nie pozwalał znaleźć wartości skrajnych. Nie chciałem przecież całkowicie czekać aż ogrzewanie całkiem ostygnie. Raz, że zima na to nie pozwalała, dwa - nie chciałem spędzić 24h w kotłowni.

Wpadłem na pomysł, żeby wysyłać na magistralę spreparowane wartości. Okazało się, że w ten sposób jestem w stanie wysłać na przykład wartość 2500 i zobaczyć na ekranie 28.1°C. W ten sposób zbudowałem tabele wartości dla temperatury spalania oraz temperatur CWU, kotła itd.

Wszystko pięknie ale co z wartościami "pomiędzy"? Tutaj przydaje się matematyka. Na szczęście, jak z wieloma rzeczami, tak i z regresją funkcji - jest do tego odpowiednie oprogramowanie. CurveExpert Professional pozwolił wyznaczyć funkcję, która bardzo dobrze przybliża wartości temperatury. W ten sposób uzyskałem wartości z dokładnością do ułamka dziesiętnego - czyli to, czego oczekiwałem.


Przykładowa regresja funkcji w programie CurveExpert.

Wszystko fajnie ale ile w piecu jest pelletu?

Tutaj kocioł nie ma danych, więc wpadłem na własne rozwiązanie. Zamontuję w zasobniku czujnik odległości HC-SR04. Początkowo miałem obawy, że kształt i "granulowatość" pelletu nie pozwoli fali ultradźwiękowej na odbicie się od jego powierzchni, jednak testy na miejscu pokazały, że nie sprawia to problemów.

Pozostało czekać :)

... na części i poprawione płytki. Przy okazji przewinie się kwestia podłączenia kotła oraz sensora a także kwestia obudowy.

Wszystkie najnowsze aktualizacje zawsze wrzucam "na świeżo" na portal hackaday:

Komentarze

Prześlij komentarz