BerryConnect!
Par Adrien, pendant la sixième édition du Tremplin Numérique des Petits Débrouillards Grand Ouest (à Rennes).
C'est déroulé du lundi 17 au vendredi 28 mars 2025.
Projet personnel visant à allumer mon ordinateur à distance, même par internet avec deux méthodes, dont une plus difficle. Projet accompli en une semaine et demi, conception d'une boite en 3D avec le temps restant.
Sommaire
[masquer]Informations du projet
Lieu
Le projet c'est déroulé à 3 endroits différents :
- Dans la salle de formation, là où je travaillais la plus part du temps
- Chez moi, pour mettre au points les paramètre du réseau local, auquel je n'ai pas accès dans la salle de formation
- Dans le FabLab des Petits Débrouillards, pour l'impression en 3D de la boite
Matériel requis
- Terminal d'accès à distance (ordinateur, console de jeu portable, téléphone).
- L'ordinateur de jeu ou serveur.
- Raspberry Pi
- Câble Ethernet (RJ45).
Autre :
Il faut deux connexions à Internet pour tester la fonctionnalité sur des réseaux locaux différents (un simple partage de connexion en plus d'une box suffit)
Logiciel utilisés
- Apollo - Application de partage d'écran à distance. À utiliser avec une application de visualisation d'écran à distance.
- Moonlight - Application de visualisation d'écran à distance. À utiliser avec une application de partage d'écran à distance.
- RealVNC - Application de visualisation d'écran sur réseau local en utilisant le protocol "VNC".
- WSL - Machine virtuelle linux sur windows. Ce n'est pas obligatoire.
- AnyDesk - Application de partage et visualisation d'écran à distance. Utilisé finalement pour ses nombreux avantages. Ce n'est pas obligatoire mais, recommendé.
- TinkerCad - Conception d'objets en 3D.
- BambuStudio - Logiciel pour l'utilisation d'imprimantes 3D BambuLab, permettant la transformation de fichier 3D (stl ici) en fichier par couches (gcode).
Compétences utilisées
- Unix Shell
- Utilisation et confirguration Raspberry Pi
- Utilisation et configuration Windows
- Configuration d'un réseau
- Configuration BIOS/UEFI
- Conception 3D + Impression
Préparation du projet
Idée du projet
J'ai d'abord beaucoup réfléchit à mon projet et ce que je souhaitais faire comme projet personnel.
Comme j'utilise mon ordinateur portable de plus de 10 ans pour la formation, il est parfois difficile de jouer pendant les pauses avec du au manque de puissance. De plus faire un projet sur ce thème me permetterais de le mettre en avant dans mon projet professionnel axé sur les systèmes et réseaux. J'ai donc fais des recherches, notamment en regardant des vidéos en anglais sur youtube sur si c'était possible comme projet, d'après mes recherches cela l'était.
Cahier des charges
J'ai alors élboré un cahier des charges sur canva avec l'aide des formateurs. J'ai fini par utiliser certaines solutions différentes donc il n'a pas complètement été suvit.
Fonctionnement du projet
Le fonctionnement initial comme il est noté dans le cahier des charges est le suivant :
Allumage
Utiliser un circuit électrique qui connecte le bouton d'allumage de l'ordinateur au Raspberry Pi pour envoyer une signal d'allumage.
J'ai finalement changer pour l'utilisation du "Wake on LAN" une méthode permettant à la carte réseau d'un ordinateur de rester allumée même quand ce dernier est éteint pour l'allumer en envoyer un message spécial dit "magic packet" sur à traver le réseau.
IP statique DHCP
Configurer des beaux DHCP statiques pour les adresses physiques du Raspberry Pi et de l'ordinateur de jeu.
Connexion Raspberry Pi
Configurer le Raspberry Pi de manière "headless" soit sans périphériques puis (pas du tout obligatoire mais je n'avais pas de périphériques à ma disposition), se connecter avec le protocol SSH (Secure Shell) au Raspberry Pi en ouvrant le port 22.
J'ai aussi finit par utiliser AnyDesk en plus car il existe une version pour Raspberry Pi qui facilite grandement la connexion, en plus d'apporter de la redondance avec une autre manière de se connecter au Raspberry. De plus, cela marche hors réseau local.
Connexion à l'ordinateur de jeu
Configurer l'ordinateur de jeu, installer Apollo puis ouvrir un port pour se connecter à l'ordinateur de jeu hors réseau local.
J'ai remarqué durant le projet que l'application utilisée, Apollo, propose des paramètrages UPnP qui ouvre les ports automtiquement si l'option est activé dans les paramètres du réseau local (box). Puis j'ai du configuré le Wake on LAN dans le BIOS et dans Windows car j'ai finalement utilisé cette option pour l'allumage
Création d'une boite
Création en 3D d'une boite pour accueillir le Raspberrry Pi.
Déroulement du projet
1ère étape
3jours
J'ai d'abord mis en place le Raspberry Pi, j'ai suivit un tutoriel vidéo[1] pour configuré le Raspberry Pi, pouvoir d'abord y accéder par réseau local en shell, puis en partage d'écran.
2ème étape
3 heures
J'ai ensuite paramètrer mon ordinteur de jeu/serveur pour activer le Wake on LAN, dans le BIOS et dans Windows en utilisant le tutoriel en pdf[2] de MSI le constructeur de ma carte mère car la carte réseau y est intégrée.
3ème étape
3 heures
J'ai passé l'après-midi chez moi pour paramètrer le serveur DHCP du réseau local pour configurer le Raspberry Pi et l'ordinateur de jeu/serveur avec une ipv4 statique. J'ai aussi eu le temps de commencer l'étape suivante.
4ème étape
2 jours
Tester le Wake on LAN en utilisant le Raspberry Pi pour allumer le serveur de jeu sur un réseau local. Cette étape à été la plus difficile car du aux limitations de la salle de formation, en effet sans pouvoir utiliser le paramètrage DHCP fait plus tôt j'ai du configuré sur les machines elles-même (Raspberry Pi et ordinateur de jeu/serveur) leur propres ips.
Cela n'est pas un problème en temps normal mais pas pour moi, je suis resté coincé pendant 12heures à chercher pourquoi le Wake on LAN ne marchait pas. J'ai essayé de corriger tous les paramètres, mettre à jour les drivers puis j'ai passé des heures sur des forums avec des problèmes similaire. Au final il s'avérait tout simplement que la commande que j'utilisait pour envoyer le message d'allumage utilisait l'adresse phyisique de la carte réseau à allumer (c'est obligatoire) mais aussi l'IPv4 (ce n'est pas obligatoire). Seulement comme les paramètres DHCP ne sont pas disponibles dans la salle de formation et que j'utilisait l'ordinateur de jeu lui-même pour choisir sa propre IP, j'utilisait cette dernière. Jusqu'au moment où je me suis posé la question : ce souvient-il de son IP auto-proclammée si jamais il est éteint? J'ai alors essayé avec une autre commande qui n'utilise pas l'IP mais l'interface réseau spécifique (ici ethernet car j'ai connecté l'ordinateur de jeu au raspberry par câble). Et à ma plus grande surprise cela à marché après 12 heures, cela ma redonné enormément de motivation!
5ème étape
4heures
J'ai ensuite installer AnyDesk sur le Raspberry Pi, j'ai choisit un mot de passe d'accès sans surveillance pour y accéder à tout moment avec le mot de passe choisit. J'ai fais la même chose pour l'ordinateur de jeu. Grâce à cela le projet marche déjà même par internet, j'ai pu tester avec les donées cellulaires (4G/5G) avec l'application sur téléphone et j'ai pu accéder au Raspberry Pi avec mon téléphone, pu envoyer la commande d'allumage puis accéder à mon ordinateur de jeu sur l'écran de connexion windows (du moment qu'AnyDesk est configuré pour se lancer au démarrage, cela devrait être le cas par défaut). J'ai eu des problèmes avec AnyDesk qui, après l'installation ne fonctionnait pas. Je suis partie le venredi soir pour le week-end sans avoir pu réglé le problème, mais quand je suis revenu le lundi matin, le logiciel fonctionnait parfaitement. Il suffisait juste de redémarrer le Raspberry Pi, mais je n'y avait pas pensé.
6ème étape
4heures
Installer Apollo sur l'ordinateur de jeu et Moonlight sur l'ordinateur de travail (dans mon cas), et toutes les machines qui vont pouvoir accéder à l'ordinateur de jeu en suivant un autre tutoriel vidéo[3], puis tester la fonctionnalité des logiciels pour s'assurer que le partage d'écran fonctionne.
7ème étape
5heures De retour chez moi j'ai commencé à faire le ménage dans les câbles du coin réseau et de la box pour y loger mon Raspberry Pi.
Ensuite, dans l'interface Apollo, activé le paramètrage UPnP pour pouvoir y accéder hors réseau local. J'ai suivit un tutoriel[4] qui propose aussi une solution utilisant un vpn. Il faut aussi vérifier que l'autorisation UPnP est activé dans les pramètres du réseau local (box internet).
Ensuite, toujours dans les pramètres du réseau local, ouvrir le port 22 (SSH) pour le Raspberry Pi pour y accéder depuis Internet. Cela permet même de l'utiliser depuis certaines applications mobiles avec des options SSH.
Boite BerryConnect
Une fois le projet complètement fonctionnel, je me suis atelé à l'aspect physique : la création d'une boite en impression 3D, sur tinkercad j'ai créer un partir d'un modèle de Raspberry Pi trouvé sur tinkercad en cherchant "Raspberry Pi 3" (mon modèle est un 3B+), malheureusement je ne peux pas dire de qui vient le modèle étant donné qu'il à beaucoup été copié mais j'ai modifié un problème sur le modèle original et j'ai vérifier les dimensions puis créer un noubeau modèle[5].
Je recommande aussi de faire une boite d'au moins 93x64mm même si les dimensions d'un Raspberry Pi sont de 85x56mm car il les ports sont plus grands et il faut non seulement quele Raspberry passe dans la boite, mais qu'il puisse aussi y rentrer, ce qui à causé problème pour mon premier modèle qui a assez de place pour le Raspberry mais pas assez pour l'y faire rentrer.
Il faut aussi ne pas oublier de faire un trou pour la carte microSD qui se trouve sous la carte électronique.
Il faut aussi penser à faire des trous d'aération pour laisser la chaleur s'échapper.
Avec tout cela j'ai créer un nouveau modèle[6]. Ce modèle contient des éléments esthétiques de différentes couleurs, pour les imprimer de différentes couleurs sans utiliser trop de filamment il faut faire plusieurs impressions différentes : la boite seule en noir, les portes seules en bleu, la grande étoile seule, le text "berryconnect" (que vous pouvez modifier) avec la décoration bleu en dessous, et finalement la petite étoile jaune seule.
Documentations
J'ai, tout au long du projet, créer une documentation[7], étape par étape, en même temps que mon avancement dans le projet.
De plus à la suite du projet j'ai créer cette page wiki pour mon projet.
Mes Impressions
J'ai beaucoup apprécié ce projet, à tel point que j'ai eu du mal à m'arrêter, il m'a beaucoup apporté et j'ai vraiment apprécié la liberté de travailler sur quelque chose que je choisit. Il m'aidera certainement à me mettre en avant pour mon projet professionnel.
Sources
- Aller ↑ Vidéo explicative (anglais) : Comment paramètrer un Raspberry Pi sans périphériques
- Aller ↑ Tutoriel pour les cartes mère MSI (anglais) : Comment activé le Wake on LAN
- Aller ↑ Vidéo tutoriel et explications des logiciels (anglais) : Installer Apollo et Moonlight
- Aller ↑ Vidéo tutoriel : Utilisé Moonlight et Apollo par Internet
- Aller ↑ Modèle TinkerCad : Raspberry Pi 3
- Aller ↑ Modèle TinkerCad : Boite BerryConnect
- Aller ↑ Dcoumentation : BerryConnect étape par étape