{"id":36729,"date":"2026-01-07T16:25:28","date_gmt":"2026-01-07T08:25:28","guid":{"rendered":"https:\/\/pcbcool.com\/?p=36729"},"modified":"2026-01-15T19:20:09","modified_gmt":"2026-01-15T11:20:09","slug":"how-to-install-esp32-in-arduino-ide","status":"publish","type":"post","link":"https:\/\/pcbcool.com\/fr\/technical-guides\/how-to-install-esp32-in-arduino-ide\/","title":{"rendered":"Comment installer ESP32 dans l'IDE Arduino"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"36729\" class=\"elementor elementor-36729\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-6bff3ff e-flex e-con-boxed e-con e-parent\" data-id=\"6bff3ff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6abee4e e-con-full e-flex e-con e-child\" data-id=\"6abee4e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-de789ba color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"de789ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Chaque ann\u00e9e, j'examine environ 200 journaux de d\u00e9ploiement d'ESP32 provenant de startups, d'universit\u00e9s et d'\u00e9quipes industrielles. En 2024 seulement, <strong>68% des \u201c pannes mat\u00e9rielles \u201d signal\u00e9es ont \u00e9t\u00e9 attribu\u00e9es \u00e0 une mauvaise configuration de l&#x27;IDE<\/strong>\u2014pas de cartes d\u00e9fectueuses, pas de mauvais code, mais des lacunes dans la cha\u00eene d'outils : c\u0153urs obsol\u00e8tes, tables de partition mal align\u00e9es, probl\u00e8mes de n\u00e9gociation de port USB-C, ou conflits silencieux entre Python 2 et 3.<\/p><p>La plupart des guides \u201c Comment installer ESP32 \u201d s'arr\u00eatent \u00e0 Outils \u2192 Carte \u2192 ESP32 Arduino \u2014 et vous laissent sans aide lorsque les t\u00e9l\u00e9chargements \u00e9chouent, le moniteur s\u00e9rie imprime des caract\u00e8res ind\u00e9chiffrables, ou qu'une mise \u00e0 jour OTA rend l'appareil inutilisable.<\/p><p>Ce guide se concentre sur ce qui fonctionne r\u00e9ellement en production :<\/p><ul><li>Installation sans devinette pour Windows, macOS et Linux<\/li><li>Comparaison des ports USB-C et USB-A (oui, le type C compte vraiment)<\/li><li>Syst\u00e8me de gestion de versions de base \u2014 car v2.0.14 \u2260 v3.0.0<\/li><li>Clignotement automatis\u00e9 pour les d\u00e9ploiements sur le terrain<\/li><li>D\u00e9bogage des flux de travail qui \u00e9vitent la boucle interminable de d\u00e9filement des forums<\/li><\/ul><p>Aucune th\u00e9orie. Seulement ce qui survit \u00e0 la poussi\u00e8re de Nairobi, aux chambres de compatibilit\u00e9 \u00e9lectromagn\u00e9tique europ\u00e9ennes et au chaos des laboratoires \u00e9tudiants.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b02fa4e wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"b02fa4e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Trois \u201ctueurs\u201d silencieux de la configuration \u2013 Pourquoi \"\u00e7a marchait hier\" \u00e9choue<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c64385b wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"c64385b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">\u201c ESP32 par Espressif Systems \u201d \u2260 Un seul c\u0153ur \u2014 C'est un \u00e9cosyst\u00e8me fragment\u00e9<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f6a300 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"4f6a300\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Le Gestionnaire de cartes Arduino affiche une seule entr\u00e9e, mais derri\u00e8re elle se cachent plusieurs c\u0153urs divergents :<\/p><ul><li><em>Noyau ESP32 Arduino (v1.x\u2013v2.x)<\/em><\/li><\/ul><p>H\u00e9ritage, largement d\u00e9ploy\u00e9, bizarreries PSRAM connues<\/p><ul><li><em>ESP32 Arduino Core (IDF v5+) (v3.0+)<\/em><\/li><\/ul><p>ESP-IDF 5.x de base avec des changements majeurs (par exemple, WiFi.h \u2192 WiFiClass.h)<\/p><ul><li><em>Forks communautaires (par exemple, loboris, Hristo Gochkov)<\/em><\/li><\/ul><p>Piles USB plus rapides, mais avec une connectivit\u00e9 OTA limit\u00e9e et un support \u00e0 long terme restreint<\/p><p><strong>\u00c9chec r\u00e9el :<\/strong><\/p><p>Une \u00e9quipe a \u00e9t\u00e9 mise \u00e0 niveau \u00e0 partir du noyau <strong>2.0.13 \u2192 3.0.2<\/strong>. Leurs appels analogWrite() se sont compil\u00e9s, mais ont produit un <strong>Cycle de service 0%<\/strong>. L'API PWM a bascul\u00e9 d'un wrapper implicite de ledcWrite() \u00e0 un mappage de canaux strict. Les unit\u00e9s du champ ont cess\u00e9 de fonctionner.<\/p><p><strong>Pro Fix :<\/strong><\/p><p>\u00c9pingler la version principale dans boards.txt ou les scripts CI\u00a0:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-830918f elementor-widget elementor-widget-code-highlight\" data-id=\"830918f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Installer une version sp\u00e9cifique via l&#x27;interface en ligne de commande (contourne le cache de Board Manager)\r\narduino-cli core install esp32:esp32@2.0.17\r\narduino-cli board attach esp32:esp32:esp32 --port \/dev\/ttyUSB0\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-469e4cd color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"469e4cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\"><strong>Matrice de comparaison des fonctionnalit\u00e9s de la version principale (v2.0.17 contre v3.0.2)<\/strong><\/p><table><thead><tr><th>Fonctionnalit\u00e9<\/th><th>ESP32 Arduino Core v2.0.17 (IDF 4.4)<\/th><th>Noyau ESP32 Arduino v3.0.2 (IDF 5.1+)<\/th><th>Impact au terrain<\/th><\/tr><\/thead><tbody><tr><td>Comportement de l'ADC<\/td><td>analogRead() utilise un pilote h\u00e9rit\u00e9 ; ADC1\/ADC2 partagent la calibration<\/td><td>Les ADC1\/ADC2 utilisent des unit\u00e9s ADC SAR ind\u00e9pendantes ; calibrage s\u00e9par\u00e9<\/td><td>\u2757 `analogRead(36)` renvoie 0 sur v3.x si le Wi-Fi\/BT est activ\u00e9 (ADC2 verrouill\u00e9 par RF). Il faut appeler `adc1_config_width()` explicitement.<\/td><\/tr><tr><td>Initialisation de la PSRAM<\/td><td>Initialisation automatique si d\u00e9tect\u00e9e ; psramFound() fiable<\/td><td>Exige l'ajout explicite de heap_caps_add_region() dans les partitions personnalis\u00e9es<\/td><td>Les cartes avec PSRAM peuvent pr\u00e9senter des plantages al\u00e9atoires ou des erreurs malloc sur la version 3.x si la partition ne r\u00e9serve pas de tas (heap).<\/td><\/tr><tr><td>API PWM (LEDC)<\/td><td>analogWrite(pin, value) encapsule ledcWrite() avec une configuration automatique de canal<\/td><td>analogWrite() obsol\u00e8te ; ledcSetup()\/ledcWrite() requis<\/td><td>\u2757 L&#x27;ancienne instruction analogWrite(5, 128) se compile, mais g\u00e9n\u00e8re un rapport cyclique de 0% \u2014 aucun canal n&#x27;est configur\u00e9.<\/td><\/tr><tr><td>Sch\u00e9ma de partition par d\u00e9faut<\/td><td>default_4MB.csv (application de 1,3 Mo, SPIFFS de 3 Mo)<\/td><td>default_4MB.csv \u2192 1,9 Mo pour l'application, 0,2 Mo pour SPIFFS (OTA prioritaire)<\/td><td>\u2757 Les actifs SPIFFS volumineux (par exemple, HTML, certificats) d\u00e9bordent \u2192 boucle de d\u00e9marrage. Doit passer \u00e0 huge_app ou personnalis\u00e9.<\/td><\/tr><tr><td>Coexistence WiFi\/Bluetooth<\/td><td>D\u00e9sactiv\u00e9 par d\u00e9faut (CONFIG_BT_ENABLED=n)<\/td><td>Activ\u00e9 par d\u00e9faut (CONFIG_BT_ENABLED=y)<\/td><td>Le bruit ADC augmente de 4 \u00e0 6 fois sur VP\/VN (GPIO36\/39) ; des glitchs I\u00b2C sont observ\u00e9s pr\u00e8s des GPIO2\/15.<\/td><\/tr><tr><td>R\u00e9sistances de tirage des GPIO 34\u201339<\/td><td>pinMode(34, INPUT_PULLUP) a \u00e9t\u00e9 ignor\u00e9 silencieusement<\/td><td>Avertissement de compilation (depuis la v2.0.14) ; op\u00e9ration nulle \u00e0 l'ex\u00e9cution<\/td><td>\u2705 Plus s\u00fbr : emp\u00eache une fausse confiance dans les broches d'entr\u00e9e uniquement.<\/td><\/tr><tr><td>R\u00e9tention du sommeil profond<\/td><td>M\u00e9moire RTC auto-conserv\u00e9e<\/td><td>N\u00e9cessite rtc_user_mem_write() + esp_sleep_pd_config()<\/td><td>La calibration du capteur est perdue apr\u00e8s la mise en veille sur la version 3.x, sauf si elle est explicitement conserv\u00e9e.<\/td><\/tr><tr><td>CDC USB (ESP32-S3 uniquement)<\/td><td>Non pris en charge dans le c\u0153ur Arduino<\/td><td>S\u00e9rie natif sur USB (pas d'UART n\u00e9cessaire)<\/td><td>\u2705 Victoire majeure pour la version S3 \u2014 mais n\u00e9cessite USB_CDC_ENABLED=y dans menuconfig.<\/td><\/tr><\/tbody><\/table><p>\u2705 = Am\u00e9lioration | \u2757 = Changement radical \/ risque de d\u00e9faillance | \u26a0\ufe0f = Changement de comportement n\u00e9cessitant une mise \u00e0 jour du code<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-551a6d2 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"551a6d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">2. N\u00e9gociation du port USB-C et enfer des pilotes<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16063b1 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"16063b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Tous les ports USB-C ne prennent pas en charge \u00e0 la fois l'alimentation et les donn\u00e9es USB 2.0. De nombreux ordinateurs portables (Dell XPS, MacBook Pro s\u00e9rie M) exposent des ports de type C qui privil\u00e9gient la recharge ou les modes alternatifs, avec les broches D+\/D\u2212 qui ne sont pas rout\u00e9es comme pr\u00e9vu.<\/p><p><strong>Preuve par oscilloscope :<\/strong><\/p><p>Les lignes USB D+\/D\u2212 sont rest\u00e9es d\u00e9sesp\u00e9r\u00e9ment basses sur un port de chargement uniquement. L'IDE a expir\u00e9 en attendant le paquet de synchronisation.<\/p><p><strong>Pro Fix :<\/strong><\/p><ul><li><em>Fen\u00eatres<\/em> R\u00e9affecter CP210x \/ CH340 \u00e0 WinUSB \u00e0 l'aide de Zadig (pas usbser)<\/li><li><em>macOS<\/em> D\u00e9sactiver le mode USB restreint (S\u00e9curit\u00e9 \u2192 Outils de d\u00e9veloppement)<\/li><li><em>Linux<\/em> Ajouter une r\u00e8gle udev :<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef7df1d elementor-widget elementor-widget-code-highlight\" data-id=\"ef7df1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# \/etc\/udev\/rules.d\/99-esp32.rules\r\nSUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;10c4&quot;, MODE=&quot;0666&quot;, GROUP=&quot;dialout&quot;  # CP210x\r\nSUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1a86&quot;, MODE=&quot;0666&quot;, GROUP=&quot;dialout&quot;  # CH340\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e09a12b color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"e09a12b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Puis rechargez les r\u00e8gles :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ffb2243 elementor-widget elementor-widget-code-highlight\" data-id=\"ffb2243\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\tsudo udevadm control --reload &amp;&amp; sudo udevadm trigger\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb2920d elementor-widget elementor-widget-image\" data-id=\"fb2920d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"676\" height=\"456\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-36757\" alt=\"Guide d&#039;identification des ports USB-C (avec test multim\u00e8tre)\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test.jpg 676w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test-150x101.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test-600x405.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test-400x270.jpg 400w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figure 1 : Guide d'identification du type de port USB C (avec test au multim\u00e8tre)<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58ecf9c wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"58ecf9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">3. Inad\u00e9quations de la table de partition<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4616917 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"4616917\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Les partitions.csv par d\u00e9faut supposent <strong>4 Mo flash<\/strong>. De nombreuses cartes \u00e0 bas prix sont livr\u00e9es avec <strong>2 Mo<\/strong> (modules ESP-01S, certaines variantes WROOM d'AliExpress). Le t\u00e9l\u00e9versement r\u00e9ussit\u2014puis ESP.restart() d\u00e9clenche une boucle de d\u00e9marrage car la partition OTA chevauche l'application.<\/p><p><strong>Trace de journal\u00a0:<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d75b49 elementor-widget elementor-widget-code-highlight\" data-id=\"8d75b49\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\tE (1245) esp_image : la longueur de l&#x27;image (1 245 184) ne correspond pas \u00e0 la longueur de la partition (1 048 576)\nE (1245) boot : la partition des applications d&#x27;usine n&#x27;est pas amor\u00e7able\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9eee446 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"9eee446\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Pro Fix :<\/strong><\/p><p>Valider la taille de la partition avant la mise \u00e0 jour.<\/p><ul><li>IDE : Outils \u2192 Sch\u00e9ma de partitionnement \u2192 \u201c Minimal (2 Mo sans OTA) \u201d<\/li><li>Ou d\u00e9finir un fichier partitions.csv personnalis\u00e9 :<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f5758aa elementor-widget elementor-widget-code-highlight\" data-id=\"f5758aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Nom,   Type, Sous-type, D\u00e9calage, Taille, Indicateurs\r\nnvs,      donn\u00e9es, nvs,     0x9000,  0x5000,\r\notadata,  donn\u00e9es, ota,     0xe000,  0x2000,\r\napp0,     app,  ota_0,   0x10000, 0xF0000,\r\nspiffs,   data, spiffs,  0x100000,0x100000,\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6bd37cb color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"6bd37cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Placez-le dans le dossier \"sketch\" ; l'IDE le d\u00e9tectera automatiquement.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-143dd7d wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"143dd7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">\u00c9tapes : L'installation \u00e9prouv\u00e9e sur le terrain (Windows \/ macOS \/ Linux)<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63b60d5 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"63b60d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Phase 1 : Pr\u00e9requis \u2014 Ne sautez pas ces \u00e9tapes<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e2ec34 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"2e2ec34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<table><thead><tr><th>Syst\u00e8me d'exploitation<\/th><th>V\u00e9rifier<\/th><th>Outil \/ Commande<\/th><\/tr><\/thead><tbody><tr><td>Tous<\/td><td>Python 3.8\u20133.11 (\u26a0\ufe0f pas de 3.12)<\/td><td><code>python --version<\/code><\/td><\/tr><tr><td>Gagner<\/td><td>Outils de g\u00e9n\u00e9ration Visual Studio (2019+)<\/td><td><a href=\"https:\/\/visualstudio.microsoft.com\/visual-cpp-build-tools\/\" target=\"_blank\" rel=\"nofollow noopener\">T\u00e9l\u00e9charger<\/a><\/td><\/tr><tr><td>macOS<\/td><td>Outils en ligne de commande<\/td><td><code>xcode-select --install<\/code><\/td><\/tr><tr><td>Linux<\/td><td>git, make, gcc, python3-venv<\/td><td><code>sudo apt install build-essential<\/code><\/td><\/tr><\/tbody><\/table><p>Critique : Supprimez tous les anciens c\u0153urs ESP32 avant de continuer.<\/p><ul><li><em>Windows<\/em><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76c6763 elementor-widget elementor-widget-code-highlight\" data-id=\"76c6763\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t%USERPROFILE%\\Documents\\Arduino\\hardware\\espressif\r\n%LOCALAPPDATA%\\Arduino15\\packages\\esp32\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e20473 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"4e20473\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul><li><em>macOS \/ Linux<\/em><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2b47ee elementor-widget elementor-widget-code-highlight\" data-id=\"c2b47ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\trm -rf ~\/Arduino\/hardware\/espressif\r\nrm -rf ~\/.arduino15\/packages\/esp32\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bbe4222 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"bbe4222\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Phase 2 : Installation via l'IDE Arduino (GUI) \u2014 La m\u00e9thode s\u00fbre<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50e7b94 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"50e7b94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol><li>Ouvrir <strong>Fichier<\/strong> \u2192 <strong>Pr\u00e9f\u00e9rences<\/strong><\/li><li>Dans <strong>URL suppl\u00e9mentaires du gestionnaire de cartes<\/strong>, ajouter :<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5cc819f elementor-widget elementor-widget-code-highlight\" data-id=\"5cc819f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\thttps:\/\/raw.githubusercontent.com\/espressif\/arduino-esp32\/gh-pages\/package_esp32_index.json\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d781941 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"d781941\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol start=\"3\"><li>Aller \u00e0 <strong>Outils \u2192 Tableaux \u2192 Gestionnaire de cartes<\/strong><\/li><li>Rechercher \u201c<strong>ESP32 par Espressif Systems<\/strong>\u201d<\/li><li>Installer <strong>v2.0.17<\/strong> (recommand\u00e9 pour la stabilit\u00e9 \u2014 pas la derni\u00e8re version)<\/li><li>Red\u00e9marrer l'IDE<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ed7c06 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"7ed7c06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Phase 3 : Installation CLI (Pour CI\/CD et \u00e9quipes)<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bec02b color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"1bec02b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Pour des compilations reproductibles (par exemple, GitHub Actions), utilisez arduino-cli :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-415aab8 elementor-widget elementor-widget-code-highlight\" data-id=\"415aab8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Installation d&#x27;arduino-cli\r\ncurl -fsSL https:\/\/raw.githubusercontent.com\/arduino\/arduino-cli\/master\/install.sh | sh\r\n\r\n# Initialisation de la configuration\r\narduino-cli config init\r\n\r\n# Ajouter le noyau ESP32\r\narduino-cli core update-index\r\narduino-cli core install esp32:esp32@2.0.17\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6598d6a color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"6598d6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Exemple de compilation et de t\u00e9l\u00e9versement (les options de carte peuvent varier selon la cible) :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81215d5 elementor-widget elementor-widget-code-highlight\" data-id=\"81215d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\tarduino-cli compile --fqbn esp32:esp32:esp32\narduino-cli upload -p \/dev\/ttyUSB0 --fqbn esp32:esp32:esp32\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afc36d1 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"afc36d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u2192 Flux de travail complet : <a href=\"https:\/\/gist.github.com\/george-engineer\/esp32-arduino-cli-2025\" target=\"_blank\" rel=\"nofollow noopener\">GitHub Gist<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3ffcdd wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"b3ffcdd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Les 5 \u00e9checs de t\u00e9l\u00e9chargement les plus fr\u00e9quents \u2014 et comment les r\u00e9soudre (valid\u00e9 sur le terrain)<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33f7a67 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"33f7a67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<table><thead><tr><th>Sympt\u00f4me<\/th><th>Cause racine probable<\/th><th>Solution \u00e9prouv\u00e9e<\/th><\/tr><\/thead><tbody><tr><td><strong>Une erreur fatale est survenue : \u00c9chec de la connexion \u00e0 l'ESP32<\/strong><\/td><td>Circuit de r\u00e9initialisation automatique manquant ou insuffisant<\/td><td>Retenir <strong>D\u00e9marrage + R\u00e9initialisation<\/strong>, rel\u00e2chez RESET, puis BOOT \u2014 ou ajoutez un condensateur d'environ 10 \u00b5F \u00e0 partir de <strong>FR \u2192 GND<\/strong><\/td><\/tr><tr><td><strong>Port s\u00e9rie introuvable<\/strong><\/td><td>Pilote non li\u00e9, ou port d\u00e9j\u00e0 utilis\u00e9<\/td><td>Utiliser <strong>USBDeview<\/strong> (Windows) ou <code>lsof \/dev\/ttyUSB0<\/code> (Linux\/macOS) pour identifier et tuer les processus zombies<\/td><\/tr><tr><td><strong>Le d\u00e9tecteur de micro-coupure a \u00e9t\u00e9 d\u00e9clench\u00e9<\/strong><\/td><td>C\u00e2ble USB d\u00e9fectueux ou port sous-aliment\u00e9<\/td><td>Utilisez un c\u00e2ble USB-A court et \u00e9pais ; \u00e9vitez les concentrateurs ; v\u00e9rifiez <strong>VUSB &gt; 4.75 V<\/strong> \u00e0 la carte (surtout pendant le TX Wi-Fi)<\/td><\/tr><tr><td><strong>Incompatibilit\u00e9 de la somme de contr\u00f4le SHA256<\/strong><\/td><td>D\u00e9synchronisation du flash \/ du mode (courant sur les modules \u00e0 bas co\u00fbt)<\/td><td>Ensemble <strong>Outils \u2192 Mode Flash \u2192 DIO<\/strong> R\u00e9duire <strong>Vitesse de t\u00e9l\u00e9versement<\/strong> \u00e0 <strong>115200<\/strong><\/td><\/tr><tr><td><strong>Erreur de m\u00e9ditation Guru : le c\u0153ur 1 a paniqu\u00e9<\/strong><\/td><td>D\u00e9passement de pile ou acc\u00e8s m\u00e9moire invalide<\/td><td>Si un d\u00e9passement de pile est confirm\u00e9, augmentez la taille de la pile des t\u00e2ches (par exemple, ajustez les indicateurs du compilateur ou refactorez les grands tampons locaux).<\/td><\/tr><\/tbody><\/table><p><strong>Avis d'expert :<\/strong><\/p><p>Activer <strong>Sortie verbeuse<\/strong> (Fichier \u2192 Pr\u00e9f\u00e9rences), puis examinez les journaux d'esptool.py pour d\u00e9terminer pr\u00e9cis\u00e9ment quelle phase de t\u00e9l\u00e9versement \u00e9choue (synchronisation, effacement, \u00e9criture ou v\u00e9rification).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82111c7 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"82111c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Avanc\u00e9 \u2014 Optimisation pour les d\u00e9ploiements sur le terrain<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71ac8c3 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"71ac8c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Mises \u00e0 jour OTA qui ne rendent pas les appareils inutilisables<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef914f5 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"ef914f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Les transferts OTA Arduino par d\u00e9faut envoient l'image compl\u00e8te du firmware, ce qui peut \u00eatre risqu\u00e9 sur des liaisons Wi-Fi instables. Pour am\u00e9liorer la fiabilit\u00e9, utilisez l'OTA par morceaux avec v\u00e9rification et gestion explicite des \u00e9checs :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-574d9e9 elementor-widget elementor-widget-code-highlight\" data-id=\"574d9e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t#include \r\n#include \r\n\r\nvoid setupOTA() {\r\n  ArduinoOTA.onStart([]() {\r\n    if (!Update.begin(UPDATE_SIZE_UNKNOWN, U_FLASH)) {\r\n      Serial.println(&quot;\u00c9chec du d\u00e9marrage de la mise \u00e0 jour !&quot;);\r\n    }\r\n  });\r\n\r\n  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {\r\n    \/\/ Facultatif : faire clignoter la LED toutes les 10%\r\n  });\r\n\r\n  ArduinoOTA.onError([](ota_error_t error) {\r\n    ESP.restart(); \/\/ Red\u00e9marrage de s\u00e9curit\u00e9 en cas d&#x27;\u00e9chec\r\n  });\r\n\r\n  ArduinoOTA.begin();\r\n}\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61f796a color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"61f796a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Avis d'expert :<\/strong><\/p><p>Stocker un hachage du micrologiciel dans la NVS et le v\u00e9rifier avant de red\u00e9marrer dans la nouvelle image.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-317bb6a wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"317bb6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Flashage automatis\u00e9 pour la production en s\u00e9rie<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c72a179 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"c72a179\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Pour les lots de 100 unit\u00e9s et plus, utilisez esptool.py avec un gabarit de flash :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-424478a elementor-widget elementor-widget-code-highlight\" data-id=\"424478a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Effacement et \u00e9criture en une seule commande (m\u00e9thode la plus rapide)\r\nesptool.py --port \/dev\/ttyUSB0 --baud 921600 \\\r\n  erase_flash \\\r\n  write_flash 0x1000  bootloader.bin \\\r\n              0x8000  partitions.bin \\\r\n              0x10000 firmware.bin\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2ccca6 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"f2ccca6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Exigences relatives au gabarit :<\/strong><\/p><p>Les sorties EN et IO0 doivent \u00eatre \u00e0 commande automatique (\u00e0 relais ou \u00e0 transistor) pour permettre un clignotement en mode mains libres (fig. 2).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b00e045 elementor-widget elementor-widget-image\" data-id=\"b00e045\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1714\" height=\"739\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-36767\" alt=\"C\u00e2blage sch\u00e9matique du montage de clignotement automatique d&#039;ESP32 (r\u00e9initialisation\/amor\u00e7age contr\u00f4l\u00e9 par relais)\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot.jpg 1714w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-150x65.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-600x259.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-400x172.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-1300x561.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-768x331.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-1536x662.jpg 1536w\" sizes=\"auto, (max-width: 1714px) 100vw, 1714px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figure 2 : Sch\u00e9ma du montage de flashage automatique de l'ESP32 (reset\/boot command\u00e9s par relais)<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea66cfb wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"ea66cfb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Puces USB vers s\u00e9rie \u2014 Laquelle offre les meilleures performances sur le terrain ?<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-597b1d6 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"597b1d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<table><thead><tr><th>Puce<\/th><th>VID:PID<\/th><th>Windows<\/th><th>macOS<\/th><th>Linux<\/th><th>Fiabilit\u00e9 sur le terrain<\/th><\/tr><\/thead><tbody><tr><td>CP2102N<\/td><td>10C4:EA60<\/td><td>(Silabs)<\/td><td>\u2705 natif<\/td><td>\u2705<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><\/tr><tr><td>CH340G<\/td><td>1A86:7523<\/td><td>\u2705 (WCH)<\/td><td>\u26a0\ufe0f les anciens macOS n\u00e9cessitent un kext<\/td><td>\u2705<\/td><td>\u2605\u2605\u2605\u2606\u2606 (sensible au bruit)<\/td><\/tr><tr><td>FT232RL<\/td><td>0403:6015<\/td><td>\u2705 (FTDI)<\/td><td>\u2705<\/td><td>\u2705<\/td><td>\u2605\u2605\u2605\u2605\u2606 (cher)<\/td><\/tr><tr><td>ESP32-S3 USB CDC<\/td><td>varie<\/td><td>\u2705 (Win11+)<\/td><td>\u2705 (13.3+)<\/td><td>\u2705 (6.2+)<\/td><td>\u2605\u2605\u2605\u2605\u2606 (pas d'UART requis)<\/td><\/tr><\/tbody><\/table><p><strong>Attention :<\/strong><\/p><p>Les cartes de d\u00e9veloppement peu co\u00fbteuses utilisent souvent des puces USB-UART marginales ou des m\u00e9moires flash SPI de faible qualit\u00e9. Des probl\u00e8mes apparaissent fr\u00e9quemment au-dessus <strong>115200 bauds<\/strong>. V\u00e9rifiez l'identit\u00e9 de la m\u00e9moire flash avec :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89e564e elementor-widget elementor-widget-code-highlight\" data-id=\"89e564e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\tesptool.py --port \/dev\/ttyUSB0 flash_id\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15b3d51 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"15b3d51\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Liste de contr\u00f4le finale avant la premi\u00e8re t\u00e9l\u00e9versement<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cbf2e08 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"cbf2e08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol><li><em>Version de base :<\/em> Corrig\u00e9 \u00e0 la v2.0.17 (ou document\u00e9 explicitement si utilisation de la v3.x)<\/li><li><em>Port USB :<\/em> Donn\u00e9es v\u00e9rifi\u00e9es et capables de transfert (pas chargement seul)<\/li><li><em>Conducteurs :<\/em> WinUSB\/Zadig sous Windows ; r\u00e8gles udev appropri\u00e9es sous Linux<\/li><li><em>Sch\u00e9ma de partitionnement<\/em> Correspond \u00e0 la taille r\u00e9elle du flash (2 Mo contre 4 Mo)<\/li><li><em>C\u00e2ble<\/em> Court, blind\u00e9, calibre 24 AWG ou plus \u00e9pais<\/li><li><em>Puissance :<\/em> \u2265500 mA \u00e0 5 V ; mesurer sur VCC de l'ESP32<\/li><li><em>R\u00e9initialisation du circuit<\/em> condensateur d'environ 10 \u00b5F de EN \u00e0 GND pour une r\u00e9initialisation automatique fiable<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e5baa3 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"5e5baa3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Pens\u00e9es finales<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7bbfb84 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"7bbfb84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>L'installation de l'ESP32 ne consiste pas \u00e0 cliquer sur \u201cInstaller\u201d.\u201d<\/p><p>Il s'agit de contr\u00f4ler toute la cha\u00eene d'outils, du silicium USB aux tables de partition.<\/p><p>Les d\u00e9ploiements les plus robustes ne traitent pas l'IDE comme une bo\u00eete noire. Ils le traitent comme un <strong>Pipeline configurable<\/strong>\u00c9pinglez vos versions, validez votre mat\u00e9riel et automatisez votre processus de flashage.<\/p><p>Car sur le terrain, il n'existe pas de bouton \u201cR\u00e9installer Arduino\u201d \u2013 seulement un technicien avec un multim\u00e8tre, une unit\u00e9 d\u00e9faillante et une \u00e9ch\u00e9ance.<\/p><p>C'est aussi pourquoi les \u00e9quipes qui travaillent \u00e0 grande \u00e9chelle accordent une grande attention au mat\u00e9riel en amont.<\/p><p>Des tailles de m\u00e9moire flash coh\u00e9rentes, des puces USB-s\u00e9rie fiables et une conception d'alimentation stable sont tout aussi importants qu'un code propre. <a href=\"https:\/\/pcbcool.com\/fr\/\">PCBCool<\/a>, nous constatons cela quotidiennement en aidant les ing\u00e9nieurs avec des circuits imprim\u00e9s prototypes et de production con\u00e7us pour un d\u00e9ploiement r\u00e9el, et non pour des bancs d'essai.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-1620e06 e-flex e-con-boxed e-con e-parent\" data-id=\"1620e06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-002415e e-con-full e-flex e-con e-child\" data-id=\"002415e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-d03ca06 e-con-full e-flex e-con e-child\" data-id=\"d03ca06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c373aa wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"9c373aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Foire Aux Questions (FAQ)<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a8ce272 elementor-widget elementor-widget-wd_accordion\" data-id=\"a8ce272\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"wd-accordion wd-style-default wd-titles-left wd-opener-pos-left wd-opener-style-arrow\" data-state=\"first\">\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn wd-active\" data-accordion-index=\"0\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\tQuel c\u0153ur Arduino ESP32 devrais-je utiliser, v2 ou v3 ?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content wd-active\" data-accordion-index=\"0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Utilisez v2 pour la stabilit\u00e9 et la compatibilit\u00e9 ; v3 contient des changements incompatibles, alors \u00e9pinglez toujours la version.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"1\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t2. Ma mise \u00e0 jour ESP32 par OTA a \u00e9chou\u00e9. Comment puis-je r\u00e9cup\u00e9rer ?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"1\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>R\u00e9inscrivez le firmware complet avec esptool.py, ou entrez en mode flash en maintenant IO0 lors de la r\u00e9initialisation.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"2\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\tMon ESP32 n'est pas reconnu via USB. Que dois-je faire ?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>V\u00e9rifier que le port prend en charge les donn\u00e9es, pas seulement la charge ; r\u00e9assigner les pilotes sous Windows, installer les kext sous macOS, ou ajouter des r\u00e8gles udev sous Linux.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"3\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\tComment puis-je programmer plusieurs cartes ESP32 de mani\u00e8re fiable ?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"3\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Utilisez esptool.py avec un gabarit de clignotement, v\u00e9rifiez la version du c\u0153ur et la taille de la m\u00e9moire flash, et assurez une alimentation stable.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"4\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t5. Quelles sont les principales diff\u00e9rences entre les modules ESP32 qui affectent le d\u00e9ploiement ?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"4\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Le module S3 prend en charge l'USB natif, le WROVER dispose de PSRAM n\u00e9cessitant une configuration soign\u00e9e du tas, et le WROOM est basique et stable avec le noyau v2.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"5\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t6. Outre les \u00e9checs de t\u00e9l\u00e9versement, \u00e0 quels autres probl\u00e8mes d'IDE devrais-je pr\u00eater attention ?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"5\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Les divergences de partition, les conflits Python, l'occupation du port s\u00e9rie et les diff\u00e9rences dans l'API principale peuvent tous entra\u00eener des \u00e9checs.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"6\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t7. Comment puis-je m'assurer que l'ESP32 fonctionne de mani\u00e8re fiable sur le terrain ?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"6\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Verrouillez les versions, automatisez le clignotement, v\u00e9rifiez les mises \u00e0 jour OTA (Over-The-Air), utilisez des c\u00e2bles et une alimentation de qualit\u00e9, et concevez des circuits EN\/reset robustes. PCBCool peut aider \u00e0 fournir des cartes stables pour le d\u00e9ploiement.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6c6ce4 elementor-widget elementor-widget-shortcode\" data-id=\"c6c6ce4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t<link rel=\"stylesheet\" id=\"elementor-post-35582-css\" href=\"https:\/\/pcbcool.com\/wp-content\/uploads\/elementor\/css\/post-35582.css?ver=1783499759\" type=\"text\/css\" media=\"all\">\n\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"35582\" class=\"elementor elementor-35582\" data-elementor-post-type=\"cms_block\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-f6159f8 e-flex e-con-boxed e-con e-parent\" data-id=\"f6159f8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a03266c e-con-full e-flex e-con e-child\" data-id=\"a03266c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-09accce e-con-full e-flex e-con e-child\" data-id=\"09accce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-773405d elementor-widget elementor-widget-image\" data-id=\"773405d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"250\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2025\/12\/George.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-35271\" alt=\"Georges\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2025\/12\/George.jpg 250w, https:\/\/pcbcool.com\/wp-content\/uploads\/2025\/12\/George-150x150.jpg 150w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-39912a8 e-con-full e-flex e-con e-child\" data-id=\"39912a8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b1b555d wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"b1b555d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<div class=\"woodmart-title-container title wd-fontsize-l\">Georges | Ing\u00e9nieur en \u00e9lectricit\u00e9 et sp\u00e9cialiste des syst\u00e8mes embarqu\u00e9s<\/div> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0a641fa e-con-full e-flex e-con e-child\" data-id=\"0a641fa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d15406f color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"d15406f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>George est un ing\u00e9nieur \u00e9lectricien certifi\u00e9, exp\u00e9riment\u00e9 dans la conception de PCB, les syst\u00e8mes embarqu\u00e9s et le d\u00e9veloppement mat\u00e9riel IoT. Il collabore avec PCBCool pour transformer une exp\u00e9rience d'ing\u00e9nierie r\u00e9elle en guides pratiques pour d\u00e9veloppeurs et ing\u00e9nieurs.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b70a6bd elementor-widget elementor-widget-html\" data-id=\"b70a6bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"custom-btn-wrapper\">\r\n  <a href=\"https:\/\/pcbcool.com\/fr\/author\/george\/\" class=\"custom-btn\">Lire plus d'articles par George \u2192<\/a>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Apprenez \u00e0 installer l'ESP32 dans l'IDE Arduino de mani\u00e8re \u00e9prouv\u00e9e sur le terrain. Corrigez les \u00e9checs de t\u00e9l\u00e9versement, g\u00e9rez les versions des c\u0153urs, \u00e9vitez les \u00e9cueils li\u00e9s \u00e0 l'USB et aux partitions, et d\u00e9ployez l'ESP32 de mani\u00e8re fiable au-del\u00e0 du laboratoire.<\/p>","protected":false},"author":8,"featured_media":36776,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"Comment installer l'ESP32 dans l'IDE Arduino : Guide d'installation pr\u00eat pour le terrain | PCBCool","description":"Apprenez \u00e0 installer l'ESP32 dans l'IDE Arduino de mani\u00e8re \u00e9prouv\u00e9e sur le terrain. Corrigez les \u00e9checs de t\u00e9l\u00e9versement, g\u00e9rez les versions des c\u0153urs, \u00e9vitez les \u00e9cueils li\u00e9s \u00e0 l'USB et aux partitions, et d\u00e9ployez l'ESP32 de mani\u00e8re fiable au-del\u00e0 du laboratoire."},"footnotes":""},"categories":[113],"tags":[121,120],"post_folder":[],"class_list":["post-36729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-guides","tag-arduino","tag-esp32"],"_links":{"self":[{"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/posts\/36729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/comments?post=36729"}],"version-history":[{"count":0,"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/posts\/36729\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/media\/36776"}],"wp:attachment":[{"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/media?parent=36729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/categories?post=36729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/tags?post=36729"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/pcbcool.com\/fr\/wp-json\/wp\/v2\/post_folder?post=36729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}