ESP32-CAM. Souder l’antenne externe pour améliorer la portée et la stabilité du flux vidéo

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Table des matières

Vous avez déjà très certainement été confronté à des pertes du flux vidéo ou un gel de l’image avec l’ESP32-CAM. Plusieurs solutions sont possibles pour améliorer les choses. Nous allons voir comment activer le connecteur IPEX des cartes génériques pour connecteur une antenne externe et optimiser le code Arduino.

 

Attention. la modification du circuit de l’ESP32-CAM peut entraîner un endommagement irréversible de la carte. La modification est fait à vos risques et entraîne la perte de garantie du matériel. Même si la modification a été testée, je ne peux pas garantir l’amélioration de votre signal WiFi pour tous les équipements du marché.

La modification a été testée sur un module ESP32-CAM générique.

Activer l’antenne externe (IPEX) de ESP32-CAM (ESP32-S)

Les cartes génériques ESP32-CAM ou ESP-EYE utilisent en général un module ESP32-S (une version qui semble avoir été développée par Ai Thinker). Ce module dispose d’une antenne gravée sur le PCB ainsi qu’un connecteur IPEX qui permet d’utiliser un antenne externe amplifiée.

Il n’est pas possible d’utiliser simultanément les deux antennes. La sélection de l’antenne (PCB ou IPEX) se fait à l’aide d’une résistance.

Le problème, c’est qu’il faut manuellement modifier le circuit..et pour ça, il va falloir jouer du fer à souder, et ça c’est pas facile à faire !

Mieux vaut être bien équipé. L’idéal serait d’avoir un fer à souder à air chaud et une précelle mais on y arrive avec un simple fer à souder, une bonne loupe et un peu de patiente 😛

Voir plus d’équipements de soudure

Pour activer l’antenne externe (et désactiver l’antenne PCB), il “suffit” de dessouder la résistance et la déplacer sur le plot du connecteur IPEX. Inutile de se mentir, vu la taille de la résistance, elle risque de se coller à la panne du fer à souder…c’est ce qui m’est arrivé. J’ai simplement remplacer la résistance par un fil de cuivre récupéré sur un Jumper. C’est pas idéal mais ça marche.

Les fabricants de cartes ESP32-CAM, y compris ceux* qui livrent une antenne externe sous la forme d’un kit ne modifient pas le circuit. C’est donc toujours l’antenne PCB qui est active la plupart du temps/

(*) Sauf si le fabricant l’a explicitement signalé mais c’est très rare

Antenne PCB activée Antenne externe activée
esp32-cam resistor pcb antenna esp32-cam resistor ipex activate external antenna
esp32-s esp32-cam on board antenna pcb resistance esp32-s esp32-cam antenna ipex

Test de la force du signal WiFi et de la stabilité du flux vidéo

Voici un petit morceau de code qu’il suffit d’insérer dans votre projet ESP32-CAM pour tester la force du signal WiFi dès que la connexion WiFi est établie. La force du signal moyenne est calculée sur la base de 10 mesures réalisées à 200ms d’intervalle.

  long logrssi = 0 ;
  for (size_t i = 0; i < 10; i++)
  {
    long rssi = WiFi.RSSI();
    logrssi = logrssi + rssi;
    Serial.printf("measured rssi = %d dBm \n", WiFi.RSSI());
    delay(200);
  }
  
  Serial.printf("Mean rssi = %0.1d dBm \n", logrssi / 10);

Voici les résultats obtenus avec 3 antennes différentes.

La force du signal évolue en permanence en fonction de la charge du réseau (des autres appareils connectés). Pour les tests, il n’y avait que mon ordinateur portable connecté à un point d’accès WiFi Netgear.

PCB Antenne IPEX 2dBi Antenne IPEX 6dBi
61 dBm 63 dBm 60 dBm

Sur le papier, l’antenne souple 2dBi n’apporte clairement pas grand chose. Une antenne ayant un gain d’au moins 6dBi semble un minimum pour commencer à améliorer le signal.

Trouver d’autres antennes amplifiées plus puissantes

L’amélioration peut sembler faible, mais c’est suffisant pour améliorer la stabilité du flux vidéo et réduire le taux de compression. Pour être plus rigoureux, il faudrait continuer le test sur une plus grande période et voir

Par contre de façon empirique, avec l’antenne PCB, j’avais du mal à converser le flux sans réduire la résolution et augmenter le taux de compression (et donc réduire la qualité de l’image). Avec l’antenne externe, j’ai pu passer la résolution en UXGA (1600×1200) et réduire le taux de compression à 10 (sur 63).

Voici 3 petits clips de démonstration. La vitesse de la vidéo est réelle.

Pour info, voici ce qu’on peut espérer faire en fonction de la force du signal.

Force du signal WiFi Qualité
-30 dBm Puissance maximale du signal, vous vous trouvez probablement juste à côté du point d’accès.
-50 dBm Puissance de signal excellente
-60 dBm Signal WiFi correct et fiable pour la plupart des services, y compris la vidéo HD
-67 dBm Signal fiable. Suffisant pour la voix ou le streaming vidéo de base.
-70 dBm Signal très faible. Suffisant pour relever et envoyer des emails ou un navigation internet légère (texte)
-80 dBm Connexion réseau possible mais peu de chance de pouvoir l’utiliser
-90 dBm Les chances même de se connecter sont très faibles à ce niveau

Source

Acheter une carte avec connecteur SMA ou IPEX pour antenne externe prêt à l’emploi

Vous devriez réussir l’opération sans endommager l’ESP32-S qui est bien protégé par un capot de protection. Si vous n’avez pas le matériel, vous pouvez vous rabattre sur un modèle prêt à l’emploi. En voici quelques-uns.

M5Stack Timer Camera

La M5Stack Timer Camera est une carte de développement équipée du capteur optique OV3660 permettant d’atteindre une résolution de 3MP ainsi que d’une horloge RTC BM8563. La carte est équipée d’une antenne WiFi 3D.

La M5Stack Timer Camera est également permettant de connecter des accessoires I2C Grove 4 broches. Les broches IO04 et IO13 de l’ESP32 sont exposées. Le connecteur Grove permet de connecter les capteurs et actionneurs M5Stack ou SeeedStudio.

Inutile de mettre la caméra en mode “bootloader” à chaque fois que vous voulez téléverser un nouveau programme, la carte est équipée d’un connecteur USB-C ansi que d’un convertisseur UART / USB CP2104. La M5Stack Timer Camera est idéale pour débuter. La programmation peut se faire par assemblage de blocs (language blocky).

TTGO T-Camera, T-Camera Plus ou T-Journal de LilyGo

LilyGo, le fabricant des cartes de développement TTGO nous propose 3 cartes de développement ESP32-CAM.

Les cartes ESP32-CAM TTGO T-Camera et T-Camera Plus sont équipées d’une antenne WiFi 3D ainsi que d’un connecteur IPEX. A priori, il n’est pas nécessaire d’intervenir sur le circuit pour connecteur une antenne externe. L’antenne WiFi 3D devrait toutefois offrir un signal de qualité dans la plupart des situations, en intérieur du moins.

La T-Journal est équipée d’un double connecteur SMA + IPEX (soudé à la base du connecteur SMA). Aucune antenne n’est gravée sur le PCB, il faudra donc obligatoirement utiliser une antenne externe.

Fonction TTGO T-Camera TTGO T-Camera Plus T-Journal
ttgo lilygo t-camera esp32 esp32-cam ttgo lilygo t-camera plus esp32 esp32-cam ttgo lilygo t-journal esp32 esp32-cam
ESP32 ESP32-WROVER-B ESP32-DOWDQ6 ESP32-PCIO-D4
Mémoire PSRAM 8Mo 8Mo ?
Mémoire Flash 4Mo 4Mo 4Mo
Micro

MSM261S4030H0

Lecteur de carte SD
BME280 (température + humidité + pression atmosphérique) Intégré
I2C Connecteur Connecteur
Écran OLED SSD1306

0,96″ (128×64)

IPS ST7789

1.3″

OLED SSD1306

0,96″ (128×64)

Caméra OV2640 OV2640 OV2640
PIR

AS312

Bouton utilisateur

UART / USB CP2104 CP2104 CP2104
Connecteur micro-usb micro-usb micro-usb
Connecteur JST pour batterie LiPo
Antenne WiFi 3D  
Connecteur IPEX uFL
Connecteur SMA
Dimension 69.13*28.41*8.45mm 64.57mm*23.98mm
Ressources Consulter Consulter Consulter

TTGO T-Camera avec détecter de mouvement PIR

TTGO T-Camera Plus avec micro, BME280, écran TFT couleur 1,3″ et lecteur de carte SD

Dommage le détecteur de mouvement a été remplacé par un bouton poussoir, probablement pour faire des selphis ! Elle aurait été parfaite pour une caméra de surveillance avec son lecteur de carte microSD.

TTGO T-Journal

La TTGO T-Journal est directement équipée d’un connecteur SMA. Un connecteur IPEX (uFL) est également présent à la base du connecteur SMA. Bonne idée !

Optimiser le code Arduino

Si malgré l’antenne externe vous avez toujours un gel de l’image, vous pouvez ajuster les paramètres d’acquisition. O peut agir sur 3 paramètres :

Activer le support de la PSRAM

La PSRAM est une puce mémoire accessible sur le bus SPI que l’ESP32 peut utiliser pour augmenter sa propre RAM. Cela permet de créer un buffer vidéo plus large. C’est la première chose à faire surtout si votre carte est équipée de PSRAM. Sinon, la PSRAM ne servira à rien !

Voici un exemple de configuration type à intégrer dans le setup()

if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;  // 1600x1200
    config.jpeg_quality = 10;
    config.fb_count = 2; // Si > 1, active le bus I2S
  } else {
    config.frame_size = FRAMESIZE_SVGA; // 800x600 
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

La résolution de la caméra, paramètre config.resolution

Voici les résolutions disponibles (en pixels)

FRAMESIZE_QQVGA, 160x120
FRAMESIZE_QQVGA2, 128x160
FRAMESIZE_QCIF, 176x144
FRAMESIZE_HQVGA, 240x176
FRAMESIZE_QVGA, 320x240
FRAMESIZE_CIF, 400x296
----------- Acceptable resolutions for video surveillance ------------
FRAMESIZE_VGA, 640x480
FRAMESIZE_SVGA, 800x600
----------- Ideal resolutions for video surveillance ------------
FRAMESIZE_XGA, 1024x768
FRAMESIZE_SXGA, 1280x1024
----------- Rather to take photos at regular intervals (timelaps) ------------
FRAMESIZE_UXGA, 1600x1200
FRAMESIZE_QXGA, 2048x1536
config.frame_size = FRAMESIZE_UXGA;

Augmenter le taux de compression de l’image

Le taux peut varier de 0 (aucune compression) à 63 (quasiment illisible).

  • 10 taux de compression avec une perte de qualité presque acceptable
  • 20 à 40 si le signal WiFi est médiocre
  • Au delà de 40 il faut vraiment améliorer votre réseau WiFi. La qualité de l’image est perfectible même pour faire de la vidéo-surveillance
config.jpeg_quality = 10;

Le module caméra est défectueux

La dernière cause potentielle de gel ou de flux vidéo saccadé, peut provenir tout simplement d’un capteur vidéo défectueux (problème que j’ai rencontré). Il est possible d’acheter séparément un module caméra de remplacement pour quelques euros.

Mises à jour

11/12/2020 Publication de l’article

English Version

Merci pour votre lecture.

Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

3 Commentaires
  1. SI j’en crois les résultats des tests

    PCB Antenne -61 dBm
    IPEX 2dBi -63 dBm
    Antenne IPEX 6dBi -60 dBm

    je ne vois aucun intérêt à installer la 2dBi vu qu’elle fait perdre 2 dB de signal ce qui est énorme vu qu’on double (ou divise par deux) le signal tous les 3 dB, et l’antenne supposée +6dBi ne fait gagner qu’un seul dB ce qui là aussi n’est pas normal donc soit le connecteur mini SMA a un soucis, soit les antennes sont moisis, beaucoup d’antennes pas cher sont de vrais saloperies.

  2. Merci beaucoup pour ces astuces !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Calculateurs
×
Calculateur loi d'Ohm
Tension (U) - en Volt
Courant (I) - en Ampère
Résistance (R) - en Ohms
Puissance (P) - en Watts

Ce calculateur permet de calculer les relations entre le courant, la tension, la résistance et la puissance dans les circuits résistifs.

Saisir au moins deux valeurs puis cliquer sur calculer pour calculer les valeurs restantes. Réinitialisez après chaque calcul.

Rappel sur la Loi d'Ohm
La loi d'Ohm explique la relation entre la tension, le courant et la résistance en déclarant que le courant traversant un conducteur entre deux points est directement proportionnel à la différence de potentiel entre les deux points.
La loi d'Ohm s'écrit U = IR, où U est la différence de tension, I est le courant en ampère et R est la résistance en Ohms (symbole Ω).
Loi d'Ohm (U=RI)
×
Déchiffrer le code couleur d'une résistance à 4 bandes
Bande 1 Bande 2 Multiplicateur Tolérance
   

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 4 anneaux
Formule : ab*cΩ ±d%
Les deux premières bandes (a, b) permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0) donne le nombre 10.
La troisième bande (c) est un coefficient multiplicateur. Par exemple, l'anneau rouge est un coefficient multiplicateur de 100, ce qui donne 10 X 100 = 1000Ω.
Le quatrième anneau (d) indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que sa valeur soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 4 bandes
×
Déchiffrer le code couleur d'une résistance à 5 bandes
Bande 1 Bande 2 Bande 3 Multiplicateur Tolérance

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 5 anneaux
Formule : abc*dΩ ±e%
Les trois premières bandes permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0), Noir (0) donne le nombre 100
La quatrième bande est un coefficient multiplicateur. Par exemple, l'anneau brun correspond au coefficient multiplicateur 10, ce qui donne 100 X 10 = 1000Ω.
Le cinquième anneau indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que la valeur de la résistance soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 5 bandes
×
Calculateur de résistance série pour une ou plusieurs LED
Tension d'alimentation en Volt
Tension directe en Volt
Courant en mA
Résistance calculée en Ω
Puissance estimée en W

Ce calculateur permet de déterminer la résistance requise pour piloter une ou plusieurs LED connectées en série à partir d'une source de tension à un niveau de courant spécifié.

Remarque. Il est préférable d'alimenter le circuit avec une puissance nominale comprise entre 2 et 10 fois la valeur calculée afin d'éviter la surchauffe
Couleur Longueur d'onde (nm) Tension (V) pour LED ⌀3mm Tension(V) pour LED ⌀5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc 460-470 3,0-3,2 1,9-2,1
Résistance en série pour une ou plusieurs LED
×
Calculateur durée de vie d'une batterie
Capacité de la batterie
Consommation de l'appareil ou objet connecté

Ce calculateur estime la durée de vie d'une batterie, en fonction de sa capacité nominale et du courant ou de la puissance qu'une charge en tire.

La durée de vie de la batterie est une estimation idéalisée. La durée de vie réelle peut varier en fonction de l'état de la batterie, de son âge, de la température, du taux de décharge et d'autres facteurs. C'est le mieux que vous pouvez espérer obtenir.

Autonomie de la batterie = capacité de la batterie en mAh / courant de charge en mA

Durée de vie batterie
Publicité
À lire aussi
Composants
Sur le Forum
Derniers Sujets
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment. 

Shopping cart