[TUTO] Caméra à focale fixe basée sur ESP32

Merci pour ce retour !

Bonjour, je viens de faire de nouveaux essais avec l’accès à distance (hors réseau local) à un esp32.
Comme indiqué par Theduck38 le 6/9*20 j’ai attribué une IP statique à l’esp par la Livebox, puis j’ai crée une règle pour indiquer que pour une port externe 8685 il fallait renvoyer sur le port interne 80.
Cela sans modifier le programme de l’esp :
07:26:17.883 → Démarrage du serveur Web sur le port: ‹ 80 ›
07:26:17.883 → Démarrage du serveur Vidéo sur le port ‹ 81 ›
07:26:17.883 → Démarrage du controle Vidéo sur le port ‹ 32769 ›
07:26:17.883 → Camera prête! Utiliser l’adresse ‹ http://192.168.1.117 › pour se connecter.

Tout fonctionne normalement depuis le réseau local.
Depuis internet seule la vidéo ne fonctionne pas (capture, led,…sont Ok)
L’appui sur le bouton de démarrage de la vidéo n’est même pas vu par le moniteur série …
Y a t-il un paramétrage particulier dans la box à appliquer (autre port à rediriger)? Ou dans le programme de l’esp32?

Bref arrivez-vous à accéder depuis l’extérieur de votre réseau local à la fonction vidéo de vos ESP?
Merci
J’ai crée les règles suivantes (seule celle de redirection du port 8685 externe vers le port 80 interne est utile)


J’ai aussi essayé la redirection du port 8685 vers le port 80 en UDP et TCP cela ne change rien!

Hello,

Je te répète ce que je t’ai dit plus haut : oui ça fonctionne avec le code fourni dans mon tuto. J’arrive sans problème à streamer la vidéo sur mon téléphone en 4G.
Encore une fois, ça dépend de comment est fait le code que tu utilises à la place. Il est même possible qu’il interdise tout bonnement une connexion externe parce qu’il filtre les IP locales, ou qu’il faille un https, ou autre…

Commence par regarder ce qu’il y a dans la barre d’adresse de ton navigateur lorsque la vidéo est visible en réseau local. Ça donnera peut-être une indication sur le problème.

Merci pour toute ton aide .
L’adresse en accès depuis le réseau local est juste l’adresse IP de l’esp32: http://192.168.1.117/, il n’a aucun renvoi vers une autre adresse en cas de lecture ou pas de la vidéo.
Si vraiment avec ce code actuel je n’y arrive pas j’essayerais le tien, mais il me faut le modifier pour supprimer tout ce qui est reconnaissance faciale car c’est pour mettre dans des ruches…
Et du coup il va falloir que je me le réapproprie se nouveau code et vu mon niveau…
Merci

Pourquoi parles tu de reconnaissance faciale ? Le code que je fournis (grandement amélioré par @olive) ne gère pas cela… On en a parlé dans un des posts, mais c’est resté une plaisanterie.

Le code actuel gère un serveur Web, un serveur rtsp, la configuration des AP wifi, la capacité à basculer la led de l’ESP on/off, la capacité à basculer une sortie inutilisée on/off.
Voir ici pour le détail en image :

Bonjour, je viens de mettre la version 1.81 dans un esp32.
Ce programme fonctionne effectivement très bien, on peut accéder à la vidéo depuis internet.

Néanmoins pour l’usage que je souhaite faire de ce programme :utilisation pour surveiller des ruches par des apiculteurs mais non chevronnés en informatique il est un peu pas assez interface humaine… Il me faut pouvoir aussi régler l’intensité de la led (pas juste 0-100%) pour cause de reflet sur la vitre qui sépare les abeilles de la caméra…
Je mets un lien de l’état actuel de mon projet si quelqu’un veut bien essayer de voir d’ou provient se problème d’accès à la vidéo depuis internet je lui serait extrêmement reconnaissant. Merci d’avance à toutes les aides possibles!
PS il s’agit du projet en rar dont j’ai changé le type pour pouvoir le poster.sur drive (tout cela car je n’arrive pas encore à joindre des fichiers dans mes post sur le site… désolé)

Le rar est restreint en accès…

Tu ne peux joindre aucun fichier, pas même des images ou des pdf ?

Si tu as le droit aux images / pdf:
Tu zippes tout dans un seul fichier.
Tu renommes l’extension en .pdf.
Tu postes dans le fil ton .pdf, en précisant que c’est un zip.

Désolé je ne peux rien poster d’autres que des photos et j’ai essayé de changer le type en .jpg mais le logiciel veut l’afficher et il n’y arrive pas du coup (ce qui est normal…)
Le site ne m’autorise pas les pdf…
Mais si tu veux bien tu récupérer à partir de mon lien google drive le fichier rar et mettre le code source pour moi sur le site…

Merci

Normalement si je n’ai pas « merdu », je t’ai donné l’accès, je pensais qu’il était en accès libre…

En local 192.168.1.117:81= cette url n’existe pas
192.168.1.117:80 ou 192.168.1.117 = affichage de la page web de l’esp 32
et 192.168.1.117:32769 = ce site est inaccessible.

le moniteur série donne ceci au lancement de l’esp :

17:05:19.464 → esp32-cam: ESP32 caméra 1
17:05:19.464 → Construction du code : Sep 19 2020 @ 17:04:08
17:05:20.747 → …
17:05:21.762 → WiFi connecté
17:05:21.762 →
17:05:22.574 → Démarrage du serveur Web sur le port: ‹ 80 ›
17:05:22.574 → Démarrage du serveur Vidéo sur le port ‹ 81 ›
17:05:22.574 → Démarrage du controle Vidéo sur le port ‹ 32769 ›
17:05:22.574 → Camera prête! Utiliser l’adresse 'http://192.168.1.117' pour se connecter
Merci
PS: en temps que nouvel utilisateur je ne peux même pas mettre plus de 2 liens dans un même message et j’ai modifié ce message car je ne peux pas non plus écrire plus de 3 nouveaux messages par jours… dur toutes ces limitations

J’ai demandé l’accès au Rar, email « hglider »…

Si tu tapes (en local) l’adresse ip de ton ESP32 avec :81 (port 81) après, tu obtiens quoi ?

Voilà la totalité du code que tu utilises. Après, je ne comprends pas en détails ce que ça fait…
camera-plusv3-sans_reconnaissance_faciale.7z.pdf (14,0 Ko)

Peut-être que si tu demandes gentiment à @olive, il te rajoutera un pwm réglable via l’interface sur la led…

1 « J'aime »

Le lien du boîtier 3D sur Thingiverse était HS… j’ai donc fourni les modèles 3D dans le fil.

1 « J'aime »

Résolu ==> Bibliotheques mal placées.

Bonjour a tous,
Je ne m’en sors pas.
J’ai lu et relu ce post et je ne vois pas ou j’ai fait une erreur :
J’ai toujours ce message a la « verification » .

ESP32_RTSP_Cam_v1.8:58:91: fatal error: ESPAsyncWebServer.h: No such file or directory

compilation terminated.
Le fichier ESPAsyncWebServer.h se trouve pourtant bien dans la dir :

C:\Users\Michel\Documents\Arduino\libraries\ESP32_RTSP_Cam_v1.8\lib\ESPAsyncWebServer-master\src\ESPAsyncWebServer.h

Si quelqu’un a une idée.
Merci


Arduino : 1.8.13 (Windows 7), Carte : « ESP32 Wrover Module, Huge APP (3MB No OTA/1MB SPIFFS), QIO, 80MHz, 921600, None »

ESP32_RTSP_Cam_v1.8:58:91: fatal error: ESPAsyncWebServer.h: No such file or directory

compilation terminated.

Plusieurs bibliothèque trouvées pour « WiFi.h »

Utilisé : C:\Users\Michel\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi

Non utilisé : C:\Program Files (x86)\Arduino\libraries\WiFi

exit status 1

ESPAsyncWebServer.h: No such file or directory

Résolu ==> Bibliotheques mal placées.

J’ai essayé sur plusieurs PC Windows 7, Windows 10 j’ai les mêmes erreurs. :frowning_face:
Merci de m’aider.
PS: J’ai suivi a la lettre le début du post expliqué par « Theduck38 »

J’arrive trop tard alors… bon, tant mieux si ça marche ! N’hésites pas si tu es bloqué.

Si cela intéresse quelqu’un j’ai enfin réussis à accéder à l’esp 32CAM aussi bien en local que depuis internet monde!
Modification sur la création de la chaine de l’adresse de la vidéo ( sprintf(streamURL, "http://%s:%d/", MonAdresseIP,streamPort); au lieu de sprintf(streamURL, "http://%d.%d.%d.%d:%d/", ip[0], ip[1], ip[2], ip[3], streamPort);

Merci à tous ceux qui m’ont apporté de l’aide!
A+

Bonjour à tous,
tout d’abord, un grand bravo pour ce que vous faites… après avoir un peu galéré pour implanter le programme dans l’ESP, ça marche nickel.

N’y connaissant rien en programmation, et ayant pas mal cherché sur le net mon « Graal » ESPCAM je me tourne vers vous pour espérer que vous vouliez bien vous pencher sur ma demande.

Donc, à l’instar de Jaegermaster, serait il possible de pouvoir modifier les paramètres directement sur le serveur web (comme sur le fichier d’exemple fourni dans l’IDE d’arduino)?

De plus, j’aimerai pouvoir avoir une mise en sommeil de l’ESP (deepsleep) qui se déclencherai avec un capteur PIR (prise de photo/stream).
Je crois que le GPIO 13 est libre et ce serai pas mal de pouvoir y brancher ce capteur.
J’ai vu pas mal de tuto qui l’incluent mais comme je n’y comprends rien en programmation (et l’anglais j’ai énomément de mal), je ne vois pas comment s’articule tout ça et intégrer les bouts de code dans le programme.

Voilà, je sais que c’est une très grosse demande que je vous fais mais ce serai vraiment super si quelqu’un de la communauté voulais bien y consacrer du temps.

Merci à vous

Perso je n’en n’ai pas la capacité en termes de programmation.

Cependant, une question : pourquoi une mise en sommeil ? Ce n’est pas la consommation de l’ESP + CAM sur secteur qui a un quelconque impact sur ta note d’électricité (même si tu en mets 5 ou 10). En revanche, ce n’est pas viable d’en mettre un sur pile car il consomme trop pour une pile classique.
De ce que j’ai pu lire, la mise en sommeil n’est pas très simple à maîtriser… tu vas juste générer une tonne d’ennuis et de mise au point à faire pour gagner pas grand chose.

Quant à la prise de photo ou stream, ça ne peut être que via le serveur domotique pour pouvoir stocker l’information quelque part. L’ESP n’en n’est pas capable, vu le peu d’espace dont il dispose. Donc ta demande se résume à appeler une url (qui déclenchera un scénario sur Jeedom) depuis l’ESP chaque fois que le PIR s’allume ou s’éteint (et Jeedom collecte le flux et le stocke). Pour ça il doit y avoir des tutos avec du code sur le net.

Hello @Theduck38,
Merci beaucoup pour ton travail sur l’ESP32CAM c’est très intéressant !

Pour le PWM sur la LED, voici un tuto qui donne une idée du fonctionnement : https://randomnerdtutorials.com/esp32-pwm-arduino-ide/

Du coup je l’ai implémenté sur mon ESP32 de la façon suivante :

// Tout dans setup
ledcSetup(4, 1000, 8);         // channel, freq, resolution
ledcAttachPin(LED_BUILTIN, 4); // GPIO, channel
ledcWrite(4, 0);               // channel, value [0-255]

serverasync.on("/led/off", HTTP_ANY, [](AsyncWebServerRequest *request){
 request->send(200, "text/plain", "ok");
 ledcWrite(4, 0);
 Serial.println("LED FULL OFF");
});
serverasync.on("/led/on", HTTP_ANY, [](AsyncWebServerRequest *request){
 request->send(200, "text/plain", "ok");
 ledcWrite(4, 255);
 Serial.println("LED FULL ON");
});
serverasync.on("/led/set", HTTP_ANY, [](AsyncWebServerRequest *request){
 if(request->hasParam("val")) {
  int i = max(0,min(255, atoi(request->arg("val").c_str())))
  ledcWrite(4, i);
  request->send(200, "text/plain", String("ok -> ") + i);
  Serial.print("LED SET ");
  Serial.println(i);
 } else {
  request->send(200, "text/plain", "fail: missing 'val' parameter");
  Serial.println("LED SET FAILED");
 }
});

Hope it helps :wink:

P.S.: En effet, mettre l’ESP en deepsleep pour ce genre d’application c’est pas vraiment faisable…

1 « J'aime »

Bonjour,
je viens de me rendre compte que je ne m’étais pas abonné à ce fil… et n’avais pas vu ta réponse…
En fait, je souhaite mettre la CAM devant ma porte où je n’ai pas besoin qu’elle tourne en permanence. J’ai dans l’idée de coupler l’ESP avec un détecteur PIR qui ne l’allume qu’en cas de présence…J’utilise en parallèle motioneye avec quand même pas mal de faux positifs (surtout que ma rue est un peu passante)… je me disais que ça pouvait en atténuer cela.