En esta entrada vamos a ver como conectar la batería al puerto A0, para poder medir el nivel de batería y poder monitorizar el consumo y crear automatizaciones.

La finalidad de este proyecto, como he indicado, es el poder monitorizar el nivel de batería que tenemos en nuestro ESP Wroom 02, para poder tener nuestros proyectos o inventos con un control de batería. Esto lo conseguiremos conectando el positivo al puerto A0 y este, al divisor de tensión y al pin del ESP Wroom 02.

Al final de la entrada os dejo un vídeo, donde podréis verlo con detalle.

Necesitaremos lo siguientes:

  • Soldador y estaño.
  • ESP WROOM 02 con batería. Enlace.
  • Cables fino.
  • Resistencia de 680Kohms y 220Kohms

Lo primero que haremos será localizar las dos resistencias que deberemos de quitar, para poder soldar las nuevas. En la imagen, podremos observar dos resistencias SMD, que hacen de divisor de tensión, las cuales deberemos desoldar. Las podremos localizar, justo debajo de A0. Para poder desoldarlas, lo mas sencillo es echar estaño en la punta del soldador y ponerlo sobre la resistencia y esperar a que se desuelde. Lo mismo con la otra.

Una vez desoldadas, procederemos a soldar la de 680kohms en la parte superior y la 220kohms en la inferior. Revisad que no se hayan unido las pistas para evitar dañar el ESP.

Una vez listo, deberemos soldar un cable entre positivo y el pin A0. Una vez realizado esto, procederemos a cargar el código y para ello lo haremos como siempre, pulsando el botón «FLASH» y conectando el cable y poniendo el interruptor en ON.

Os dejo el código en ESPHome, para poder realizar la lectura de vuestra batería en Home Assistant. Os voy a dejar el código que estoy usando en el medidor de ultra sonidos para el deposito de gasoil.

Este código tiene un Deep Sleep, para el ahorro de batería, estando dormido durante 1439 minutos, lo que es lo mismo que 23.59 minutos y estando despierto 30segundos, haciendo lecturas una vez encendido cada 10 segundos, con lo que tendremos 3 lecturas cada 24horas.

esphome:
  name: caldera-gasoil

esp8266:
  board: esp_wroom_02

wifi:
  networks:
  - ssid: XXXXXXXXXXX
    password: XXXXXXXXXXX
  - ssid: XXXXXXXXXXX
    password: XXXXXXXXXXX
  ap:
    ssid: sensor-consumo-gasoil
    password: XXXXXXXXXXX

captive_portal:

api:

logger:
  level: DEBUG
  
ota:
  password: "XXXXXXXXXXX"

deep_sleep:
  run_duration: 30s
  sleep_duration: 1439min

globals:
  - id: last_read_time
    type: int
    initial_value: "0"

  - id: last_battery_read_time
    type: int
    initial_value: "0"

  - id: device_state
    type: int
    initial_value: "0"  

# Define sensors
sensor:
  - platform: adc
    pin: A0
    name: "Nivel batería deposito gasoil"
    update_interval: 10s  
    unit_of_measurement: "%"
    accuracy_decimals: 2
    icon: mdi:battery-medium
    filters:  
      - multiply: 4.2
      - calibrate_polynomial:
         degree: 3
         datapoints:
          - 0.00 -> 0.0
          - 3.00 -> 0.0
          - 3.23 -> 10.0
          - 3.33 -> 20.0
          - 3.40 -> 30.0
          - 3.48 -> 40.0
          - 3.57 -> 50.0
          - 3.65 -> 60.0
          - 3.72 -> 70.0
          - 3.80 -> 80.0
          - 3.88 -> 90.0
          - 4.15 -> 95.0
      - lambda: |-
          if (x <= 100) {
            return x;
          } else {
            return 100;
          }

  - platform: ultrasonic
    trigger_pin: GPIO12  # Ajusta el pin según corresponda en tu placa ESP8266
    echo_pin: GPIO13   # Ajusta el pin según corresponda en tu placa ESP8266
    name: "Nivel deposito gasoil"
    update_interval: 10s
    filters:
      - calibrate_linear:
          - 0.10 -> 700
          - 1.20 -> 0

button:
  - platform: restart
    name: "reinicio medidor gasoil"

web_server:
  port: 80
https://www.youtube.com/watch?v=IGRxqkIgG7w

About Author

Artículos recomendados

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *