Hej koledzy,
czytałem trochę tematów odnośnie podłączania pompy ciepła przy użyciu modbusa. Potrzebuję również przynajmniej odczytywać dane działania swojej pompy ciepła, gdyż mam wrażenie, iż posiada źle dobrane parametry i chciałbym je “zoptymalizować”.
Ogólnie rzecz biorąc, mam całkiem duże doświadczenie z Arduino/ESP8266/ESP32, jednak modbus niespecjalnie jest moim sprzymierzeńcem (przynajmniej do teraz, zanim poznałem lepiej ESPHome). Podobnie może być i tym razem, gdyż nie otrzymuję poprawnego połączenia modbus przy użyciu ESP8266 lub ESP32.
Moja pompa ciepła to SPRSUN CGK-040V3L (model bez B, sterownik Carel, moduł Elfin EW11A), produkcja 2022 roku ze sprężarką Panassonic.
Może na początku opiszę swoje kilkudniowe doświadczenia z wykorzystaniem różnych kodów zamieszczonych w tym i innym temacie związanym z modułem Elfin-EW11. Jako modułu komunikacyjnego używam MAX485 (wyjścia zasilam 5V) oraz ESPHome wraz z panelem web (do podglądu logów oraz danych). Niestety przy podłączeniu cały czas w logach otrzymuję informację “no response received”. Mam kilka przypuszczeń dlaczego może tak być (prosiłbym o naprowadzenie/poprawienie):
Na przewodzie do komunikacji ESP ↔ pompa ciepła nie mam podpiętych żadnych rezystorów, w tym 120 Ohm - i tutaj pytanie, czy powinien on być dodany, czy to ważne? Przewodu do komunikacji używam oryginalnego, dostarczonego z pompą ciepła, ma bodajże długość 5m (jeśli połączenie się uda to chciałbym go przedłużyć do 10m). I jeśli należy dodać rezystor to, w którym miejscu na przewodzie (najbliżej wejścia A/B pompy ciepła czy przy ESP, czy to bez znaczenia)?
Przy module MAX485 nie mam podpiętych pinów DE i RE (w zasadzie to nie wiem do czego miałbym ich użyć w tym wypadku).
Przewód mam podpięty pinami jako A → A, B → B.
Jeśli w tych powyższych punktach nie ma czego poprawiać i wygląda na poprawne podłączenie to prosiłbym o wiadomość zwrotną, wtedy ja pod wieczór wrzuciłbym cały opis wraz ze schematami podłączeń ESP. Bardzo zależy mi na podłączeniu tej pompy ciepła do ESP. Natomiast mam wrażenie, że gdzieś tu popełniam drobny błąd i potrzebowałbym drobnego naprowadzenia.
Ten rezystor to terminator linii, powinien być po obu stronach linii rs485, ale niektóre urządzenia mają wbudowany terminator zwykle włączany przełącznikiem (chyba, że producent przewidział montaż sprzętu tylko na końcu linii i jest włączony na stałe, to raczej niespotykane rozwiązanie; jeśli masz więcej niż 2 urządzenia na magistrali, to w tych które nie są na jej końcach terminator ma NIE być włączony).
W praktyce przy krótkich przewodach linia zwykle działa poprawnie bez terminacji.
Jeśli jest konieczny to “zwierasz” nim A z B tylko w pierwszym i ostatnim urządzeniu na linii.
Pewnie to jest przyczyna(?), zaglądałeś do jego dokumentacji?
Nie wiadomo jaki masz moduł (są takie które nie potrzebują tego połączenia), ale prawidłowy schemat jest w tamtym poście
To jest OK.
Wrzuć ile masz będzie łatwiej szukać dziury w całym.
Właśnie… Mogę jeszcze dodać, że przy podłączaniu modbusa nie wyłączałem ani nie resetowałem pompy ciepła. Po prostu wpinałem PIN-y modbusa A i B przy działającej pompie ciepła, i wtedy testując. ESP restartowałem, a pompa ciepła była cały czas włączona - to też mogę wykluczyć jako problem braku połączenia, czy może powinienem wyłączyć i włączyć?
@RobinI30 Zgadza się, natomiast pod MAX485 wystarczy podpiąć 5V z pinu VIN i już MAX485 działa na 5V. Ponadto ESP8266/ESP32 obsługuje na portach również TTL z 5V (nie tylko 3.3V). I działa to, gdyż sam mam 2 mierniki energii tak wpięte. Też na innych forach poruszałem ten temat. PS. Mam też MAX3485 na 3.3V (i zastanawiam się czy na nim też nie spróbować + MAX3485 nie ma portów De i Re).
@szopen Kurcze, no to takiego kontrolera nie mam.
Mam MAX485, z którego już korzystałem 2 razy i z tego co widzę to on podobno ma wbudowany rezystor 120 Ohm.
Wygląda tak:
Dodam tez, że gdy korzystałem z tego modułu do odczytywania mierników energii Orno WE-517 to wymagane było podłączenie portu De i Re pod ESP8266, ale wtedy ten pin był także wykorzystywany w kodzie. A w kodzie LINK od @Blackscreener tego portu De i Re użytego nie ma.
@Makki wrzucał też testowy kod (LINK) do odczytywania na ESP8266 - na nim też próbowałem z użyciem MAX485 i też bez pozytywnych wrażeń.
Mam też moduł MAX3485 (jest to wersja MAX485, ale na 3.3V), natomiast nie ma też pinu De i Re. Wygląda tak:
Jeden post wyżej napisałem o MAX3485 (takiego też jeszcze posiadam, ale nigdy go nie użyłem). Szczerze ujmując, wolałbym nie bawić się w pin De i Re, ale te układy z De i Re (MAX485) są najpopularniejsze. Zadziwia mnie to, że u mnie to nie działa.
A myślisz, że MAX3485 mógłby zadziałać? Jego też mam i mógłbym spróbować podłączyć.
Co by to nie było, bez zewnętrznego układu sterowania kierunkiem dany nie zadziała.
Tak, że bez poprawnej elektroniki dalsze próby nie mają sensu.
Nie pisz tak że MAX3485, bo on też wymaga sterownia kierunkiem ale moduł czerwony ma ten układ i jako całość powinien działać.
Tak samo modbus to nic inego jak szczególnie uporządkowany sposób transmisji szeregowej.
A czy ten niebieski MAX485 nie ma manualnego sterowania, gdy podepnie się De i Re, a gdy nie są podpięte to działa automatycznie? Pytam, bo ja do dziś tego nie rozgryzłem.
PS. Czyli ten czerwony moduł, który zamieściłem wyżej ma automatyczne sterowanie kierunkiem? Dobrze rozumiem?
Oba konwertery działają z esphome. W konwerterze max485 musisz podłączyć wszystkie piny i zdefiniować pin Flow Control w esphome.
Jak nie znajdziesz wyżej schematu, to jutro wrzucę.
Można nawet zrobić slave’a na esphome jak ktoś ma potrzebę aby korzystać z modbusa zamiast sieci lan.
Właśnie modbus server ma inaczej zrobioną implementacje tych dodatkowych pinów. W slave’ie podłączyłem konwerter z auto kierunkiem, a do mastera wykorzystałem ten z dodatkowymi pinami.
Nie musisz korzystać z komponentu modbus server jak robisz mastera.
Wracam do tematu odnośnie płytek Modbus. Jak wcześniej już pisałem, moja pompa Sprsun zaczęła działać poprawnie przy użyciu płytki MAX3485 (bez dodatkowego pinu kontroli przepływu), jednak jakiś czas temu otrzymałem niebieskie płytki (też bez pinu kontroli przepływu) i niestety ta płytka nie działa (w panelu z danymi moje wartości to NA (czyli żadne)).
Niebieska płytka to:
Generalnie to wybrałem niebieską płytkę, bo jest mniejsza i lepiej mi ją połączyć, by zaoszczędzić miejsce na płytce, jednak nie sądziłem, że zmiana MAX3485 na niebieską płytkę Modbus będzie sprawiać jakieś problemy (wygląda na uniwersalną)