Puede construir rápidamente un sensor de temperatura y humedad digital de bricolaje con un módulo de pantalla OLED para mostrar la temperatura y la humedad de su habitación. También puede integrar este sensor climático de bricolaje en su software de automatización del hogar inteligente, como un servidor Home Assistant, para automatizar su unidad HVAC (aire acondicionado), ventilador o humidificador para controlar la temperatura y la humedad.
Cosas que necesitará
Necesitará los siguientes componentes para construir un sensor inteligente de temperatura y humedad de bricolaje,
- Un sensor digital de temperatura/humedad de alta precisión AHT10
- Una placa Wemos D1 Mini o NodeMCU
- Una pantalla OLED SSD1306 128x64
- Algunos cables de puente (DuPont)
- Una caja impresa en 3D o cualquier caso para ensamblar los componentes
- Soldador y estaño
- Un servidor de Home Assistant que se ejecuta en una Raspberry Pi o cualquier hardware x86 o x64 compatible. Si desea obtener más información, puede obtener información sobre Home Assistant y cómo funciona antes de comenzar.
Paso 1: preparar el firmware
Debe compilar y preparar el firmware utilizando el complemento ESPHome en su servidor Home Assistant. Los pasos son los siguientes:
- En su servidor de Home Assistant, vaya a Configuración > Complementos y haga clic en el botón Tienda de complementos .
- Busque ESPHome y haga clic en el complemento ESPHome en los resultados de búsqueda. No haga clic en ESPHome (dev) o ESPHome (beta).
- Haga clic en el botón Instalar .
- Después de la instalación, haga clic en Inicio . Además, habilite las opciones Iniciar al iniciar , Vigilancia y Mostrar en la barra lateral .
- Haga clic en Abrir interfaz de usuario web y haga clic en +Nuevo dispositivo .
- Escriba el nombre del dispositivo, como "sensor climático", y haga clic en Siguiente .
- Elija Elegir una placa específica y seleccione la placa Wemos D1 Mini de la lista.
- Haga clic en Siguiente > Omitir . Elija ESP8266 si está utilizando la placa NodeMCU.
- Haga clic en la opción Editar y luego realice los siguientes cambios en la ventana del editor YAML.
Luego pegue el siguiente código justo debajo de captive_portal: línea
web_server:
port: 80
i2c:
sda: D2
scl: D1
scan: True
time:
- platform: sntp
id: my_time
sensor:
- platform: aht10
temperature:
name: "Living Room Temperature"
id: temp
humidity:
name: "Living Room Humidity"
id: hum
update_interval: 10s
- platform: uptime
name: "Station Bureau Uptime Sensor"
- platform: wifi_signal
name: "Station Bureau WiFi Signal"
update_interval: 30s
font:
- file: 'slkscr.ttf'
id: font1
size: 12
- file: 'BebasNeue-Regular.ttf'
id: font2
size: 15
- file: 'arial.ttf'
id: font3
size: 15
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
reset_pin: D0
address: 0x3C
rotation: 180°
lambda: |-
// Print "Ravi Smart Home" in top center.
it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "Ravi Smart Home");
// Print temperature (from AHT10 sensor)
if (id(temp).has_state()) {
it.printf(127, 23, id(font3), TextAlign::TOP_RIGHT , "Temperature: %.1f°", id(temp).state);
}
// Print Humidity (from AHT10 sensor)
if (id(hum).has_state()) {
it.printf(127, 60, id(font3), TextAlign::BASELINE_RIGHT , "Humidity: %.1f", id(hum).state);
}
port: 80
i2c:
sda: D2
scl: D1
scan: True
time:
- platform: sntp
id: my_time
sensor:
- platform: aht10
temperature:
name: "Living Room Temperature"
id: temp
humidity:
name: "Living Room Humidity"
id: hum
update_interval: 10s
- platform: uptime
name: "Station Bureau Uptime Sensor"
- platform: wifi_signal
name: "Station Bureau WiFi Signal"
update_interval: 30s
font:
- file: 'slkscr.ttf'
id: font1
size: 12
- file: 'BebasNeue-Regular.ttf'
id: font2
size: 15
- file: 'arial.ttf'
id: font3
size: 15
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
reset_pin: D0
address: 0x3C
rotation: 180°
lambda: |-
// Print "Ravi Smart Home" in top center.
it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "Ravi Smart Home");
// Print temperature (from AHT10 sensor)
if (id(temp).has_state()) {
it.printf(127, 23, id(font3), TextAlign::TOP_RIGHT , "Temperature: %.1f°", id(temp).state);
}
// Print Humidity (from AHT10 sensor)
if (id(hum).has_state()) {
it.printf(127, 60, id(font3), TextAlign::BASELINE_RIGHT , "Humidity: %.1f", id(hum).state);
}
Reemplace "Ravi Smart Home" con su propio título. Una vez que haya agregado y actualizado el código, haga clic en Guardar y luego en Instalar .
Elija Conectar a esta computadora de la lista de opciones y luego espere a que se compile el firmware. Esto puede tomar de 10 a 15 minutos.
Una vez compilado el firmware, haga clic en el botón Descargar proyecto . Esto descargará el archivo climate-sensor.bin compilado en su sistema.
Paso 2: actualice el firmware a D1 Mini o NodeMCU
Para actualizar el firmware descargado en D1 Mini o NodeMCU, puede usar el instalador web, o Para actualizar el firmware, puede usar la herramienta flash basada en web o la herramienta ESPHome-Flasher para su sistema Windows, Linux o Mac. Siga los pasos a continuación para actualizar el firmware utilizando el instalador basado en la web:
- Después de descargar el firmware, verá la opción web Open ESPHome . Haz click en eso. Esto abrirá una nueva ventana.
- Haga clic en el botón Conectar , seleccione el puerto COM y luego haga clic en el botón Conectar . Si no se detecta la placa, instale los controladores CH240/CH341.
- Haga clic en Instalar > Seleccionar archivo y elija el archivo de firmware del sensor climático -factory.bin .
- Finalmente, haga clic en el botón Instalar . Espere a que la herramienta web ESPHome termine de actualizar el firmware.
Una vez que se actualice el firmware, vaya al tablero de ESPHome y busque el archivo climate-sensor.bin . Debería mostrar el estado como EN LÍNEA .
Paso 3: agregue el sensor de clima al panel de Home Assistant
Ahora puede agregar el sensor climático al panel de Home Assistant siguiendo estos pasos:
- En su servidor de Home Assistant, vaya a Configuración > Dispositivos y servicios .
- El dispositivo del sensor climático debe ser descubierto y visible automáticamente. Haga clic en el botón CONFIGURAR y luego haga clic en ENVIAR . Esto agregará el dispositivo a la lista de dispositivos ESPHome.
- Haga clic en el sensor climático que aparece en ESPHome y luego haga clic en el enlace de 1 dispositivo .
- Haga clic en AGREGAR AL PANEL > Ver > AGREGAR AL PANEL . Elija la habitación deseada donde desea agregar el sensor.
Paso 4: conecte el AHT10 a D1 Mini o NodeMCU
Consulte las siguientes instrucciones para conectar el sensor de temperatura y humedad AHT10 a la placa del microcontrolador D1 Mini o NodeMCU utilizando los cables puente.
- Conecte el pin VIN del AHT10 y la pantalla OLED al pin de 5 V del D1 Mini o al pin de 3,3 V del NodeMCU .
- Conecte el pin GND del AHT10 y la pantalla OLED al pin G en el D1 Mini o NodeMCU.
- Conecte el pin SCL de la pantalla AHT10 y OLED al pin D1 de NodeMCU o D1 Mini.
- Conecte el pin SDA de la pantalla AHT10 y OLED al pin D2 de NodeMCU o D1 Mini.
Necesitará un soldador para soldar estos componentes. Puede aprender a soldar antes de intentar este proyecto de bricolaje.
Una vez que el AHT10 y la pantalla OLED están conectados, puede verificar los valores de temperatura y humedad en la pantalla OLED y el panel de Home Assistant.
Los valores cambiarán en tiempo real. Por lo tanto, puede verificar si funciona correctamente soplando el sensor AHT10. Hacer esto cambiará los valores de temperatura y humedad instantáneamente. Una vez que las pruebas son exitosas, puede encerrar los componentes en un estuche impreso en 3D como este de Thingiverse .
También puede configurar la integración de Amazon Alexa o Google Assistant en Home Assistant para recibir notificaciones de voz y alertas cuando los niveles de temperatura o humedad excedan o bajen a un cierto nivel.
Su sensor climático digital está listo
Así es como puede construir un sensor de temperatura y humedad digital inteligente basado en Wi-Fi para su habitación e integrarlo con el servidor Home Assistant para crear automatización y activar otros dispositivos inteligentes. Por ejemplo, puede agregar automatización para apagar una unidad HVAC una vez que la temperatura y/o la humedad alcanzan o descienden a un cierto nivel.