Modules et horloge RTC
Les modules se branchent sur le bus I²C de l’ESP32 (SDA = GPIO21, SCL = GPIO22) et se déclarent dans les modules d’extension du contrôleur. Horloge et extensions se branchent en parallèle sur ces deux fils, alimentés en 3,3 V.
Extensions d’entrées-sorties
Section intitulée « Extensions d’entrées-sorties »| Module | Broches ajoutées | Usage | Adresses |
|---|---|---|---|
| PCF8574 | 8 | relais, flotteurs | 0x20–0x27 (0x38–0x3F pour un PCF8574A) |
| PCF8575 | 16 | relais, flotteurs | 0x20–0x27 |
| PCA9685 | 16 sorties PWM | canaux de lampe | 0x40–0x4F conseillé |
PCF8574 et PCF8575 partagent la plage 0x20–0x27 : chaque carte doit y avoir sa propre adresse.
Elles permettent de piloter une carte de 8 ou 16 relais avec seulement deux broches de l’ESP32.
Chaque module a une adresse I²C, réglée par ses cavaliers A0, A1 et A2 :
| A2 A1 A0 | PCF8574 | PCF8574A |
|---|---|---|
| 0 0 0 | 0x20 | 0x38 |
| 0 0 1 | 0x21 | 0x39 |
| 0 1 0 | 0x22 | 0x3A |
| 0 1 1 | 0x23 | 0x3B |
| 1 0 0 | 0x24 | 0x3C |
| 1 0 1 | 0x25 | 0x3D |
| 1 1 0 | 0x26 | 0x3E |
| 1 1 1 | 0x27 | 0x3F |
(0 = cavalier vers GND, 1 = vers VCC.) Deux modules d’un même contrôleur doivent avoir des adresses différentes.
Chaque module reçoit un numéro sur son contrôleur (« Module 1 », « Module 2 »…), modifiable à tout moment. C’est lui qui s’affiche dans le choix des broches : « Module 2 · broche 5 ». Numérotez vos modules comme ils sont rangés dans le boîtier.
Scanner le bus
Section intitulée « Scanner le bus »Le bouton Scanner le bus I²C des modules d’extension liste les adresses vues par le contrôleur : modules déclarés, horloge, mémoire de l’horloge, et modules non déclarés (bouton Déclarer). Il signale aussi un module déclaré mais absent du bus (câblage ou cavaliers). Le firmware du contrôleur doit déjà contenir le bus I²C : déclarez l’horloge ou un module, flashez, puis scannez. Le contrôleur ne scanne qu’à son démarrage : après avoir branché ou débranché un module, utilisez Redémarrer et scanner, qui redémarre le contrôleur et relance le scan dès son retour.
Câble long
Section intitulée « Câble long »L’I²C est prévu pour un câble court (1 à 2 m). Pour éloigner les modules :
- baissez la fréquence du bus dans les modules d’extension (10 kHz au-delà de 5 m), puis flashez ;
- en câble réseau, mettez SDA avec une masse dans une paire et SCL avec une autre masse dans une autre paire ;
- ajoutez des résistances de tirage de 2,2 kΩ vers le 3,3 V sur SDA et SCL, côté ESP32 ;
- au-delà, utilisez un prolongateur I²C (P82B715, PCA9615) ;
- avec un prolongateur, alimentez le côté distant sur place (3,3 V) plutôt que par le câble : une
tension trop basse au bout du câble fait échouer l’initialisation des modules (journal du
contrôleur :
Setting up PCA9685 failed!, sorties en roue libre).
PCA9685 (éclairage)
Section intitulée « PCA9685 (éclairage) »Le PCA9685 ajoute 16 sorties PWM : dans le choix de la broche d’un canal de lampe, ses canaux s’ajoutent aux GPIO de l’ESP32. Il ne délivre qu’un signal : reliez-le à des drivers LED à entrée PWM (ou des MOSFET). Le module a une seule fréquence PWM, celle des lampes branchées dessus (jusqu’à 1525 Hz). Évitez les adresses 0x68 (horloge) et 0x70 (adresse commune des PCA9685, visible au scan).
Horloge RTC
Section intitulée « Horloge RTC »Une horloge sur pile garde l’heure même sans réseau ni serveur. Elle est obligatoire pour les règles horaires et les programmes d’éclairage.
Modèles pris en charge :
- DS3231 (recommandé, très précis) ;
- DS1307 ;
- PCF8563 ;
- PCF85063.
Pas d’adresse à saisir : elle est fixée par la puce (0x68 pour DS3231 et DS1307, 0x51 pour PCF8563 et PCF85063). Beaucoup de modules DS3231 portent aussi une petite mémoire en 0x57 : elle apparaît au scan, il n’y a rien à déclarer.
Au démarrage, l’ESP lit l’heure dans l’horloge. Dès qu’il accède au réseau, il se synchronise sur Internet (NTP) et remet l’horloge à l’heure.
