Ce manuel s'adresse aux débutantes et débutants. Vous n'avez besoin d'aucune formation en électronique — mais d'un fer à souder, d'un peu de patience et de la volonté de taper quelques commandes dans un terminal. Chaque étape est décrite intégralement : ce que vous faites, pourquoi vous le faites, et comment reconnaître que cela a fonctionné. À la fin, vous tiendrez entre les mains un appareil qui met sous tension une charge 230 V (par exemple un distributeur de nourriture automatique) sur simple pression d'un bouton, pendant une durée réglable — utilisable via trois boutons, un petit écran et une page web sur le réseau domestique.
Les commandes pour le terminal se présentent ainsi — elles se saisissent
ligne par ligne et se valident avec Entrée. Les lignes qui
commencent par # sont des commentaires et ne
doivent pas être tapées :
# Ceci est un commentaire — juste pour l'explication
esphome run firmware/timer-relais-c3.yaml
Les renvois tels que « chapitre 7 » sont cliquables dans le PDF. Le lien « ↑ Sommaire » en bas de chaque page vous permet à tout moment de revenir à la vue d'ensemble.
Le Feeder-Relais est une carte de commande faite maison qui met sous tension une charge 230 volts sur simple pression d'un bouton, pendant une durée réglable, puis la coupe automatiquement. Son nom vient de son usage d'origine : elle remplace la carte de programmation horaire défectueuse d'un distributeur de nourriture automatique (feeder en anglais). Comme elle se contente en définitive d'« actionner un interrupteur pendant un certain temps », elle convient à toute charge que l'on souhaite commander de façon temporisée.
Trois boutons-poussoirs se trouvent en façade. Une pression brève met la charge sous tension pour une durée préréglée :
| Bouton | Étiquette | Durée par défaut | réglable |
|---|---|---|---|
| S1 | Down / Manual (T1) | 5 secondes | 1–600 s via Wi-Fi |
| S2 | SET (T2) | 10 secondes | 1–600 s via Wi-Fi |
| S3 | UP (T3) | 15 secondes | 1–600 s via Wi-Fi |
Un petit écran OLED derrière la vitre de protection affiche en haut la réception Wi-Fi, l'heure en grand (réglée via un serveur de temps Internet) et l'état Repos ; en bas la date et la mémoire libre. Lorsqu'une minuterie est en cours, le compte à rebours en secondes s'affiche au centre et Repas à droite.
La commande fonctionne sans application et sans cloud,
via une petite page web optimisée pour mobile que l'ESP32 fournit lui-même
(dans le navigateur : http://feeder-relais.local) : déclencher
une minuterie, régler les durées, consulter les valeurs réseau et d'état.
Pour le raccordement à une domotique (par exemple ioBroker ou Home
Assistant), il existe en plus une interface JSON légère
(chapitre 11).
De la pression du bouton jusqu'à la charge commutée, le signal traverse cinq étapes. Chacune a exactement une tâche :
Bouton ─► ESP32-C3 ─► 330 Ω ─► PhotoMOS ─► Shelly 1PM ─► Charge
S1–S3 compte le limite commute commute et (pompe,
temps, dessine le courant en isolé mesure la moteur
l'OLED de la LED galvanique charge 230 V d'aliment.…)
Ce manuel décrit la version 3 de la carte. Par rapport à la première version, la construction s'est nettement simplifiée :
Entre deux surfaces de cuivre sur une carte, le courant ne peut pas seulement sauter à travers l'air, il peut aussi « ramper » le long de la surface — favorisé par la poussière, l'humidité et la saleté. Cette « ligne de fuite » doit être suffisamment grande sous 230 volts. Nous la fixons à 6 mm ; c'est généreux et laisse de la marge. La seule exception autorisée est l'intérieur du relais PhotoMOS lui-même — ce composant est le point de séparation certifié et peut faire cohabiter tension secteur et basse tension sur quelques millimètres (chapitre 6).
L'ordre choisi dans ce manuel l'est délibérément, afin que vous fassiez tout ce qui est dangereux en dernier et que vous puissiez vous exercer sans risque jusque-là :
| Composant | Tâche |
|---|---|
| ESP32-C3 Super Mini | Le « cerveau ». Un petit microcontrôleur avec Wi-Fi. Il lit les boutons, compte le temps, dessine l'OLED, fournit la page web et pilote le PhotoMOS. Alimenté en 5 V, fonctionne en interne en 3,3 V. |
| Relais PhotoMOS | Le point de séparation galvanique entre 3,3 V et 230 V. Détails à la section 3.3. |
| Résistance de limitation 330 Ω | Limite le courant à travers la LED interne du PhotoMOS afin qu'elle ne soit pas surchargée. |
| Alimentation (module AC/DC) | Transforme les 230 V~ en 5 V qui alimentent l'ESP. Un module tout prêt, encapsulé. |
| Shelly 1PM Mini Gen4 | Commute la charge proprement dite, mesure la puissance et est en plus joignable en Wi-Fi. Se trouve à l'extérieur de la carte. |
| Écran OLED 0,91" | Affiche l'heure, le compte à rebours et l'état. S'enfiche simplement, sans être soudé. |
| Fusible + varistance | Protègent contre les surintensités et les surtensions côté secteur. |
Le Shelly 1PM Mini Gen4 est un relais de commutation tout prêt et homologué, avec mesure de puissance. L'utiliser présente trois avantages : la commutation risquée de la charge est confiée à un produit fini certifié ; la puissance est mesurée (on voit si la charge fonctionne réellement) ; et le Shelly est lui-même joignable en Wi-Fi, si l'on souhaite l'intégrer en plus.
Notre carte se contente d'« appuyer » sur l'interrupteur du Shelly — via un vrai signal matériel, sans dépendance au Wi-Fi pour la fonction principale. Dans la version 3, le Shelly se trouve à l'extérieur de la carte et se raccorde via une borne (chapitre 13). Cela garde la carte compacte, les chemins 230 V courts et le montage clair.
Un PhotoMOS est un minuscule relais à semi-conducteur. D'un côté se trouve une LED, que l'ESP pilote en 3,3 V. De l'autre, un commutateur piloté par la lumière, autorisé à commuter la tension secteur. Entre les deux, il n'y a que de la lumière — donc une isolation galvanique complète entre basse tension et 230 V.
L'entrée de commutation du Shelly est référencée par rapport à la tension secteur (elle attend un L commuté). C'est pourquoi le PhotoMOS doit supporter une tension de blocage ≥ 400 V — par exemple un Omron G3VM-601BY ou un Panasonic AQY216.
Voici la fonction exacte de chaque composant — avec les valeurs réellement montées sur la carte v3. Les repères (désignateurs de référence) figurent tels quels sur la sérigraphie d'implantation de la carte.
| Repère | Valeur | Fonction précise |
|---|---|---|
| U1 | ESP32-C3 Super Mini | Le microcontrôleur Wi-Fi. Fonctionne en 5 V, génère en interne 3,3 V via un régulateur (aussi pour l'OLED). Porte une LED RVB embarquée (WS2812) sur GPIO8. Pilote les boutons, l'OLED, le PhotoMOS et l'interface web. |
| K1 | G3VM-601AY2 | Le PhotoMOS — l'isolation galvanique entre 3,3 V et 230 V. Broches 1/2 = LED interne (broche 1 via R1 depuis GPIO6, broche 2 à GND), broches 3/4 = commutateur piloté par la lumière (broche 3 = L_F, broche 4 = SW_SHELLY). Tension de blocage ≥ 400 V. |
| R1 | 330 Ω | Résistance de limitation de la LED de K1. À partir de ~3,3 V moins ~1,2 V de tension directe de la LED, il circule environ 6 mA — suffisant pour une commutation sûre, bien en dessous de la limite de la LED. |
| PS1 | TSP-05 (5 V / 3 W) | L'alimentation : transforme les 230 V~ (L_F + N) en 5 V/GND pour l'ESP. 3 W = 600 mA — suffisant pour les pics d'émission Wi-Fi (~350 mA) plus l'OLED. |
| C1 | 220 µF / 10 V | Condensateur de soutien sur +5 V : tamponne les brefs pics de courant lors de l'émission Wi-Fi et évite la chute de tension qui redémarrerait sinon l'ESP. |
| C2 | 100 nF | Condensateur de découplage directement sur +5 V/GND : absorbe les perturbations haute fréquence près de la puce. |
| F1 | 1 A temporisé | Fusible fin (5×20 mm) en série : X1 (L_IN) → F1 → L_F. Protège en cas de court-circuit/surintensité. « Temporisé » afin que le courant d'appel de l'alimentation ne le fasse pas fondre à tort. |
| RV1 | S14K275 (varistance) | Protection contre les surtensions en parallèle entre L_F et N : limite les pics de tension (transitoires de commutation, perturbations réseau) et protège l'alimentation et l'électronique. |
| J2 | OLED SSD1306 128×32 | L'écran. Adresse I²C 0x3C, 400 kHz. S'enfiche simplement (brochage GND/VCC/SCL/SDA). |
| SW1–3 | Boutons 6×6 mm | Les trois boutons-poussoirs T1/T2/T3. Un contact à GND, l'autre à GPIO3/4/5 — l'ESP utilise des pull-ups internes, une pression tire la broche à GND. |
Et les bornes de raccordement en bord de carte :
| Repère | Raccordement | Brochage |
|---|---|---|
| X1 | Entrée secteur | 1 = N, 2 = L_IN (230 V entrant) |
| X2 | Sortie de charge | 1 = O (commuté), 2 = N |
| X3 | Snubber | 1 = O, 2 = N — pour un circuit RC optionnel avec charges inductives |
| J1 | Shelly | 1 = SW, 2 = O, 3 = L, 4 = N (vers le Shelly externe, chapitre 13) |
Tout ce dont vous avez besoin pour un Feeder-Relais. La carte elle-même est confiée à un fabricant (chapitre 7) ; les composants sont commandés et soudés (chapitre 9).
| Repère | Composant | Valeur / type | Remarque |
|---|---|---|---|
| U1 | ESP32-C3 Super Mini | 18 × 24 mm, USB-C | Contrôleur Wi-Fi |
| K1 | Relais PhotoMOS | Omron G3VM-601AY2 (ou -601BY / Panasonic AQY216) | ≥ 400 V ! |
| PS1 | Module d'alimentation AC/DC | 5 V / 3 W (classe HLK-PM05) | vérifier l'écartement des broches |
| — | Écran OLED | 0,91" SSD1306, 128 × 32, I²C | Broches : GND VCC SCL SDA, adresse 0x3C |
| SW1–3 | Boutons-poussoirs | 6 × 6 mm, course 1,5 mm | position fixe (façade) |
| R1 | Résistance | 330 Ω | résistance de limitation LED PhotoMOS |
| F1 | Fusible fin + porte-fusible | 1 A temporisé, 5 × 20 mm | côté primaire, obligatoire |
| RV1 | Varistance | S14K275 | côté primaire, obligatoire |
| C1 / C2 | Condensateurs | 220 µF/10 V & 100 nF | soutien 5 V et découplage |
| X1 | Entrée secteur | 2 broches (L, N) | borne à vis, 230 V entrant |
| X2 | Sortie de charge | 2 broches (O, N) | vers la charge commutée |
| X3 | Snubber | 2 broches (O, N) | circuit RC optionnel pour charges inductives |
| J1 | Raccordement Shelly | 4 broches (SW, O, L, N) | fils courts vers le Shelly externe, chapitre 13 |
| J2 | Connecteur femelle OLED | 1 × 4, pas 2,54 | GND/VCC/SCL/SDA, l'écran s'enfiche |
Le boîtier se compose de deux parties : la partie avant (la façade d'origine avec sa vitre et les trois poussoirs) et la partie arrière, que vous imprimez vous-même en 3D. La carte se visse par l'arrière sur six colonnettes, l'écran se trouve derrière la vitre.
La partie avant est le dessus du boîtier d'origine. Elle porte la vitre de protection (derrière laquelle se trouve l'OLED) et les poussoirs qui actionnent, en étant pressés, les trois boutons de la carte. La position des boutons n'est donc pas négociable — ils doivent se trouver exactement sous les poussoirs (chapitre 9).
Dans la version 3, la partie arrière est délibérément plus profonde que l'originale (35 mm au lieu des 5,7 mm d'origine), afin que la carte et le Shelly externe y trouvent confortablement leur place. Une patte de suspension à trou en serrure se trouve en haut, pour la fixation murale.
Le modèle se trouve dans le projet sous forme de fichier OpenSCAD :
box/feeder_back.scad. OpenSCAD est un logiciel gratuit qui
génère un modèle 3D à partir d'un fichier texte — l'avantage : toutes les
cotes figurent sous forme de variables tout en haut du fichier et peuvent
être adaptées.
box/feeder_back.scad.box/feeder_back_35mm.stl.box/Timer-Ersatzplatine-v3-BOARD.stl
— une reproduction 1:1 de la carte (contour, trous de vis, fentes).
Imprimez-la à plat et posez-la dans la partie arrière avant
de commander la vraie carte. Vous vérifiez ainsi sans risque que tout va
bien (chapitre 7).La carte se visse par l'arrière avec six vis sur les colonnettes de la partie arrière (pas de colonnettes 45 mm × 70 mm, trou de vis 3,2 mm, fraisage pour la tête de vis côté arrière). Quatre points supplémentaires sur la façade centrent la carte en plus.
| Cote | Valeur |
|---|---|
| Encombrement partie arrière | 109,8 × 90,8 mm |
| Profondeur partie arrière (v3) | 35 mm |
| Épaisseur parois et fond | 1,3 mm |
| Dimensions de la carte | 101,6 × 77,5 mm |
| Pas des colonnettes | 45 mm (X) × 70 mm (Y) |
Vous n'avez pas à concevoir la carte vous-même — elle est fournie prête
dans le projet, sous kicad-v3/. Ce chapitre explique
comment elle est construite, afin que vous sachiez, au moment de
souder et de contrôler, ce qui va où. Qui souhaite modifier quelque chose
lui-même trouvera le guide KiCad au chapitre 8.
Dans la version 3, l'électronique entière se trouve au dos. À l'avant (côté façade) ne restent que les trois boutons et le connecteur OLED — tout ce qui est actionné ou visible.
La carte compte quatre couches de cuivre : les deux couches externes (face avant et face arrière) portent les pistes, les deux couches internes sont des plans de masse continus dans la zone basse tension. De tels plans de masse agissent comme un plan de référence stable : ils rendent le montage peu sensible aux perturbations et la fonction Wi-Fi stable.
Les cinq nets L_IN, L_F, N,
SW_SHELLY et O_LAST transportent 230 volts.
Ils sont regroupés dans une classe de réseau « 230V »
dédiée (pistes plus larges, écarts plus grands) et se trouvent tous en bas
à gauche, loin de l'électronique. Une règle de contrôle inscrite dans la
conception exige 6 mm d'écart entre chaque net
230 V et chaque basse tension.
La seule exception est le relais PhotoMOS K1 : son boîtier est le point de séparation certifié (broches 1/2 = basse tension, broches 3/4 = tension secteur). Ce n'est que là que les deux mondes peuvent se côtoyer sur quelques millimètres — c'est exactement pour cela que ce composant est fabriqué.
Ce que transporte chaque ligne, l'aperçu suivant le montre :
| Nom du net | transporte | relie |
|---|---|---|
| L_IN | 230 V (non protégé) | entrée secteur X1 → fusible F1 |
| L_F | 230 V (protégé) | F1 → varistance RV1, alimentation PS1, PhotoMOS K1.3, Shelly J1.L |
| N | 230 V neutre | X1 → RV1, PS1, Shelly J1.N, charge X2, snubber X3 |
| SW_SHELLY | 230 V commuté | PhotoMOS K1.4 → Shelly J1.SW |
| O_LAST | 230 V commuté | Shelly J1.O → sortie de charge X2 + snubber X3 |
| +5V | basse tension | alimentation → ESP 5V, C1, C2 |
| GND | basse tension | masse : ESP, boutons, PhotoMOS, OLED |
| +3V3 | basse tension | sortie 3V3 de l'ESP → OLED |
L'ESP32-C3 utilise ces broches :
| Broche | Fonction |
|---|---|
| 5V / G | alimentation depuis le bloc secteur |
| 3V3 | alimente l'OLED |
| GPIO3 / 4 / 5 | boutons T1 / T2 / T3 |
| GPIO6 | pilote du PhotoMOS (via 330 Ω) |
| GPIO7 | I²C-SDA (OLED) |
| GPIO8 | LED RVB embarquée (état) |
| GPIO9 | I²C-SCL (OLED) |
Ce tableau est la correspondance de référence entre la carte et
le firmware. À gauche figure ce que le firmware
(timer-relais-c3.yaml) fait de la broche — avec sa
configuration exacte ; à droite, où la carte la mène. Les deux côtés doivent
concorder exactement, sinon l'appareil ne fonctionne pas.
| Broche ESP | Firmware (ID & configuration) | Carte | Fonction en détail |
|---|---|---|---|
| GPIO3 | btn_s1 · entrée, pull-up interne, inversé, anti-rebond 30 ms | Pad 3 → /BTN1 → bouton S1 vers GND | Bouton S1 (Down/Manual). Niveau de repos HIGH ; une pression tire vers GND (LOW) → considéré comme « pressé ». Court = déclencher la minuterie 1. |
| GPIO4 | btn_s2 · entrée, pull-up, inversé, 30 ms | Pad 4 → /BTN2 → bouton S2 vers GND | Bouton S2 (SET). Court = minuterie 2 ; long ≥ 3 s = menu d'info. |
| GPIO5 | btn_s3 · entrée, pull-up, inversé, 30 ms | Pad 5 → /BTN3 → bouton S3 vers GND | Bouton S3 (UP). Court = minuterie 3 ; long ≥ 1,2 s = tout arrêter. |
| GPIO6 | shelly_trigger · sortie GPIO | Pad 6 → /PMOS_DRV → R1 330 Ω → anode LED de K1 | Pilote le PhotoMOS. HIGH = LED allumée = PhotoMOS conducteur = Shelly-SW reçoit L → charge activée. LOW = éteint. |
| GPIO7 | i2c: sda · 400 kHz | Pad 7 → /SDA → OLED J2.4 | Ligne de données I²C vers l'OLED. Délibérément sur GPIO7 (pas GPIO8). |
| GPIO8 | status_led · WS2812 (GRB), atténué | interne au module — aucun net sur la carte (pad 8 libre) | LED RVB d'état embarquée (voyant vert/jaune/rouge). Elle est câblée en dur sur le GPIO8 du module ; c'est pourquoi aucun second signal ne doit s'y trouver — la raison pour laquelle SDA a migré vers GPIO7. |
| GPIO9 | i2c: scl · 400 kHz | Pad 9 → /SCL → OLED J2.3 | Ligne d'horloge I²C vers l'OLED (adresse 0x3C). |
| 5V / GND | alimentation du module | /+5V / GND depuis l'alimentation | 5 V provenant du module AC/DC ; GND est la masse commune (aussi les couches internes). |
| 3V3 | sortie du régulateur embarqué | /+3V3 → OLED-VCC | L'ESP génère en interne 3,3 V et alimente ainsi l'OLED. |
Une carte à quatre couches ne se fabrique pas à la maison — on la fait réaliser chez un fabricant de circuits imprimés. C'est aujourd'hui bon marché et simple : on téléverse une poignée de fichiers et l'on reçoit les cartes finies par la poste.
box/Timer-Ersatzplatine-v3-BOARD.stl en 1:1 sur l'imprimante 3D
(à plat, sans support) et posez-le dans la partie arrière imprimée. Le
contour correspond-il, les six fentes s'alignent-elles avec les
colonnettes, les trous de vis sont-ils bien placés ? Ces cinq minutes vous
évitent une commande erronée coûteuse.Vous pouvez aussi (ou en plus) imprimer le contour de la carte sur papier à l'échelle 1:1 et le découper.
« Gerber » est le format de fichier standard attendu par les fabricants de cartes — un fichier par couche, plus les données de perçage. Les fichiers Gerber prêts se trouvent déjà dans le projet ; vous pouvez les générer depuis KiCad ainsi :
kicad-v3/Timer-Ersatzplatine-v3.kicad_pcb
dans KiCad.Téléversez le ZIP chez un prestataire tel que JLCPCB, PCBWay ou Aisler. Réglages importants :
| Réglage | Valeur |
|---|---|
| Couches | 4 |
| Épaisseur du matériau | 1,6 mm (standard) |
| Finition de surface | HASL sans plomb ou ENIG |
| Cuivre | 1 oz (35 µm) |
| Couleur | indifférent |
Ce chapitre n'est nécessaire que si vous souhaitez modifier la carte vous-même. Pour une simple reproduction, vous pouvez le sauter — les données de fabrication finies sont fournies. KiCad est un logiciel gratuit de conception de cartes (testé avec KiCad 8/9/10 ; les noms de menus peuvent varier légèrement).
kicad-v3/Timer-Ersatzplatine-v3.kicad_pro.Chaque symbole de composant est associé à une empreinte (« footprint ») — le dessin de brasage sur la carte. Vérifiez sous Outils → Assigner les empreintes que PS1, par exemple, correspond à l'alimentation réellement achetée (vérifiez l'écartement des broches !) et que le PhotoMOS correspond au boîtier CMS ou DIP choisi.
Les classes de réseau figurent dans le fichier de projet et ne doivent pas être modifiées : Default (0,2 mm d'écart et de largeur de piste) et 230V (1,0 mm d'écart et de largeur de piste) avec les cinq nets L_IN, L_F, N, SW_SHELLY, O_LAST.
La règle de ligne de fuite figure dans un fichier dédié,
Timer-Ersatzplatine-v3.kicad_dru, dans le projet. Elle exige
6 mm entre 230 V et basse tension — avec l'exception délibérée du
PhotoMOS K1 :
(version 1)
(rule "230V->SELV 6mm (K1-Barriere ausgenommen)"
(condition "... 230-V-Netz gegen Nicht-230-V-Netz,
K1 ausgenommen ...")
(constraint creepage (min 6mm))
(constraint clearance (min 6mm)))
Après chaque modification, lancer le DRC (Design Rules Check, Inspecter → Vérifier les règles de conception) jusqu'à ce qu'il soit sans erreur.
Si le DRC et le contrôle visuel (vue 3D avec Alt+3) sont corrects, exportez les données Gerber et de perçage comme décrit au chapitre 7.
« Souder les composants » signifie : les fixer sur la carte. Nous procédons des pièces plates vers les pièces hautes — ainsi la carte repose toujours de façon stable pendant la soudure.
Ordre recommandé : R1 → C2 → PhotoMOS → boutons → connecteur OLED J4 → C1 → porte-fusible F1 → varistance RV1 → bornes. L'ESP ne vient qu'une fois flashé et testé (chapitres 10 et 14).
Le PhotoMOS est (selon le type) un petit composant CMS (montage en surface). Voici comment le souder proprement :
Le « firmware » est le programme qui s'exécute sur l'ESP. La toute première fois, il est installé par câble USB. Toutes les mises à jour ultérieures se font ensuite sans fil (chapitre 15).
firmware/build/ : feeder-relais.factory.bin pour
le premier flashage et feeder-relais.ota.bin pour les mises à
jour ultérieures par le web. Elles ne contiennent
aucun identifiant Wi-Fi — vous les configurez après le
flashage (chapitre 11).ESPHome est l'outil avec lequel le firmware est compilé et installé. Un
fichier secrets.yaml n'est pas nécessaire — aucune donnée
Wi-Fi n'est intégrée à la compilation.
esphome run firmware/timer-relais-c3.yaml
/dev/ttyACM0, sous Windows un COMx) et flashe./dev/ttyACM0 est refusé, ajoutez votre utilisateur
au groupe dialout et reconnectez-vous :
sudo usermod -aG dialout $USER
Pour l'image toute prête feeder-relais.factory.bin, sans
aucune installation :
https://espressif.github.io/esptool-js/.115200, cliquer sur
Connect et choisir le port série de l'ESP.0, choisir avec
Choose File le fichier feeder-relais.factory.bin, puis
Program. Attendre l'apparition de « Hard resetting… ».| Symptôme | Cause / solution |
|---|---|
| L'ESP n'est pas du tout détecté | câble de charge au lieu d'un câble de données → autre câble USB-C, autre port |
| Aucun port dans le navigateur | utiliser Chrome/Edge ; sous Windows, éventuellement des pilotes (CH340/CP210x) |
| « Connect » échoue | Mode boot : maintenir BOOT + appuyer sur RESET + relâcher BOOT, puis se reconnecter |
Pas de ….local ensuite | configurer d'abord le Wi-Fi (chapitre 11) ; le mDNS a besoin d'un instant |
Le firmware n'embarque délibérément aucun identifiant Wi-Fi. Après le flashage, l'ESP ouvre son propre point d'accès :
feeder1234).http://192.168.4.1).http://feeder-relais.local.http://feeder-relais.local ouvre une application web mobile
à cinq onglets :
Dans l'en-tête figure un point d'état : vert = tout va bien, jaune = une minuterie est en cours, rouge = anomalie au repos (par exemple OLED injoignable ou pas de Wi-Fi). Le même voyant est affiché sur l'appareil par la LED RVB embarquée, atténuée.
Pour la domotique, l'ESP propose une interface JSON. Les points d'accès les plus importants :
| Appel | Effet |
|---|---|
GET /api/status | toutes les valeurs en JSON (actif, temps restant, relais, durées, Wi-Fi …) |
POST /api/trigger?button=N | déclencher le bouton N (1–3) avec sa durée |
POST /api/trigger?seconds=N | commuter ponctuellement pendant N secondes |
POST /api/trigger?seconds=N&src=adapter | comme ci-dessus, marque la source — apparaît comme trg (button/api/adapter) dans le statut et le journal |
POST /api/stop | couper immédiatement |
POST /api/config?time1=A&time2=B&time3=C | régler les durées (chacune 1–600 s) |
POST http://feeder-relais.local/api/config?time1=8.Dans l'onglet Réseau, vous réglez :
de.pool.ntp.org).feeder-relais). Il est modifié en temps réel — l'adresse
….local s'applique immédiatement.Le commutateur Itinérance Wi-Fi (802.11k/v) n'a de sens que si vous disposez de plusieurs points d'accès avec le même SSID (Mesh/UniFi) prenant en charge cette technologie. L'appareil peut alors se réorienter délibérément vers le point d'accès le plus fort. Par défaut : désactivé. Après le basculement, le bouton « Reconnecter maintenant » aide à l'appliquer immédiatement.
Sur l'appareil, les boutons sont étiquetés : S1 = Down/Manual, S2 = SET, S3 = UP.
L'OLED (128 × 32) affiche en haut la barre Wi-Fi, l'horloge en grand ou le compte à rebours, et l'état (Repos/Repas) ; en bas la date et la mémoire libre. Le jour de la semaine, l'état et les titres de menu suivent la langue réglée. Jusqu'à la première synchronisation horaire, « --:-- » s'affiche.
Le Shelly dispose de quatre bornes : L, N, SW (entrée de commande) et O (sortie de charge). Quatre fils courts le relient à la borne J1 de la carte :
| Carte (J1) | → Shelly | Signification |
|---|---|---|
| J1.3 (L_F) | L | phase (protégée) |
| J1.4 (N) | N | neutre |
| J1.1 (SW_SHELLY) | SW | notre signal commuté (depuis le PhotoMOS) |
| J1.2 (O_LAST) | O | charge commutée vers la sortie |
Le Shelly est fixé à plat dans le boîtier (ruban adhésif VHB ou clip). Les fils doivent être courts et les bornes à vis bien serrées — aucun cuivre ne doit dépasser.
Après la première mise sous tension, configurez le Shelly une fois pour toutes (via son application ou son interface web propre) :
Les petits composants sont soudés (chapitre 9). Vient maintenant l'ESP :
http://feeder-relais.local.Après le premier flashage par USB, deux voies de mise à jour sans fil sont en place — le port USB peut rester difficilement accessible une fois l'appareil monté :
esphome run firmware/timer-relais-c3.yaml
met à jour via le Wi-Fi.feeder-relais.ota.bin. L'appareil
redémarre ensuite.L'onglet Service affiche, une fois l'affichage en direct
activé, les dernières lignes du journal, filtrées par niveau
(ERROR/WARN/INFO/DEBUG). Cela aide au dépannage sans devoir brancher l'ESP
par câble. Les journaux complets sont également disponibles via
esphome logs firmware/timer-relais-c3.yaml.
| Problème | Remède |
|---|---|
| L'ESP n'est pas détecté | câble de données au lieu d'un câble de charge ; essayer un autre port USB |
| « Connect » échoue | forcer le mode boot (maintenir BOOT, appuyer sur RESET, relâcher BOOT) |
feeder-relais.local injoignable | Wi-Fi configuré dans le point d'accès de configuration ? le mDNS a besoin d'un instant ; essayer directement l'adresse IP (dans le menu OLED) |
| Pas de point d'accès de configuration | l'appareil est déjà connecté à un Wi-Fi ; sinon réinitialisation d'usine (image Factory avec effacement du flash) |
| Problème | Remède |
|---|---|
| L'OLED reste éteint | l'écran est-il bien enfiché sur J4 ? vérifier le brochage GND/VCC/SCL/SDA |
| L'horloge affiche « --:-- » | pas encore d'heure reçue du serveur NTP ; vérifier le Wi-Fi et le serveur NTP |
| Point d'état rouge | OLED injoignable ou pas de Wi-Fi — l'onglet État donne les détails |
| La charge ne commute pas | Shelly sur « Switch/Follow » ? vérifier le câblage SW/O ; mesurer la sortie PhotoMOS lors du test USB seul |
| Le bouton ne déclenche rien | le bouton est-il exactement sous le poussoir ? vérifier les points de soudure |
| Broche ESP | Fonction | Net |
|---|---|---|
| 5V / G | alimentation | +5V / GND |
| 3V3 | alimentation OLED | +3V3 |
| GPIO3 / 4 / 5 | boutons T1 / T2 / T3 | BTN1/2/3 |
| GPIO6 | pilote du PhotoMOS (via 330 Ω) | PMOS_DRV |
| GPIO7 | I²C-SDA (OLED) | SDA |
| GPIO8 | LED RVB d'état embarquée | — |
| GPIO9 | I²C-SCL (OLED) | SCL |
Les cinq nets 230 V (classe de réseau « 230V ») : L_IN,
L_F, N, SW_SHELLY,
O_LAST.
| Chemin | Contenu |
|---|---|
kicad-v3/ | la carte v3 (KiCad : schéma, routage, règles) + données de fabrication |
box/feeder_back.scad | partie arrière du boîtier (source OpenSCAD) + STL prêt |
box/Timer-Ersatzplatine-v3-BOARD.stl | carte factice pour l'essayage |
firmware/timer-relais-c3.yaml | firmware ESPHome |
firmware/timer_web.h | application web + interface JSON |
firmware/net_config.h | configuration réseau (IP, NTP, nom d'hôte, itinérance, langue) |
firmware/build/*.bin | images de flashage prêtes (factory + ota) |
README.md | présentation du projet (allemand ; traductions sous docs/<langue>/) |
docs/handbuch/…-Handbuch.pdf | ce manuel au format PDF (traductions sous docs/<langue>/) |
| Terme | Signification |
|---|---|
| ESP32-C3 | petit microcontrôleur Wi-Fi — le « cerveau » de l'appareil |
| PhotoMOS | relais à semi-conducteur qui isole basse tension et 230 V par la lumière |
| Shelly | relais de commutation Wi-Fi tout prêt, avec mesure de puissance (externe) |
| OLED | petit écran à fort contraste |
| Gerber | format de fichier standard pour la fabrication de cartes |
| Footprint | le dessin de brasage d'un composant sur la carte |
| DRC | Design Rules Check — la vérification automatique des règles dans KiCad |
| Ligne de fuite | le chemin le long de la surface que le courant peut « ramper » |
| OTA | « Over the Air » — mise à jour du firmware sans fil |
| NTP | service horaire Internet qui règle l'horloge |
Ce manuel est placé sous licence CC BY-NC-SA 4.0. Sa structure suit le règlement documentaire du projet frère AskSin-Analyzer : un sommaire avec ancres de navigation, des règles de saut de page fixes et le bandeau de pied de page permettant de revenir au sommaire sur chaque page.
La reproduction se fait sous votre propre responsabilité. 230 volts sont mortels — en cas de doute, faites appel à un(e) électricien(ne) qualifié(e).