Hello la communauté !
Je viens ici pour partager un petit projet perso.
J’ai une baie 10” en 9U, avec ma Freebox / switch / NAS Synology / Raspbi4 x2.
En été, la baie monte très vite en température et le flux d’air était catastrophique.
J’ai donc voulu automatiser la ventilation via HASS.
J’ai découpé la tole de la baie pour mes ventilateurs :
J’ai fais une PCB avec ESP32 et relais.
Je vous mets tout ce que j’ai acheté (lien sans affiliation) :
Ventilateurs x4 : Noctua NF-A14 iPPC-3000 PWM, Ventilateur Haut Rendement, 4 Broches, 3000 tr./min (140 mm, Noir) : Amazon.fr: Informatique
ESP32 WT32-ETH01 : WT32-ETH01 Embedded Serial Port Networking Ethernet Bluetooth-Kompatibel WIFI Combo Gateway MCU ESP32 Wireless Modul Bord - AliExpress 502
Convertisseur 5v : Abwärtsregler 5 A, hocheffizient, schnelle Reaktion, synchroner Schritt 4,5–28 V auf 3 V, 3,3 V, 4 V, 5 V, 6 V, 9 V, 10 V, 12 V DC-DC-Abwärtswandler - AliExpress
Transfo 12v : AC DC 12V 1A 2A 3A 2000ma 3000MA Adapter Netzteil EU UK AU US STECKER 5,5*2,5mm Wandladegerät für DC männlich weiblich LED-Streifenlicht - AliExpress 13
Embouts : 10 Stück 5,5 x 2,1/2,5 mm DC-022B DC-Klinkenadapter 3 A 12 V 3,5 x 1,3 DC022B DC-Netzteil Ladebuchse weiblich Panel Mount Connector - AliExpress 13
Connecteur JST 2.54 et Connecteurs FAN (je n’ai plus les liens)
Boitier : 2 Pièces Boîtes de Jonction Etanche, Boîtier de Projet Etanche Electrique Exterieur, Boîte de Connexion de Câbe Plastique pour Bricolage Électronique - 100 x 68 x 50 mm/noir transparent : Amazon.fr: Bricolage
Relais 3v : Aihasd 3PCS 3V Isolement Module de relais Conduire Contrôle Haut niveau Plateau d'entraînement : Amazon.fr: Commerce, Industrie et Science
Voici mon code ESP :
esphome:
name: wt32-baie
friendly_name: wt32-baie
esp32:
board: wt32-eth01
framework:
type: arduino
logger:
level: DEBUG
baud_rate: 115200
api:
encryption:
key: !secret api_pwd_esp_baie
ota:
platform: esphome
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
phy_addr: 1
power_pin: GPIO16
clk:
pin: GPIO0
mode: CLK_EXT_IN
manual_ip:
static_ip: XXX.XXX.XXX.XXX
gateway: XXX.XXX.XXX.XXX
subnet: XXX.XXX.XXX.XXX
dns1: XXX.XXX.XXX.XXX
web_server:
port: 80
auth:
username: !secret user_pwd
password: !secret http_pwd
# === RELAIS ===
switch:
- platform: restart
name: "ESP Reboot"
- platform: gpio
name: "Relais Ventilateur"
pin: GPIO4
id: relais
restore_mode: RESTORE_DEFAULT_OFF
inverted: false
# === FAN PWM ===
output:
- platform: ledc
pin: GPIO14
id: fan_pwm_output
frequency: 25000Hz
fan:
- platform: speed
output: fan_pwm_output
name: "Fan Speed Control"
speed_count: 6
id: fan_speed_control
# === ETHERNET INFO ===
text_sensor:
- platform: ethernet_info
ip_address:
name: "Ethernet IP"
mac_address:
name: "MAC Ethernet"
dns_address:
name: "DNS Ethernet"
sensor:
# --- FAN RPM via pulse counter ---
- platform: pulse_counter
pin:
number: GPIO35
name: "Fan RPM"
update_interval: 3s
count_mode:
rising_edge: INCREMENT
falling_edge: DISABLE
binary_sensor:
- platform: status
name: "ESP Status"
# === VARIABLES & SCRIPT ===
globals:
- id: boot_flag
type: bool
initial_value: 'true'
script:
- id: turn_on_fan
then:
- fan.turn_on: fan_speed_control
interval:
- interval: 5s # délai pour laisser le réseau démarrer
then:
- if:
condition:
lambda: 'return id(boot_flag);'
then:
- script.execute: turn_on_fan
- globals.set:
id: boot_flag
value: 'false'
Ma carte ESP est connecté via le RJ45, non en wifi car j’ai la clé zigbee à coté, et elle met le 2.4ghz inopérant.
Pour le PCB (EasyEda) je mets le .json : Free Transfert - Service d'envoi de fichiers
L’intégration HASS :
Par contre, je n’ai pas le pulse/min malheureusement.
Je pense que le PIN défini sur l’ESP est déja utilisé par un composant, pourtant j’ai lu le DataSheet et il me semblait que c’était ok. Mais ce n’est pas grave.
Si jamais ça intéresse d’autres personnes, pour l’améliorer, mettre des avis positifs/négatifs, le sujet est là.
Bonne journée à toutes et à tous !


