1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
---
title: "W końcu osiągnąłem kolejny kamień milowy w automatyzacji ..."
publishDate: "2024-06-18T07:47:48.191Z"
description: "W końcu osiągnąłem kolejny kamień milowy w automatyzacji zarządzania energia w kamperze. Ostatnio przestałem dostawać napięcie na akumulatorze od alternatora - ..."
tags:
- diy
- elektronika
- microblog
- pl
- smartvan
- vanlife
language: "pl"
sourceUrl: "https://mastodon.com.pl/@knightdave/112636517953804787"
author: "Dawid"
draft: false
---
W końcu osiągnąłem kolejny kamień milowy w automatyzacji zarządzania energia w kamperze.
Ostatnio przestałem dostawać napięcie na akumulatorze od alternatora - niby alternator sprawny i podciągając przewód prosto od wyjścia alternatora do akumulatora wszystko działa - pewnie coś z wiązka.
Termin u mechanika dopiero za 2 tygodnie - wiec co tu robić?
Od dawna chodził mi po głownie pomysł, aby jeden separator napięcia (ładowarka lądująca z alternatora cześć mieszkalna) podłączyć odwrotnie i w razie zostawienia na dłużej samochodu lądować z solarów akumulator przedni.
Chciałbym widzieć na panelu dodatkowe przełączniki od ładowarek i potem przekręcając kluczyk stacyjki automatycznie włączyć ładowanie.
W przyszłości mógłbym to rozwinąć - i np. jeśli mam powyżej 80% stanu energii w części kamperowej, i załączyło się ładowanie z silnika, to zacznij grzać wodę w boilerze.
Niestety było kilka problemów żeby dojść do takiej automatyzacji:
- CerboGX ("mózg kampera") nie znal stanu silnika - czy pracuje czy jest wyłączony
- CerboGX ma tylko 2 wbudowane przekaźniki do kontrolowania innych urządzeń i już są podłączone do przetwornicy i boilera
- Mam płytkę z dodatkowymi 4rema przekaźnikami, ale jest niekompatybilna z pluginem do cerbo.
<div class="mt-4 mb-4 grid grid-cols-1 sm:grid-cols-2 gap-4">
<img src="/mastodon/720aa93d5cd5acad.png" alt="Screenshot z aplikacji nodered z automatyzacja uruchamiania przekaźnika w zależności od stanu silnika." class="w-full max-h-96 object-cover cursor-zoom-in rounded-lg border border-gray-200 transition-colors hover:border-gray-300 dark:border-gray-700 dark:hover:border-gray-600 " loading="lazy" data-zoomable />
<img src="/mastodon/934aeff21d6ba1c7.png" alt="Panel kontrolny Victron cerbogx z sześcioma przełącznikami. Od lewej przetwornica, bojler, orion samochód, orion kamper." class="w-full max-h-96 object-cover cursor-zoom-in rounded-lg border border-gray-200 transition-colors hover:border-gray-300 dark:border-gray-700 dark:hover:border-gray-600 " loading="lazy" data-zoomable />
</div>
---
Najpierw wynalazłem w internecie schemat na którym z pomocą optoizolatora można podać sygnał w zależności od napięcia 12v w innym przewodzie.
Znalazłem odpowiedni bezpiecznik w samochodzie, który dostawał napięcie 12v po przekręceniu kluczyka stacyjki i puściłem od niego przewód od spodu samochodu aż po sam tył. Wykorzystałem otwory które już istniały idące do separatorów.
Podpiąłem izolator, podpiąłem cerbo - działa, skonfigurowałem input jako generator :D
Mam sygnał - na panelu pojawił się status silnika, co tez znaczy, ze mam do niego dostęp z poziomu NodeRed.
To było proste, teraz zacznie się prawdziwa zabawa z dodaniem przekaźników...
<div class="mt-4 mb-4 grid grid-cols-1 sm:grid-cols-2 gap-4">
<img src="/mastodon/697303f227f475c4.png" alt="Pseudo schemat obrazujący jak wykrywać uruchomienie silnika w cerboGX przez napięcie 12v z optoizolatorem." class="w-full max-h-96 object-cover cursor-zoom-in rounded-lg border border-gray-200 transition-colors hover:border-gray-300 dark:border-gray-700 dark:hover:border-gray-600 " loading="lazy" data-zoomable />
<img src="/mastodon/288c08ca17b87774.png" alt="Panel statusu z cerboGX pokazujacy uruchomiony silnik." class="w-full max-h-96 object-cover cursor-zoom-in rounded-lg border border-gray-200 transition-colors hover:border-gray-300 dark:border-gray-700 dark:hover:border-gray-600 " loading="lazy" data-zoomable />
</div>
---
Wynalazłem repozytorium, które dodaje wsparcie dodatkowych przekaźników do cerbo. [github.com/Lucifer06/RemoteGPIO](https://github.com/Lucifer06/RemoteGPIO)
W skrócie - będziemy sterować zewnętrznym urządzeniem poprzez konwerter rs485-usb za pomocą protokołu modbus w zależności od stanu przełącznika w cerboGX (tego z panelu) słuchając stanu na systemowym dbus.
Wszystko jest w bibliotece, tylko... Nie do mojej chińskiej płytki. Do mojej płytki nawet niema dobrej dokumentacji - wszystko co tam było nie działało.
Zaczynam od reverse engineeringu - wysyłam rożne wartości na rożne "discrete input" i "input register". Po kilku dniach mam działający zestaw komend który włącza i wyłącza każdy z czterech przekaźników.
Teraz ten plugin do cerbo. Caly byl napisany w bashu i bardzo nie kompatybilny z tym co moja płytka oferowała (trust me). Proste dodanie innej komendy nie wchodziło w grę i musiałem to przepisać pod siebie.
Znalazlem bibliotekę do Pythona od Victrona, która załatwia sporo rzeczy za mnie. Wystarczywszy otworzyć obiekt, który słucha na danych ścieżkach z dbus i wywołuje handler przy zmianie statusu. Potem juz tylko kilka godzin ślęczenia na pymodbus i ustabilizowanie zapytań i wuala.
Wszystko wgrane do Cerbo, serwis podmieniony - przełączam na telefonie stan przekaźnika i słyszę charakterystyczny klik!
Na koniec zostało podłączenie przewodów sygnałowych z dwóch przekaźników do separatorów "Orion", uruchomienie automatyzacji w NodeRed i wszystko działa!
Przekręcam stacyjkę i po minucie (dodałem lekki delay jakbym tylko chciał szyby opuścić) załącza się ładowanie.
Co ja teraz zrobię z tym zaoszczędzonym czasem.
<div class="mt-4 mb-4">
<img src="/mastodon/de22d71628dbf255.png" alt="Pytka z przekaźnikami." class="w-full cursor-zoom-in rounded-lg border border-gray-200 object-cover transition-colors hover:border-gray-300 dark:border-gray-700 dark:hover:border-gray-600" loading="lazy" data-zoomable />
</div>
|