# Annexe — Installation de l'environnement de développement (Windows 10)

## 1. Arduino IDE

Télécharger et installer la dernière version depuis le site officiel :
👉 https://www.arduino.cc/en/software

Choisir **Windows Win 10 and newer, 64 bits** (installeur `.exe`).

---

## 2. Pilote CP2102 (USB → UART)

Le DevKit V1 utilise une puce **Silicon Labs CP2102** pour la communication USB/série.
Windows 10 ne l'installe pas toujours automatiquement.

**Vérification :** brancher l'ESP32 en USB → ouvrir le Gestionnaire de périphériques → si le port COM n'apparaît pas (ou apparaît avec un `!`), le pilote est absent.

**Installation :**
1. Télécharger le pilote sur le site Silicon Labs : https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
2. Choisir **CP210x Windows Drivers**
3. Décompresser et lancer `CP210xVCPInstaller_x64.exe`
4. Débrancher / rebrancher l'ESP32 → un port **COMx** apparaît dans le Gestionnaire de périphériques

---

## 3. Support ESP32 dans Arduino IDE

Le support ESP32 ne fait pas partie d'Arduino IDE par défaut — il faut ajouter le gestionnaire de cartes Espressif.

### 3a. Ajouter l'URL du gestionnaire de cartes

1. Dans Arduino IDE : **Fichier → Préférences**
2. Dans le champ **URL de gestionnaire de cartes supplémentaires**, ajouter :
   ```
   https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
   ```
3. Valider avec OK

### 3b. Installer le paquet ESP32

1. **Outils → Type de carte → Gestionnaire de cartes**
2. Rechercher `esp32`
3. Sélectionner **esp32 by Espressif Systems** → **Installer**
4. Attendre la fin du téléchargement (~200 Mo)

### 3c. Sélectionner la carte

1. **Outils → Type de carte → esp32 → ESP32 Dev Module**
2. **Outils → Port** → sélectionner le port COMx du DevKit

---

## 4. Vérification

Ouvrir **Fichier → Exemples → WiFi → WiFiScan**, téléverser.
Si la compilation et le téléversement réussissent sans erreur, l'environnement est opérationnel.

---

## 5. Bibliothèques du projet

À installer via **Outils → Gérer les bibliothèques** :

| Bibliothèque        | Auteur           | Rechercher                        |
|---------------------|------------------|-----------------------------------|
| HX711               | bogde            | `HX711 bogde`                     |
| ESPAsyncWebServer   | Mathieu Carbou   | `ESPAsyncWebServer mathieucarbou` |
| AsyncTCP            | Mathieu Carbou   | `AsyncTCP mathieucarbou`          |

> ⚠️ Ne pas installer la version de `me-no-dev` — elle n'est plus maintenue et provoque une erreur de compilation avec le SDK ESP32 v3.x (voir ci-dessous).

---

## 6. Erreur de compilation — ESPAsyncWebServer incompatible

### Symptôme

```
WebAuthentication.cpp: error: 'mbedtls_md5_starts_ret' was not declared in this scope
```

### Cause

Le SDK ESP32 v3.x a supprimé les fonctions mbedTLS suffixées `_ret`
(`mbedtls_md5_starts_ret`, `mbedtls_md5_update_ret`, `mbedtls_md5_finish_ret`).
La bibliothèque `ESPAsyncWebServer` de `me-no-dev` utilise ces fonctions obsolètes et n'est plus maintenue.

### Solution

Désinstaller la version `me-no-dev` et installer le fork maintenu :

1. **Outils → Gérer les bibliothèques**
2. Rechercher `ESPAsyncWebServer` → désinstaller la version `me-no-dev` si présente
3. Rechercher `ESPAsyncWebServer mathieucarbou` → installer **ESPAsyncWebServer by Mathieu Carbou**
4. Rechercher `AsyncTCP mathieucarbou` → installer **AsyncTCP by Mathieu Carbou**
5. Relancer la compilation

Le fork de Mathieu Carbou est compatible SDK ESP32 v3.x et maintenu activement.
