CameraWebServer FR + LED Flash

ESP32 et CameraWebServer revue et corrigé en Français avec utilisation de la LED Flash du circuit.

Si vous voulez utiliser l'ESP-CAM avec la possibilité de pouvoir utiliser la LED Flash et avoir le menu en Français, voici un exemple simple pour y arriver.

L'utilisation de la LED Flash faisait défaut sur l'exemple donné pour ce module et je m'étais astreins à un fonctionnement doit voici quelques règles:

  • La LED ne doit pas s'allumer à la connexion en automatique

  • Décider quand allumer et éteindre la LED

  • Au changement de page sur le navigateur la LED doit s'éteindre

  • En quittant le navigateur la LED s'éteint

  • Le flux vidéo à l'arrêt doit éteindre la LED

  • A la prise d'instantané, l'image se fige et le flux vidéo s'arrête ainsi que la LED

  • Menu en Français

etc...

J'ai donc été obligé de toucher au SDK de l'ESP32 pour y arriver, enfin juste à la librairie "sensor.h" à laquelle j'ai ajouté l'existence de la LED (qui faisait défaut).

Moi je vais utiliser la caméra dans ma boite à lettres pour savoir si j'ai du courrier que le système de pesé actuel ne m'a pas signalé. Le système de pesé actuelle est sensé peser de quelques grammes à 10Kg mais du coup de petits paquet ou lettre pesant une quinzaine de gramme ne sont pas systématiquement détectés, mais je n'ai pas trouvé de capteurs de pesé assez plat et moins haut en poids sur le marché alors j'ajoute cette caméra pour avoir en plus l'image de l'intérieur de ma boite. Je sais, certain diront que c'est un peu geek, mais je suis comme obelix, je suis tombé dedans tout petit...

J'aurai pu utiliser une librairie de l'ESP32 ("driver/rtc_io.h") pour piloter la LED, mais je m'étais mis comme condition un certain fonctionnement et cela n'a été possible qu'en modifiant la librairie du SDK "sensor.h".
Ces modifications ajoute 2 lignes dans le fichier et sont facile à comprendre et à enlever.
Cette modification n'est pas propre, car elle touche le SDK, mais n'entrave en rien son fonctionnement, il n'y a donc aucun risque de problème avec d'autres programmes.

Pour ceux qui ne le savent pas, le fichier est situé là :
C:\Users\Votre user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\include\esp32-camera\sensor.h

Je vous joins les fichiers que j'ai modifié de l'exemple "CameraWebServer" dans un zip.
Placez le zip dans Documents/Arduino et dézippez vous aurez ainsi tout ce dont on a besoin.
Une fois dans l'IDE Arduino, lisez attentivement l'onglet "A_Lire" pour savoir comment réaliser les modifications.

Le zip est testé GData avec 2 moteurs antivirus.

CameraWebServer.zip (23.9 KB)

Webcam.jpg

Merci pour le partage !!
+1k

Cette modification n'est pas propre, car elle touche le SDK, mais n'entrave en rien son fonctionnement, il n'y a donc aucun risque de problème avec d'autres programmes.

De mémoire le flash partage sa pin avec la carte SD. Avez vous testé s'il y a un impact lors des commandes ?

Merci pour le partage !!

pinMode(4, OUTPUT); // LED Flash

comme indiqué par J-M-L (bonne mémoire !!) la led flash de la carte ESP32-CAM est commandée par un GPIO utilisé par ailleurs pour une des lignes de données de la carte µSD.

Bonjour,
Désolé pour le temps de réponse.
Oui il y a bien un GPIO qui est connecté à la LED (sinon à quoi servirait elle) je dis dans les explication qu'on peut procéder autrement pour commander la LED mais j'ai préféré modifier le SDK (qui ne la prenait pas en charge) à cause de l'utilisation que je voulais.
Ce que je donne est juste un exemple possible et non exhaustif des possibilités de cette webcam.
Je viens d'essayer différentes caméra avec ce circuit et j'ai pu remarquer que certaines étaient à l'envers (objectif qui regarde le circuit) et d'autres qui ont la vidéo à 90° (celle à ouverture 160°) en revanche, je n'ai pas constaté de différence avec une caméra capable de voir en infrarouge 850NM en dehors du fait qu'elle aussi avait une vidéo à 90°.

J'ai changé les paramètres pour recevoir des mails en cas de questions ici, comme cela je serai plus réactif aux questions posées.

Bonjour

Le GPIO en question était mentioné pour évoquer le risque de conflit avec la carte SD en raison de la conception de la carte ESP32-CAM

Comme je ne me sert pas de la carte SD je n'ai pas testé si cela entrait en conflit.
Mais je ne suis pas sûr que cela soit gênant, enfin bon c'est à tester tout de même.

Bonjour JLuc,

Pour faire le menu en Français, j'aimerai savoir avec quoi tu a travaillé le fichier camera_index.h.
Quel logiciel as tu utilisé ?

Moi j'utilise CyberChef en ligne, mais quand je remets le texte html compressé et que je lance le programme, je perds les accents du menu...

J'ai essayé de faire la même opération sans modifier quoique ce soit, et les accents perturbent l'apparence du menu (point ? à la place des caractères accentués...)

C'est pour cela que j'aimerais savoir quel logiciel tu as utilisé, (pour ma culture générale :slight_smile: ) stp

Copie d'écran jointe

Merci d'avance

ArduiCool: Personnellement, j'utilise un logiciel qui s'appelle "EditPlus" depuis des années qui est bien fait mais c'est devenu un shareware depuis pas mal de temps maintenant, mais j'y suis habitué et il est très souple.
Qui est pas mal non plus et suffisamment souple aussi c'est "Notepad++" qui est gratuit et je le mets au même rang qu'EditPlus.

Qui est pas mal non plus et suffisamment souple aussi c'est "Notepad++" qui est gratuit et je le mets au même rang qu'EditPlus.

Merci, je ne connais pas du tout, donc je vais me pencher sur la méthode :slight_smile: ...

il faut sans doute un éditeur qui gère l'UTF8.

C'est le cas des 2 éditeurs que j'ai cité, en effet il faut utiliser le format UTF8

Sans doute de très bons logiciels, mais pour moi qui ai l'habitude d'utiliser CyberChef, j'ai choisi de chercher plutôt que d'essayer de me familiariser avec ces logiciels nouveaux pour moi...

Je te remercie bien sûr JLuc de m'avoir proposer tes idées, c'est sympa :slight_smile:

Donc en creusant la "chose", je me suis rappelé qu'en Anglais les caractères accentués n'existaient pas.

En cherchant sur le net, j'ai trouvé cela qui m'a bien servi :

Et évidement, la solution devenait simple.......

Sans doute cela va paraître évident pour les connaisseurs, mais pour moi qui est vraiment novice en html, ce n'était pas si ... évident :confused:

Donc en remplaçant, par exemple la lettre "è", par "è" le tour était joué :slight_smile:

Soit, dans ton programme (camera_index.h) :
"Bascule paramètres OV2640" devient " Bascule paramètres OV2640"

Si cela peut aider modestement les personnes, qui comme moi, ne connaissent que très peu le langage html.......

Merci encore JLuc

Oui en utilisant le codage des caractères spéciaux tu peux y arriver aussi, mais cela veut dire que la page n'est pas au format UTF8 qui devient un standard sur le net et tu as raison, ce qui est évident pour ceux qui savent ne l'est pas forcément pour tous, et j'irai plus loin en citant ce vieil adage "c'est en forgeant qu'on devient forgeron". C'est une bonne utilisation et il m'arrive de les utiliser aussi sur mes pages web. Bonne continuation et si je peux aider n'hésites pas.

Bingo JLuc,

En fait avec CyberChef, on peut choisir le format UTF8 dans encode text, et TOUT marche parfaitement, les accents sont bien là :slight_smile: :slight_smile: :slight_smile:

Il y a encore quelques jours je ne connaissais pas tous ces formats possibles, et grâce à toi je dormirai un peu moins bête ce soir, hi hi

Merci encore :slight_smile:

ArduiCool: Très heureux que tu ais pu arriver à tes fins...

ArduiCool:
En fait avec CyberChef, on peut choisir le format UTF8 dans encode text

ben voilà :slight_smile: