Rs485 12v w rekuperatorze Holtop (Chigo, Hyundai)

Cześć, chciałbym podłączyć sterowanie moim rekuperatorem który ma 4 porty rs485: 12v A B gnd, dokumentacje wrzucam jako zdjęcie bo że strony producenta zniknęła, a PDF nie można dodać.

Chciałbym to podpiąć do esp32 przy pomocy rs485 to ttl, ale niepokoi mnie to 12v. Czy powinienem się obawiać że podpięcie takiego modułu pod ten port w rekuperatorze może spalić moduł lub esp32? Jeśli tak, to jak obniżyć to napięcie? Powinienem skorzystać z jakiegoś modułu z konwerterem logicznym?

Jeśli podłączysz tylko zaciski A,B a ESP zasilisz osobnym zasilaczem (o odpowiednim napięciu) to nic się nie stanie.
Gdybyś chciał zasilić z 12V ze złącza to musisz je dostosować do wartości znamionowej modułu ESP.

Nie … konwersji napięć na trasmisji AB nie trzeba wykonywać. RS485 to standard i co się nie podłączy to zawsze pasuje,
Problem jest z napięciem zasilania.

To super wiadomość dla mnie, ESP zasilam z 5v z ładowarki, nie wiedziałem że można podłączyć tylko A i B. Dziękuję.

Mógłbyś to nawet zasilić z tych 12V podają na pin modułu Vin …wszystko z zależy jaki masz moduł, a dokładnie jaki jest tam stabilizator. Przy 12V może się grzać.

Ograniczenie forum, ale spakuj zipem i powinno wejść (skoro nie ma na stronie producenta, to tym bardziej warto wrzucić - może komuś innemu się przyda).

ESP nie ma portów RS485, więc musisz użyć konwertera (edit: przeoczyłem, oczywiście go masz).

Udało mi się dobrać do tego modbusa, poniżej kod esphome, wersja beta. Jednak esp32 po wpięciu modułu modbus stało się niestabilne, potrafi się zawiesić, a następnie na portach GPIO w które wpięte są czujniki DHT11 mam błedy. Nie pomaga odpięcie zasilania od esp32 i podpięcie ponownie, muszę odpiąc kable od DHT11 i podiąć ponownie, następnie raz jeszcze wgrać esphome (lub wystarczy reset zasilania, nie wiem). Moduł którego uzywam to: Konwerter RS485 - UART TTL MAX485 - Sklep msalamon.pl . Czy możecie mi polecić jakieś inne moduły, z jakimś lepszym filtrowaniem czy coś, nie znam się.


uart:
  id: mod_bus
  tx_pin: 17
  rx_pin: 18
  baud_rate: 4800
  stop_bits: 1
  debug:

modbus:
  flow_control_pin: 4
  id: modbus1

modbus_controller:
  - id: rekuperator
    ## the Modbus device addr
    address: 0x1
    modbus_id: modbus1
   # setup_priority: -10

binary_sensor:
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    address: 18
    name: "Fire"
    register_type: holding
    bitmask: 0x1
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    address: 18
    name: "Bypass On"
    register_type: holding
    bitmask: 0x2
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    address: 18
    name: "Bypass Off"
    register_type: holding
    bitmask: 0x4
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    address: 18
    name: "Defrosting"
    register_type: holding
    bitmask: 0x8

sensor:
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Bypass opening temperature X"
    unit_of_measurement: "°C"
    register_type: holding
    address: 02
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Bypass opening temperature range Y"
    unit_of_measurement: "°C"
    register_type: holding
    address: 03
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Defrosting interval time"
    register_type: holding
    address: 04
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Defrosting enter temperature"
    register_type: holding
    unit_of_measurement: "°C"
    address: 05
    filters:
      - lambda: |-
          return x - 40;
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Defrost duration time"
    register_type: holding
    address: 06
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "CO2 setting value"
    register_type: holding
    address: 07
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Ventilator IP address"
    register_type: holding
    address: 08
  # - platform: modbus_controller
  #   modbus_controller_id: rekuperator
  #   name: "ERV ON/OFF"
  #   register_type: holding
  #   address: 09
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Supply fan speed"
    register_type: holding
    address: 10
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Exhaust fan speed"
    register_type: holding
    address: 11
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Room temperature"
    accuracy_decimals: 2
    unit_of_measurement: "°C"
    register_type: holding
    address: 12
    filters:
      - lambda: |-
          return x - 40;
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Outdoor temperature"
    accuracy_decimals: 2
    unit_of_measurement: "°C"
    register_type: holding
    address: 13
    filters:
      - lambda: |-
          return x - 40;
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Supply air temperature"
    accuracy_decimals: 2
    unit_of_measurement: "°C"
    register_type: holding
    address: 14
    filters:
      - lambda: |-
          return x - 40;
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Defrosting temperature"
    accuracy_decimals: 2
    unit_of_measurement: "°C"
    register_type: holding
    address: 15
    filters:
      - lambda: |-
          return x - 40;
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "External ON/OFF signal to ventilator"
    register_type: holding
    address: 16
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "CO2 ON/OFF signal"
    register_type: holding
    address: 17



  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Electrical heater stage"
    register_type: holding
    address: 19
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Error symbol"
    register_type: holding
    address: 20
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "ERV models selection"
    register_type: holding
    address: 21
  ### it seems to hangs modbus
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Defrosting models"
    register_type: holding
    address: 22
    force_new_range: true 
  ### it seems to hangs modbus
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Multifunction Setting"
    register_type: holding
    address: 24
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Filter alarm timer"
    register_type: holding
    address: 25
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Heater on/off temperature setting"
    register_type: holding
    address: 27
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "CO2 value"
    register_type: holding
    address: 768
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Fan running time record"
    register_type: holding
    address: 769
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Indoor humidity"
    register_type: holding
    address: 770

switch:
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    address: 18
    use_write_multiple: true
    name: "Bypass On"
    register_type: holding
    bitmask: 0x2
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    address: 18
    use_write_multiple: true
    name: "Bypass Off"
    register_type: holding
    bitmask: 0x4
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "ERV ON/OFF"
    register_type: holding
    address: 09
    bitmask: 1

number:
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Supply fan speed"
    address: 10
    value_type: U_WORD
    step: 10
    min_value: 0
    max_value: 100
    unit_of_measurement: "%"
    lambda: |
      uint16_t local_var = x;
      switch (local_var) {
        case 0: return 0;
        case 2: return 10;
        case 3: return 20;
        case 5: return 30;
        case 8: return 40;
        case 9: return 50;
        case 10: return 60;
        case 11: return 70;
        case 12: return 80;
        case 13: return 90;
        case 14: return 100;
      }
    write_lambda: |
      uint16_t local_var = x;
      switch (local_var) {
        case 0: return 0;
        case 10: return 2;
        case 20: return 3;
        case 30: return 5;
        case 40: return 8;
        case 50: return 9;
        case 60: return 10;
        case 70: return 11;
        case 80: return 12;
        case 90: return 13;
        case 100: return 14;
      }
  - platform: modbus_controller
    modbus_controller_id: rekuperator
    name: "Exhaust fan speed"
    address: 11
    value_type: U_WORD
    step: 10
    min_value: 0
    max_value: 100
    unit_of_measurement: "%"
    lambda: |
      uint16_t local_var = x;
      switch (local_var) {
        case 0: return 0;
        case 2: return 10;
        case 3: return 20;
        case 5: return 30;
        case 8: return 40;
        case 9: return 50;
        case 10: return 60;
        case 11: return 70;
        case 12: return 80;
        case 13: return 90;
        case 14: return 100;
      }
    write_lambda: |
      uint16_t local_var = x;
      switch (local_var) {
        case 0: return 0;
        case 10: return 2;
        case 20: return 3;
        case 30: return 5;
        case 40: return 8;
        case 50: return 9;
        case 60: return 10;
        case 70: return 11;
        case 80: return 12;
        case 90: return 13;
        case 100: return 14;
      }

W archiwum instrukcje które są już niedostępne w internecie.

Archive.zip (5,0 MB)

Sprawdź czy konwerter poziomów logicznych między ESP (3.3V) a tym konwerterem TTL (5V) pomoże.

Zapomniałem dodać że moduł modbus wpiąłem na 3v3, więc taki konwerter logiczny działał by tylko jako separator, prawda?

Tak, jakkolwiek nie wiem czy ten konwerter na RS485 nie wymaga zasilania 5V (a podejrzewam, że tak), natomiast przyczyną problemów może być przeciążenie stabilizatora 3,3V.

Cześć @Wiuempe, czy udało Ci się może wbić stabilnie w RS485 tego rekuperatora? Jeśli tak, podzielilbys się schematem i konfiguracja?