Skip to main content

Pilotage TV avec Raspberry Pi

1. Présentation du projet

Ce système permet de transformer une TV connectée à un Raspberry Pi 4B en un support de communication dynamique.

  • Objectif : Diffuser en boucle des médias (images/vidéos) gérés à distance.

  • Principe : Un dossier partagé sur le réseau permet de mettre à jour les contenus, tandis qu'un script lance automatiquement la lecture sur la TV.


2. Architecture Technique

Le système repose sur trois briques logicielles principales :

  1. Samba (SMB) : Pour le partage de fichiers entre le Pi et les ordinateurs du lab (Mac/PC).

  2. VLC (cvlc) : Pour le moteur de rendu vidéo et image en mode "headless" (sans interface).

  3. Autostart (LXDE) : Pour garantir que l'affichage se lance dès que le Pi est sous tension.


3. Mise en place du Partage Réseau (Samba)

Pour permettre aux collaborateurs de déposer des fichiers sans utiliser de clé USB.

Installation

Bash
sudo apt update && sudo apt install samba samba-common-bin -y

Configuration

Le dossier de destination est déclaré dans /etc/samba/smb.conf.

  • Droits : Le dossier doit avoir des permissions de lecture/écriture suffisantes (chmod 777 ou gestion par groupe).

  • Accès : Un utilisateur Samba doit être créé avec sudo smbpasswd -a [utilisateur].


4. Configuration de l'Affichage (VLC)

Nous utilisons la version "ligne de commande" de VLC pour piloter la sortie HDMI.

Paramètres de lecture

La commande de base utilisée est : cvlc -f --loop --no-video-title-show --image-duration 5 /chemin/vers/medias/*

  • -f : Mode plein écran.

  • --loop : Recommence au début une fois la playlist terminée.

  • --no-video-title-show : Masque le nom du fichier au début de la lecture.

  • * : Force VLC à charger tous les fichiers présents dans le dossier.

Variables d'environnement

Puisque la commande est lancée via SSH ou au démarrage, il est crucial de spécifier l'écran de sortie : DISPLAY=:0 (cible l'écran physique branché en HDMI).


5. Automatisation au démarrage

Pour rendre le système autonome, un fichier .desktop est créé dans le répertoire de l'utilisateur : ~/.config/autostart/diaporama.desktop

Ce fichier ordonne au système de lancer la commande VLC dès que la session graphique est prête.


6. Pilotage à distance

Commandes Terminal (SSH)

Des alias peuvent être configurés dans le fichier .bashrc pour simplifier la maintenance :

  • startshow : Relance le processus en arrière-plan avec nohup.

  • stopshow : Arrête la diffusion avec pkill vlc.

  • statusshow : Vérifie si le processus est actif.

Scripts de bureau (Mac/Windows)

Il est possible de créer des fichiers exécutables (.command sur Mac ou .bat sur Windows) qui envoient la commande de lancement via SSH.

  • Note : L'utilisation de clés SSH (ssh-copy-id) est recommandée pour éviter la saisie répétitive du mot de passe.


7. Maintenance & Dépannage

  • L'heure n'est pas correcte : Le Pi n'ayant pas de pile interne, il se synchronise via NTP (Internet). Si hors-ligne, utiliser sudo date [MMDDhhmmYYYY].

  • Écran noir : Vérifier que le "Screen Blanking" est désactivé dans les préférences du Raspberry Pi (Display).

  • Processus bloqué : Utiliser pkill vlc pour réinitialiser l'affichage.