Controlando LED + DHT11 con ESP32

En este apartado, os voy a enseñar como conectar una tira de LED RGB y un sensor de temperatura y humedad DHT11, a la placa ESP32 CAM.

En este caso, vamos a usar una placa ESP32 CAM, a la que le falla la conexión de la cámara, pero podéis modificar el código para usarlo con otro tipo de placa.

La finalidad de este proyecto, es controlar la tira de LED que hemos colocado detrás de un cuadro y debajo de la cama de nuestro dormitorio, con el ESP32 a través de wifi, conectado a nuestro Home Assistant, para su posterior manejo y automatización.

Los materiales que vamos a usar son los siguientes:

Esquema de montaje:

El sensor DHT11, irá conectado al pin GPIO2 y los pines positivo y negativo, a sus correspondientes pines en el ESP32.

Código para ESPHome en Home Assistant:

esphome:
  name: luz-cama

esp32:
  board: esp32dev
  framework:
    type: arduino

#EN MI CASO TENGO 3 REDES WIFI EN CASO DE FALLO DE ALGUNA, SE CONECTA A OTRA
wifi:
  networks:
  - ssid: NOMBRE RED WIFI 1
    password: CONTRASEÑA WIFI
  - ssid: NOMBRE RED WIFI 2
    password: CONTRASEÑA WIFI
  - ssid: NOMBRE RED WIFI 3
    password: CONTRASEÑA WIFI    

#QUITAR ALMOHADILLAS EN CASO DE USAR MQTT
# mqtt:
  # broker: DIRECCION IP DEL SERVIDOR MQTT SI TENEIS
  # username: USUARIO MQTT SI TENEIS
  # password: CONTRASEÑA MQTT SI TENEIS

logger:
  #level: INFO
api:

captive_portal:

ota:
  password: "CONTRASEÑA DE OTA SI TENEIS"
 
time:
  - platform: homeassistant

#DECLARACION DEL SENSOR DE HUMEDAD Y TEMPERATURA CON INTERVALO DE 5 MINUTOS
sensor:
  - platform: dht
    pin: GPIO2
    model: DHT11
    temperature:
      name: "Temperatura dormitorio principal"
    humidity:
      name: "Humedad dormitorio principal"
    update_interval: 300s  

#SENSOR PARA SABER LA INTENSIDAD DE LA SEÑAL WIFI DEL ESP32
  - platform: wifi_signal
    name: "señal wifi luz cama"
    update_interval: 3600s

#PARTE DE DECLARACION DE PINES DE SALIDA
output:
  - platform: ledc
    pin: GPIO12
    id: GPIO12
    frequency: 100 Hz
    max_power: 100%
  - platform: ledc
    pin: GPIO13
    id: GPIO13
    frequency: 100 Hz
    max_power: 100%
  - platform: ledc
    pin: GPIO15
    id: GPIO15
    frequency: 100 Hz
    max_power: 100%

#PARTE DEL FUNCIONAMIENTO DE LOS LED
light:
  - platform: rgb
    red: GPIO13
    green: GPIO15
    blue: GPIO12
    name: "luz cama"
    id: strip_porta
    effects:
      # PARAMETROS POR DEFECTO
      - random:
      # PARAMETROS CUSTOMIZADOS
      - random:
          name: "Efecto aleatorio lento"
          transition_length: 30s
          update_interval: 30s
      - random:
          name: "Efecto aleatorio rápido"
          transition_length: 4s
          update_interval: 5s
      - strobe:
          name: Efecto estroboscópico con valores customizados
          colors:
            - state: True
              brightness: 100%
              red: 100%
              green: 90%
              blue: 0%
              duration: 500ms
            - state: False
              duration: 250ms
            - state: True
              brightness: 100%
              red: 0%
              green: 100%
              blue: 0%
              duration: 500ms
      - flicker:
      - flicker:
          name: Flicker Effect With Custom Values
          alpha: 95%
          intensity: 1.5%
      - lambda:
          name: Mi efecto customizado
          update_interval: 1s
          lambda: |-
            static int state = 0;
            auto call = id(strip_porta).turn_on();
            // Transtion of 1000ms = 1s
            call.set_transition_length(1000);
            if (state == 0) {
              call.set_rgb(1.0, 1.0, 1.0);
            } else if (state == 1) {
              call.set_rgb(1.0, 0.0, 1.0);
            } else if (state == 2) {
              call.set_rgb(0.0, 0.0, 1.0);
            } else {
              call.set_rgb(1.0, 0.0, 0.0);
            }
            call.perform();
            state += 1;
            if (state == 4)
              state = 0;

#PARTE PARA EL SERVIDOR WEB    
web_server:
  port: 80

#BOTON VIRTUAL PARA REINICIAR EL ESP32
button:
  - platform: restart
    name: "reinicio luz cama"

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 *