Files
2026-05-24 13:05:18 +02:00

13 KiB
Raw Permalink Blame History

Spécifications — Wemos D1 R32 ESP32

Microcontrôleur

Vue de la carte Wemos D1 R32 ESP32

Les images du dossier image/ correspondent à une Wemos D1 R32 ESP32, au format Arduino UNO, et non à une D1 Mini compacte. Les indications de GPIO du firmware restent valables : c'est toujours le numéro GPIO ESP32 qui compte.

Paramètre Valeur
Module ESP32-WROOM-32
Puce détectée ESP32-D0WDQ6 revision v1.0
Famille Espressif ESP32 classique / ESP32 original series
Architecture Xtensa LX6 dual-core 32 bits
Fréquence CPU jusqu'à 240 MHz (configurable : 80 / 160 / 240 MHz)

Identification locale effectuée avec esptool sur /dev/ttyUSB0 :

Chip type: ESP32-D0WDQ6 (revision v1.0)
Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz
Crystal frequency: 40MHz
USB-série: CH340, VID:PID=1A86:7523

Source constructeur : Espressif — ESP32 Series Datasheet et Espressif — ESP32-WROOM-32 Datasheet. Le module ESP32-WROOM-32 embarque un ESP32-D0WDQ6, avec un microprocesseur Xtensa dual-core 32-bit LX6 jusqu'à 240 MHz, WiFi 2,4 GHz et Bluetooth/BLE.

Position par rapport aux autres familles ESP32

Sur Internet, on voit souvent les variantes ESP32-C3, ESP32-C6, ESP32-S2, ESP32-S3, ESP32-H2, etc. Ta carte n'appartient à aucune de ces familles : elle utilise la famille ESP32 historique.

Famille Architecture typique Connectivité typique Ta carte ?
ESP32 / ESP32-D0WDQ6 Xtensa LX6 dual-core WiFi + Bluetooth Classic + BLE Oui
ESP32-C3 RISC-V single-core WiFi + BLE Non
ESP32-C6 RISC-V WiFi 6 + BLE + 802.15.4 Non
ESP32-S2 Xtensa LX7 single-core WiFi, pas Bluetooth classique Non
ESP32-S3 Xtensa LX7 dual-core WiFi + BLE, orienté IA/vectoriel Non
ESP32-H2 RISC-V BLE + 802.15.4, pas WiFi Non

Conséquence pratique : pour PlatformIO, le choix actuel board = esp32dev et framework = arduino est cohérent avec cette carte. Les guides ou pinouts spécifiques C3, C6, S2, S3 ou H2 ne doivent pas être appliqués directement à ton câblage.

Mémoire

Type Capacité
Flash SPI (interne au module) 4 MB
ROM 448 KB
SRAM 520 KB

GPIO611 réservés au bus Flash — ne jamais les utiliser.

Dimensions

Paramètre Valeur
PCB format Arduino UNO
Pas des broches 2,54 mm
Compatibilité breadboard Non directement, carte large type UNO
Compatibilité shields Shields Arduino UNO, selon brochage et tensions

Add-on de câblage : screw shield

Screw shield / proto shield à borniers

Le shield à borniers montré dans image/screwshield.png est un screw shield / proto shield au format Arduino UNO. Il est adapté à cette carte parce que la Wemos D1 R32 reprend l'empreinte mécanique Arduino UNO : le shield vient s'enficher sur les deux rangées latérales et expose les broches sur des borniers à vis.

Compatibilité

Point Compatibilité Commentaire
Format physique Oui La D1 R32 est au format Arduino UNO
Alimentation 3V3 / 5V / GND Oui Les borniers reprennent les broches d'alimentation
Signaux numériques Oui Utilisables si la correspondance GPIO est respectée
Zone de prototypage Oui Pratique pour la résistance pull-up 4,7 kΩ des DS18B20
Shields Arduino 5 V ⚠️ Prudence L'ESP32 n'est pas tolérant 5 V sur ses GPIO

Point d'attention important

Le shield peut afficher des noms de broches Arduino (A0, A1, D13, etc.), alors que le firmware utilise les vrais numéros ESP32 GPIO (GPIO4, GPIO27, GPIO21, etc.).

Pour éviter une erreur de câblage :

  1. Repérer la broche voulue sur le pinout D1 R32 ci-dessous.
  2. Vérifier à quel bornier du screw shield elle correspond.
  3. Câbler selon le numéro GPIO utilisé dans include/config.h.

Sur la D1 R32, GPIO27 est exposé sur la broche Arduino D6. Sur le screw shield, le bornier à utiliser pour le bus DS18B20 est donc D6. Il faut se fier à la table de correspondance ci-dessous, pas seulement au numéro GPIO écrit dans le firmware.

Utilisation dans le projet esp_jardin

Dans ton cas, le screw shield sert surtout à fiabiliser le câblage extérieur des sondes DS18B20 :

  • les trois fils VCC des sondes vont sur un bornier relié au 3V3,
  • les trois fils GND vont sur un bornier GND,
  • les trois fils DATA vont sur le bornier D6, correspondant à GPIO27,
  • la résistance 4,7 kΩ peut être placée dans la zone de prototypage entre 3V3 et DATA.

Alimentation

Paramètre Valeur
USB 5 V Micro-USB
Broche VIN 5 V 12 V (non régulé)
Sortie 3V3 3,3 V régulé (usage externe limité)
Régulateur ME6211 (500 mA) ou AMS1117-3.3 (800 mA) selon version
Courant actif WiFi ~80 mA pic
Deep sleep < 10 µA

Réponse à la question d'alimentation

L'USB suffit largement.
Une batterie solaire avec sortie USB 5 V alimente parfaitement la carte via le port Micro-USB. Le régulateur embarqué gère la tension 5 V → 3,3 V. La broche VIN (5 V12 V) est une entrée alternative pour une alimentation sans connecteur USB (adaptateur secteur, alimentation industrielle, etc.) — elle n'est pas nécessaire ici.

Consommation typique du projet esp_jardin :

  • ESP32 WiFi actif : ~80 mA
  • 3 × DS18B20 : ~5 mA chacune
  • Total : ~95100 mA, bien en dessous des 500 mA du régulateur.

Une batterie solaire USB standard de 10 000 mAh offre environ 4 jours d'autonomie sans soleil.

Connectivité sans fil

Paramètre Valeur
WiFi 802.11 b/g/n — 2,4 GHz uniquement
Bluetooth 4.2 (BR/EDR + BLE)
Antenne PCB intégrée (version WROOM-32 standard)

La version WROOM-32U dispose d'un connecteur U.FL pour antenne externe.

GPIO disponibles

Pinout Wemos D1 R32 ESP32

Pour le câblage, se fier aux étiquettes GPIOxx du pinout. Les libellés type IO4, IO27, SDA, SCL ou RX/TX sont des repères de connecteur, mais le firmware PlatformIO utilise les numéros GPIO ESP32.

Synthèse RIOT-OS / ESP32

Source : RIOT-OS — ESP32 SoC Series, Common Peripherals et RIOT-OS — ESP32 family.

La documentation RIOT-OS confirme les points suivants pour l'ESP32 utilisé par la D1 R32 :

Sujet Synthèse utile pour esp_jardin
GPIO disponibles L'ESP32 expose 34 GPIO, mais tous ne sont pas équivalents. Certains sont réservés, entrée seule ou liés au boot.
GPIO34 à GPIO39 Entrée uniquement. Bons candidats pour de l'analogique, mais pas pour piloter un bus OneWire ou une sortie.
ADC1 GPIO32 à GPIO39. C'est le bon choix pour de futures sondes analogiques, notamment humidité du sol.
ADC2 GPIO0, 2, 4, 12 à 15, 25 à 27. À éviter pour l'analogique quand le WiFi est actif, car ADC2 est aussi utilisé par le WiFi.
GPIO4 Utilisable en entrée/sortie numérique, mais laissé libre dans ce projet depuis le passage du bus DS18B20 sur GPIO27.
GPIO25 / GPIO26 Sorties DAC matérielles disponibles. Utilisables aussi en numérique/PWM si le DAC n'est pas utilisé.
I2C par défaut SDA=GPIO21, SCL=GPIO22. À réserver pour capteurs I2C futurs.
SPI général VSPI utilise classiquement GPIO18/19/23/5. HSPI utilise GPIO14/12/13/15.
Flash interne GPIO6 à GPIO11 sont liés à la flash SPI et ne doivent pas être utilisés pour le projet.
Bootstrapping GPIO0, GPIO2, GPIO12 et GPIO15 ont des contraintes au démarrage. À éviter pour des signaux critiques ou tirés dans un état risqué.

Conclusion pour le projet :

  • GPIO27 / D6 est utilisé pour les DS18B20 en numérique OneWire.
  • GPIO4 / A1 reste compatible en numérique, mais n'est plus utilisé pour éviter l'ambiguïté ADC2.
  • Pour l'humidité du sol analogique, utiliser GPIO32 ou GPIO33, pas GPIO4, GPIO25, GPIO26 ou GPIO27.
  • Ne jamais utiliser GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11.

Correspondance Arduino UNO / GPIO ESP32

Cette table reprend la configuration de compatibilité Arduino UNO de la D1 R32. Elle est utile avec le screw shield, car les borniers sont souvent marqués avec les noms Arduino (A1, D6, SDA, etc.).

Fonction GPIO ESP32 Broche Arduino Remarque
ADC_LINE(0) / LED GPIO2 A0 LED intégrée, éviter pour signaux critiques
ADC_LINE(1) GPIO4 A1 Libre, ancien choix DS18B20
ADC_LINE(2) GPIO35 A2 Entrée seule, ADC1
ADC_LINE(3) GPIO34 A3 Entrée seule, ADC1
ADC_LINE(4) GPIO36 A4 Entrée seule, ADC1
ADC_LINE(5) GPIO39 A5 Entrée seule, ADC1
DAC_LINE(0) / PWM GPIO25 D3 DAC1
DAC_LINE(1) GPIO26 D2 DAC2
I2C SDA GPIO21 SDA I2C futur
I2C SCL GPIO22 SCL I2C futur
PWM GPIO16 D5 Libre possible
PWM GPIO27 D6 Bus DS18B20 actuel du projet
PWM GPIO13 D9 ADC2, éviter pour analogique avec WiFi
SPI CS GPIO5 D10 SPI VSPI CS
SPI MOSI GPIO23 D11 SPI VSPI MOSI
SPI MISO GPIO19 D12 SPI VSPI MISO
SPI CLK GPIO18 D13 SPI VSPI CLK
UART0 TX GPIO1 D1 USB/programming, éviter
UART0 RX GPIO3 D0 USB/programming, éviter
UART1 TX GPIO10 D4 Réservé flash sur ESP32-WROOM, ne pas utiliser
UART1 RX GPIO9 D5 Réservé flash sur ESP32-WROOM, ne pas utiliser

La ligne UART1 GPIO10/GPIO9 existe dans certaines configurations théoriques Arduino UNO, mais sur ESP32-WROOM les GPIO6 à GPIO11 sont utilisés par la flash interne. Pour ce projet, ils doivent rester interdits.

Interfaces de communication

Interface GPIO
UART0 (USB/prog) TX=GPIO1, RX=GPIO3
UART2 possible TX=GPIO17, RX=GPIO16
I2C (défaut) SDA=GPIO21, SCL=GPIO22
SPI VSPI MOSI=GPIO23, MISO=GPIO19, SCK=GPIO18, CS=GPIO5
SPI HSPI MOSI=GPIO13, MISO=GPIO12, SCK=GPIO14, CS=GPIO15

ADC — contrainte WiFi critique

ADC GPIO WiFi actif
ADC1 GPIO32, 33, 34, 35, 36, 39 Utilisable
ADC2 GPIO0, 2, 4, 12, 13, 14, 15, 25, 26, 27 Inutilisable en mode analogique

GPIO27 (OneWire DS18B20 du projet) appartient à ADC2 mais utilisé en numérique — pas de conflit.
Pour les futures sondes sol (humidité analogique) : utiliser GPIO3239 (ADC1 uniquement).

DAC

Canal GPIO
DAC1 GPIO25
DAC2 GPIO26

Broches strapping (contraintes au boot)

GPIO Contrainte
GPIO0 HIGH = boot normal / LOW = mode flash (bouton BOOT)
GPIO2 LED intégrée — éviter pour signaux critiques
GPIO12 LOW au boot obligatoire
GPIO15 Contrôle logs de boot

Interface USB

Paramètre Valeur
Puce USB-UART CH340C (certains clones : CH9102X ou CP2104)
Connecteur Micro-USB
Auto-reset Oui (circuit DTR/RTS)

LED et boutons

Composant Détail
LED bleue GPIO2 — logique inversée (LOW = allumée)
Bouton RST Reset hardware
Bouton BOOT (IO0) Maintenir + RST pour entrer en mode flash

Correspondance avec le projet esp_jardin

Fonction GPIO Statut
OneWire DS18B20 GPIO27 / D6 Utilisé
I2C SDA (BH1750/SHT31) GPIO21 Réservé (futur)
I2C SCL GPIO22 Réservé (futur)
ADC sol (humidité) GPIO32 ou GPIO33 ADC1 — futur
Relais GPIO25 / GPIO26 Futur
Interruptions GPIO14 Futur

Branchement actuel des DS18B20

Les trois sondes DS18B20 se branchent en parallèle sur le même bus OneWire.

Wemos D1 R32 Screw shield DS18B20
3V3 3V3 VCC des 3 sondes
GND GND GND des 3 sondes
GPIO27 D6 DATA des 3 sondes

Ajouter une résistance 4,7 kΩ entre 3V3 et D6 / GPIO27.

3V3  ─────┬──────── VCC sonde 1
          ├──────── VCC sonde 2
          ├──────── VCC sonde 3
          │
          └─[ 4.7 kΩ ]─┐
                       │
D6 / GPIO27 ───────────┼──────── DATA sonde 1
                       ├──────── DATA sonde 2
                       └──────── DATA sonde 3

GND  ─────┬──────── GND sonde 1
          ├──────── GND sonde 2
          └──────── GND sonde 3

Couleurs fréquentes des sondes waterproof :

Couleur Signal
Rouge VCC / 3V3
Noir GND
Jaune ou blanc DATA / D6 / GPIO27

Choix retenu

Le bus DS18B20 utilise désormais GPIO27 / D6 :

#define ONE_WIRE_BUS 27

Ce choix libère A1 / GPIO4, garde GPIO21/22 pour l'I2C, et garde GPIO32/33 pour les futures mesures analogiques.