Caméra de recul avec affichage intérieur véhicule + accès à distance

Bonjour à vous !

Je suis actuellement en recherche d’idée pour un projet de caméra sur véhicule et comme ça fait bien longtemps que je n’ai pas réalisé de choses avec un RPI, je sèche un peu… :sweat_smile:


LE PROJET

Sur un véhicule, gros pickup américain avec cellule de camping, je souhaite mettre en place des caméras pour aider au recul et, comme c’est un système personnalisé, ajouter une fonction de surveillance (vu que ça va filmer la porte de la cellule depuis le haut).
Ayant déjà testé plein de modèles standard de caméra de recul, tout autant qualitatives qu’achetées sur AliExpress, et que rien ne me convient, j’ai donc décidé de créer mon propre système avec les objectifs suivants:

  • 3 caméras en simultané avec enregistrement lors de détection mouvement
  • peu de câblage
  • écran fixe dans le véhicule pour afficher les cam
  • accès à distance aux caméras via internet

Dans ce véhicule j’ai déjà:

  • réseau LAN avec accès internet 4G
  • 230V ou batterie 12v (panneau solaire)

Mon idée de base était de faire un projet avec des petites caméras IP en PoE, un petit NAS, enfin un setup de maison quoi… Mais avec un RPI je suis sûr de pouvoir faire ça de manière plus ergonomique et compacte.


MES SOUCIS/QUESTIONS

Je sèche un peu sur la manière de faire. Serait-ce mieux de fabriquer 3 petits boitiers étanches avec à chaque fois un rpi et une pi cam, et connecter ces 3 rpi sur un autre « master » qui gère l’affichage en direct + NVR ?
Ou alors utiliser un seul rpi et des caméras IP en wifi faites maison ?

Avez-vous des modèles de caméras que je pourrais intégrer dans un boitier custom à conseiller ?
On trouve pléthore de produits mais si vous avez des bonnes marques à recommander je suis preneur

Quel soft utiliseriez-vous pour gérer le NVR, l’affichage direct dans le véhicule et l’accès à distance, j’ai vu souvent passer Motion, mais pourrait-il réaliser ces trois fonctions ?

Merci d’avance à ceux qui prendront le temps de lire et m’aider !


J’essaierai de vous détailler au fur et à mesure ce projet, étant donné que je n’ai pas trouvé grand chose en projet similaire ça pourra peut-être aider d’autres personnes :grin:

Vu que les caméras sont pour un véhicule, surtout celle du recul, le lag (délais) seras a éviter. C’est pour ça que la caméra analogique sont fortement conseillé.

Je sais que la qualité varie beaucoup, mais elles sont bien conçu quand même. Pour l’enregistrement, tu peux passer via par un USB EasyCap pour prendre la vidéo, tu peux aussi ajouter un audio, comme un microphone intérieur. Tu n’as qu’a séparer avec un « Y » le câble vidéo RCA de la caméra.

Après pour les autres caméras, tu peux faire la même chose ou passer en caméra PI avec un RPi dédié.

Vu les restrictions technique, un RPi peut n’avoir qu’une seul caméra, même chose en USB, mais un RPi peux avoir une caméra Pi + un USB, mais il faut qu’il soit puissant (CPU / Ram).

Tu as besoin d’un serveur vidéo, pour centraliser les streams (accès distant). Soit yu utilise FFMpeg/FFServer (old avec manip mais plus légé), ou via Motion Eye, qui est un OS pour la vidéo surveillance, avec le contrôle de la détection de mouvement, enregistrement, etc… Je crois que tu serais bien avec sur un RPi 4.

La tu as un problème, c’est le LAG, car tous ce qui passe via le stream aura un décallage, plus tu passe par des système (modèle du RPi, réseau, conversions/CPU…), plus tu vas en créer. Alors pour ton usage « local », tu dois utiliser les moyens « à la source ».

Comme dis pour la caméra de recul, l’analogique est le plus fiable. Ça implique pas de conversion ou autre « numérique », c’est brut. Juste le fait de passer via USB peut créer un lag, alors il faut prendre le signal en RCA. Pour l’affichage, tu peux utiliser un écran à multiple entrées, des modèles de vidéo surveillance.

Si tu passe via les Caméra PI, il y a moyen d’avoir l’affichage direct ET d’envoyer le stream au serveur centrale. Je n’ai pas la commande sous la main mais avec je crois les outils de base de la caméra Pi, il est possible d’afficher le Preview en Fullscreen (même en Raspbian Lite, en mode console seul) et que cette source soit envoyé à FFMpeg pour le serveur central.

J’ai malheureusement pas les codes avec moi, mais je sais que c’est possible, car j’ai fais ça avec un RPi 0 pour un projet de Dashcam.

Le projet n’est pas stable et mes résultats avec un PRi 0 est affreux. Perso je ne voulais pas mettre plus que ce modèle de RPi, alors j’ai abandonné.

Alors en résumé;

  • Caméra en RCA Analogique, avec un « Y » pour envoyer vers l’écran « local » et un RPi + USB easyCap pour envoyer vers le « serveur central »
  • Et/ou caméra Pi avec sortie « preview » sur le HDMI et encodage vers le « server central »
  • Un serveur central « Motion Eye » qui recois et enregistre les streams, paratge à distance, etc…
  • Un Écran TV « surveillance » avec multiple entrée simultanés, avec entrée HDMI ou RCA selon la configuration du projet choisi.

Tu auras besoin de baucoup de batterie, alors un petit calcul…

  • Caméra analogique c’est 100~250mA + RPi0 ~250mA
  • Caméra Pi + RPi c’est ~250mA (RPi0) à 1.5~2.5A pour un RPi au format « B »
  • RPi 4 avec Motion Eye dans les 1.5~2.5A sur
  • Écran à affichage multiple c’est dans les 2~3A

Alors en vite, vite;

  • Écran multiple; 3A
  • Caméras; chaque caméra c’est entre 250mA à 2.5A, alors si tu en as 3, tu consomme entre 750mA à 7.5A
  • Le serveur c’est 2.5A

Alors ont tourne entre 6.25A minimum à 13A en consommation, c’est énorme. Le laisser tourner 24/7 demandera une alimentation séparé et une méthode de recharge fiable, soit via l’alternateur et des panneaux solaire.

C’est l’une des raison qu’il n’existe pas de vidéo surveillance pour les voiture avec accès distant.

Pour éviter ça, il faudra allez plus loin, avec une programmation plus basique qu’une Raspberry Pi, car démarrer un RPi sur le logiciel demande un certains temps. Par exemple un PRi 0 c’est 30~60s en démarrage complet.tu peux couper ça un peux avec des modif et un RPi plus puissant, mais reste que c’est pas auto, alors utiliser des relays et des détecteur IR de mouvement (comme sur les lampe extérieur) pour partir l’enregistrement est peut réalisable avec des RPi.

Il faut de quoi de plus simple, codé direct qui va permettre de rester en « stand by », ce réveiller rapidement et démarrer un enregistrement. Qui peut également au besoin être réveillé par le réseau pour permettre le visionnement ponctuel à distance. Mais la ont tombe plus dans du Arduino, microPi et encore plus basique.

C’est sur que d’avoir un système complet de vidéo avec un RPi est possible, avec certaines limites, et serais vraiment intéressant, mais même moi j’ai abandonné cette idée car la demande en alimentation et le temps de démarrage sont trop exigent pour un véhicule, mais faut die que j’ai pas un Pickup Américain avec une batterie surpuissante (je connais, je suis au Québec), je voulais également avoir des stats OBD2 avec un RPi, mais l’usage de Bluetooth d’écran, programmation etc… ma refroidi.


Bon c’est un peu « lancé » comme réponse, mais j’ai un peu de misère a bien structurer ma réponse selon les points. Ce type de projet implique beaucoup; matériel différent, limitation technique et monétaire, etc… Alors malgré que le concept soit simple, la réalisation est complexe.


Quelques explications sur mon expérience.

J’ai actuellement 6 caméras de surveillances dans mon appartement. Deux sont sur un PC, qui sont analogique et passe par deux TV Tuner pour la capture. C’est également ce PC qui sert de serveur central. Il est monté avec FFServer (obselete, je sais) . J’ai une caméra IP Wifi. Le serveur central s’occupe dans ce cas de capturer le stream et de le réenvoyer vers le serveur central FFServer.

J’ai 2 caméras Pi sur des RPi 0 W v1. Avec Raspbian Lite, il capture et envoie via le Wifi. J’ai un lag de 1~5s avec les caméra (très variable). Et j’ai une caméra USB sur mon serveur NAS que je me suis monté.

Je dois changer de serveur central car par erreur, je pris un PC avec une carte interne de 100Mbps au lieu de 1GBps, je sature vite quand je désire visionner les caméra depuis plus d’une source. Pour assurer une fiabilité, je sauvegarde le stream par capture de l’image « preview » sur le FFServer au 2~5sec depuis un serveur extérieur, qui a chaque jour regroupe les images pour créer une vidéo.

Mais cette option n’est pas intéressante pour ton projet.

J’utilise le format MJpeg, qui est une source déjà « ready » sur tous les caméras que j’ai, ceci évite un encodage, el FFServer sert alors que de distributeur direct, sans encodage. Passer au H.264 par exemple exigerais de la compression qui demanderais beaucoup au CPU. Certain appareil serais en mesure de le faire, mais les RPi0 par exemple aurais encore plus de lag.

Tous les stream de chaque appareil passe par une capture via FFMpeg vers le serveur central par réseau.


Dans mon projet de Dashcam, j’ai vu la limite d’encodage des RPi0. Sache déjà que j’ai mes licences activé pour utiliser l’accélération d’encodage H.264 sur mes RPi. Le gain est faible mais la (5~10% pour l’encodage, 25~50% en lecture). ET j’ai eu un lag énorme. C’est bien quelques secondes, mais vi le preview lag, et l’enregistrement rencontre des erreurs. Le premier et la séparation par segment de 3 minutes (180s), aucun des segment était juste, j’avais des encodage de 5 minutes, des fois de 2 minutes, des pause sur des frame long, des erreur d’encodage (artefact de groupe de pixel qui donne l’effet fantôme), des lenteur après un certain temps sur la réaction des action boutons. J’étais sous Raspbian Lite, sans réseau. Le démarrage était de ~45 secondes. Trop long pour un usage en Dashcam, j’ai abandonné. Sortie HDMI désactivé, sortie en RCA activé en 480x320px. Mais le Preview était très bon, très peux de lag, et sans enregistrement il serait fluide.


La solution super simple; le système de vidéo surveillance de maison.

Ça parais idiot mais pas tant que ça.
Déjà, tu as des caméra fournis et un nombre d’entrée. Soit 4 ou 8. Et les terminaux sont souvent fournis avec un disque dur pour l’enregistrement, alors ceci est réglé.

Chaque caméra est connecté au système, et l’affichage depuis ce système terminal est déjà compatible pour du multi sources. Il suffit que d’alimenter les caméra sur le circuit 12V.

Tu n’aurais qu’a démonter les caméra de leur coque pour les intégrer au véhicule. Avec ou sans leur lumière IR.

C’est la solution la plus simple car elle inclus déjà ce que tu cherche et a été conçu pour ça.

  • Accès distant
  • Enregistrement
  • Lecture en direct
  • Multi sources

Tu peux t’en sortir en dessous des 13A, voir en dessous de 7A.

1 « J'aime »

Ah oui, merci énormément pour cette réponse très complète et ton retour d’expérience !

Effectivement, la consommation est assez conséquente, ça me refroidit aussi pas mal, je n’avais pas encore regardé ce point la (j’ai tellement l’habitude de travailler en 230AC avec des puissances minimes…)

Du coup je vais sûrement partir avec mon idée de base comme tu le mentionnes aussi avec un système simple déjà existant.
Je garde quand même l’idée dans un coin de la tête si un jour j’ai du temps à perdre pour réfléchir pour faire ça, en limitant les contraintes de la puissance et de la latence.
Peut-être qu’en ayant un RPi qui traite l’image de la cam recul en direct sur un écran et un système annexe avec les cams annexes aussi sur cet écran ?
On verra bien, si je trouve quelque chose je ferai une update ici !

Encore merci pour ta réponse !