Witam. Próbuję uruchomić tester gleby 7 w 1 w ESPHome na esp32 ale za nic nie chce ruszyć.
Na module rs485 TX do RX (GPIO 03), RX do TX (GPIO 01 NA ESP32).
Na module rs485 vcc i gnd do zasilacza 5v.
Sam tester 7-1 to wiadomo A do A, B do B i + z - do zasialcza 5v.
captive_portal:
output:
- platform: ledc
pin: GPIO33
frequency: 25000 Hz
id: mieszanie
min_power: 35%
fan:
- platform: speed
output: mieszanie
name: Wentylatory Mieszające
esp32_ble_tracker:
binary_sensor:
- platform: ble_presence
mac_address: C4:7C:8D:6C:2C:8F
name: "Xiaomi Mi Flower Care"
sensor:
- platform: xiaomi_hhccjcy01
mac_address: C4:7C:8D:6C:2C:8F
temperature:
name: "D Temperatura"
device_class: "temperature"
moisture:
name: "Wilgotność gleby"
device_class: "moisture"
illuminance:
name: "D Naświetlenie"
device_class: "illuminance"
conductivity:
name: "Żyzność"
device_class: "conductivity"
- platform: bme280_i2c
i2c_id: bus_a
address: 0x76
temperature:
name: "BME280 Temperature"
pressure:
name: "BME280 Pressure"
humidity:
name: "BME280 Humidity"
- platform: modbus_controller
modbus_controller_id: con_modbus_1
id: soil_moisture
name: "Soil Humidity"
address: 0
unit_of_measurement: "RH"
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- lambda: |-
float raw_value = x; // Raw sensor value
float correction_factor = 2.44; // Correction factor based on observed values
float adjusted_value = (raw_value * correction_factor) / 10;
return adjusted_value; // Return without clamping to observe behavior
- platform: modbus_controller
modbus_controller_id: con_modbus_1
id: soil_temp
name: "Soil Temperature"
address: 1
unit_of_measurement: "°C"
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: con_modbus_1
id: soil_conductivity
name: "Soil Conductivity"
address: 2
unit_of_measurement: "us/cm"
register_type: holding
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: con_modbus_1
id: soil_ph
name: "Soil pH"
address: 3
unit_of_measurement: "pH"
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
lambda: |-
float value = (x * 0.1) + 0.0; // Apply the offset
return (value < 0) ? 0 : value; // Ensure value doesn't go below 0
- platform: modbus_controller
modbus_controller_id: con_modbus_1
id: soil_nitrogen
name: "Soil Nitrogen"
address: 4
unit_of_measurement: "mg/Kg"
register_type: holding
value_type: U_WORD
lambda: |-
float value = x - 27; // Apply the offset
return (value < 0) ? 0 : value; // Ensure value doesn't go below 0
- platform: modbus_controller
modbus_controller_id: con_modbus_1
id: soil_phosphorus
name: "Soil Phosphorus"
address: 5
unit_of_measurement: "mg/Kg"
register_type: holding
value_type: U_WORD
lambda: |-
float value = x - 109; // Apply the offset
return (value < 0) ? 0 : value; // Ensure value doesn't go below 0
- platform: modbus_controller
modbus_controller_id: con_modbus_1
id: soil_potassium
name: "Soil Potassium"
address: 6
unit_of_measurement: "mg/Kg"
register_type: holding
value_type: U_WORD
lambda: |-
float value = x - 102; // Apply the offset
return (value < 0) ? 0 : value; // Ensure value doesn't go below 0
i2c:
sda: GPIO21
scl: GPIO22
scan: true
id: bus_a
uart:
id: uart_1
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
stop_bits: 1
modbus:
- id: modbus1
uart_id: uart_1
modbus_controller:
- id: con_modbus_1
modbus_id: modbus1
update_interval: 3600s
address: 0x01
command_throttle: 150ms
setup_priority: -10
Gdzieś musi być źle. Kod wziąłem z jakiegoś projektu na githubie no ale nie chodzi. Tu więcej informacji odnośnie samego czujnika.
NPK-71-RS485/THCPH-S (RS485 type)_5PIN.pdf at main · microrobotics/NPK-71-RS485 · GitHub
Liczę, ze ktoś pomoże to ogarnąć. na module rs485 RX świeci ciągle TX czasami zamruga. W HA nie pokazuje żadnych wartości.