C'est le printemps ! Fleur.gif

BerryConnect! : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Ajout référence pdf documentation)
(Correction orthographe et ajoute modèle original Raspberry Pi)
 
Ligne 2 : Ligne 2 :
 
<br>C'est déroulé du lundi 17 au vendredi 28 mars 2025.
 
<br>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 personnel visant à allumer mon ordinateur à distance, même par Internet, avec deux méthodes, dont une plus difficile.
Projet accompli en une semaine et demi, conception d'une boite en 3D avec le temps restant.
+
Projet accompli en une semaine et demie, conception d'une boîte en 3D avec le temps restant.
  
==Informations du projet==
+
== Informations du projet ==
  
===Lieu===
+
=== Lieu ===
  
Le projet c'est déroulé à 3 endroits différents :
+
Le projet s'est déroulé à 3 endroits différents :
  
*Dans la salle de formation, là où je travaillais la plus part du temps
+
*Dans la salle de formation, là où je travaillais la plupart 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
+
*Chez moi, pour mettre au point les paramètres 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
+
*Dans le FabLab des Petits Débrouillards, pour l'impression en 3D de la boîte.
  
===Matériel requis===
+
=== Matériel requis ===
 
+
#Terminal d'accès à distance (ordinateur, console de jeu portable, téléphone).
# Terminal d'accès à distance (ordinateur, console de jeu portable, téléphone).
+
#L'ordinateur de jeu ou serveur.
# L'ordinateur de jeu ou serveur.
+
#Raspberry Pi
# Raspberry Pi
+
#Câble Ethernet (RJ45).
# Câble Ethernet (RJ45).
 
  
 
Autre :
 
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).
  
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)
+
=== Logiciels utilisés ===
 
+
#[https://github.com/ClassicOldSong/Apollo Apollo] - Application de partage d'écran à distance. À utiliser avec une application de visualisation d'écran à distance.
===Logiciel utilisés===
+
#[https://moonlight-stream.org/ Moonlight] - Application de visualisation d'écran à distance. À utiliser avec une application de partage d'écran à distance.
 
+
#[https://www.realvnc.com/en/connect/download/viewer/ RealVNC] - Application de visualisation d'écran sur réseau local en utilisant le protocole "VNC".
# [https://github.com/ClassicOldSong/Apollo Apollo] - Application de partage d'écran à distance. À utiliser avec une application de visualisation d'écran à distance.
+
#[https://learn.microsoft.com/en-us/windows/wsl/install WSL] - Machine virtuelle Linux sur Windows. Ce n'est pas obligatoire.
# [https://moonlight-stream.org/ Moonlight] - Application de visualisation d'écran à distance. À utiliser avec une application de partage d'écran à distance.
+
#[https://anydesk.com/en AnyDesk] - Application de partage et visualisation d'écran à distance. Utilisée finalement pour ses nombreux avantages. Ce n'est pas obligatoire mais recommandé.
# [https://www.realvnc.com/en/connect/download/viewer/ RealVNC] - Application de visualisation d'écran sur réseau local en utilisant le protocol "VNC".
 
# [https://learn.microsoft.com/en-us/windows/wsl/install WSL] - Machine virtuelle linux sur windows. Ce n'est pas obligatoire.
 
# [https://anydesk.com/en AnyDesk] - Application de partage et visualisation d'écran à distance. Utilisé finalement pour ses nombreux avantages. Ce n'est pas obligatoire mais, recommendé.
 
 
#[https://www.tinkercad.com TinkerCad] - Conception d'objets en 3D.
 
#[https://www.tinkercad.com TinkerCad] - Conception d'objets en 3D.
#[https://bambulab.com/fr/download/studio BambuStudio] - Logiciel pour l'utilisation d'imprimantes 3D BambuLab, permettant la transformation de fichier 3D (stl ici) en fichier par couches (gcode).
+
#[https://bambulab.com/fr/download/studio BambuStudio] - Logiciel pour l'utilisation d'imprimantes 3D BambuLab, permettant la transformation de fichiers 3D (stl ici) en fichiers par couches (gcode).
  
===Compétences utilisées===
+
=== Compétences utilisées ===
  
 
*Unix Shell
 
*Unix Shell
*Utilisation et confirguration Raspberry Pi
+
*Utilisation et configuration Raspberry Pi
 
*Utilisation et configuration Windows
 
*Utilisation et configuration Windows
 
*Configuration d'un réseau
 
*Configuration d'un réseau
Ligne 45 : Ligne 42 :
 
*Conception 3D + Impression
 
*Conception 3D + Impression
  
==Préparation du projet==
+
== Préparation du projet ==
  
===Idée 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.
+
J'ai d'abord beaucoup réfléchi à 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.
+
Comme j'utilise mon ordinateur portable de plus de 10 ans pour la formation, il est parfois difficile de jouer pendant les pauses en raison du manque de puissance. De plus, faire un projet sur ce thème me permettrait 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.
+
J'ai donc fait des recherches, notamment en regardant des vidéos en anglais sur YouTube sur si c'était possible comme projet, et d'après mes recherches, cela l'était.
  
===Cahier des charges===
+
=== Cahier des charges ===
  
J'ai alors élboré un [[:Fichier:Cahier_des_charges_Projet_Adrien_TN6.pdf|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.
+
J'ai alors élaboré un [[:Fichier:Cahier_des_charges_Projet_Adrien_TN6.pdf|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é suivi.
  
===Fonctionnement du projet===
+
=== Fonctionnement du projet ===
  
Le fonctionnement initial comme il est noté dans le cahier des charges est le suivant :
+
Le fonctionnement initial, comme il est noté dans le cahier des charges, est le suivant :
  
=====Allumage=====
+
===== Allumage =====
  
Utiliser un circuit électrique qui connecte le bouton d'allumage de l'ordinateur au Raspberry Pi pour envoyer une signal d'allumage.
+
Utiliser un circuit électrique qui connecte le bouton d'allumage de l'ordinateur au Raspberry Pi pour envoyer un 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.''
+
''J'ai finalement changé 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 envoyant un message spécial dit "magic packet" à travers le réseau.''
  
=====IP statique DHCP=====
+
===== IP statique DHCP =====
  
Configurer des beaux DHCP statiques pour les adresses physiques du Raspberry Pi et de l'ordinateur de jeu.
+
Configurer de beaux DHCP statiques pour les adresses physiques du Raspberry Pi et de l'ordinateur de jeu.
  
=====Connexion Raspberry Pi=====
+
===== 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.
+
Configurer le Raspberry Pi de manière "headless", c'est-à-dire sans périphériques (pas du tout obligatoire, mais je n'avais pas de périphériques à ma disposition), puis se connecter avec le protocole 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.''
+
''J'ai aussi fini 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 Pi. De plus, cela fonctionne hors réseau local.''
  
=====Connexion à l'ordinateur de jeu=====
+
===== 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.
+
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''
+
''J'ai remarqué durant le projet que l'application utilisée, Apollo, propose des paramétrages UPnP qui ouvrent les ports automatiquement si l'option est activée dans les paramètres du réseau local (box). Puis j'ai dû configurer 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 d'une boîte =====
  
Création en 3D d'une boite pour accueillir le Raspberrry Pi.
+
Création en 3D d'une boîte pour accueillir le Raspberry Pi.
  
==Déroulement du projet==
+
== Déroulement du projet ==
  
=====1ère étape=====
+
===== 1ère étape =====
''3jours''
+
''3 jours''
<br>J'ai d'abord mis en place le Raspberry Pi, j'ai suivit un tutoriel vidéo<ref>Vidéo explicative (anglais) : [https://www.youtube.com/watch?v=rGygESilg8w Comment paramètrer un Raspberry Pi sans périphériques]</ref> pour configuré le Raspberry Pi, pouvoir d'abord y accéder par réseau local en shell, puis en partage d'écran.
+
<br>J'ai d'abord mis en place le Raspberry Pi, j'ai suivi un tutoriel vidéo<ref>Vidéo explicative (anglais) : [https://www.youtube.com/watch?v=rGygESilg8w Comment paramétrer un Raspberry Pi sans périphériques]</ref> pour configurer le Raspberry Pi, pouvoir d'abord y accéder par réseau local en shell, puis en partage d'écran.
  
=====2ème étape=====
+
===== 2ème étape =====
 
''3 heures''
 
''3 heures''
<br>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<ref>Tutoriel pour les cartes mère MSI (anglais) : [https://www.msi.com/support/technical_details/MB_Wake_On_LAN Comment activé le Wake on LAN]</ref> de MSI le constructeur de ma carte mère car la carte réseau y est intégrée.
+
<br>J'ai par la suite paramétré mon ordinateur de jeu/serveur pour activer le Wake on LAN, dans le BIOS et dans Windows en utilisant le tutoriel en pdf<ref>Tutoriel pour les cartes mère MSI (anglais) : [https://www.msi.com/support/technical_details/MB_Wake_On_LAN Comment activer le Wake on LAN]</ref> de MSI, le constructeur de ma carte mère, car la carte réseau y est intégrée.
  
=====3ème étape=====
+
===== 3ème étape =====
 
''3 heures''
 
''3 heures''
<br>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.
+
<br>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=====
+
===== 4ème étape =====
 
''2 jours''
 
''2 jours''
<br>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.  
+
<br>Tester le Wake on LAN en utilisant le Raspberry Pi pour allumer le serveur de jeu sur un réseau local. Cette étape a été la plus difficile car, dû aux limitations de la salle de formation, en effet sans pouvoir utiliser le paramétrage DHCP fait plus tôt, j'ai dû configurer sur les machines elles-mêmes (Raspberry Pi et ordinateur de jeu/serveur) leurs 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!
+
Cela n'est pas un problème en temps normal, mais pas pour moi, je suis resté coincé pendant 12 heures à 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 similaires. Au final, il s'avérait tout simplement que la commande que j'utilisais pour envoyer le message d'allumage utilisait l'adresse physique 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'utilisais l'ordinateur de jeu lui-même pour choisir sa propre IP, j'utilisais cette dernière. Jusqu'au moment où je me suis posé la question : se souvient-il de son IP auto-proclamée s'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 Pi par câble). Et à ma plus grande surprise, cela a marché après 12 heures. Cela m'a redonné énormément de motivation !
  
=====5ème étape=====
+
===== 5ème étape =====
''4heures''
+
''4 heures''
<br>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é.
+
<br>J'ai ensuite installé AnyDesk sur le Raspberry Pi, j'ai choisi un mot de passe d'accès sans surveillance pour y accéder à tout moment avec le mot de passe choisi. J'ai fait la même chose pour l'ordinateur de jeu. Grâce à cela, le projet fonctionne déjà même par Internet. J'ai pu tester avec les donné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, 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 parti le vendredi soir pour le week-end sans avoir pu régler 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 avais pas pensé.
  
=====6ème étape=====
+
===== 6ème étape =====
''4heures''
+
''4 heures''
 
<br>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<ref>Vidéo tutoriel et explications des logiciels (anglais) : [https://www.youtube.com/watch?v=H0jmqVIhwIA Installer Apollo et Moonlight]</ref>, puis tester la fonctionnalité des logiciels pour s'assurer que le partage d'écran fonctionne.
 
<br>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<ref>Vidéo tutoriel et explications des logiciels (anglais) : [https://www.youtube.com/watch?v=H0jmqVIhwIA Installer Apollo et Moonlight]</ref>, puis tester la fonctionnalité des logiciels pour s'assurer que le partage d'écran fonctionne.
  
=====7ème étape=====
+
===== 7ème étape =====
''5heures''
+
''5 heures''
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.
+
<br>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.
  
<br>Ensuite, dans l'interface Apollo, activé le paramètrage UPnP pour pouvoir y accéder hors réseau local. J'ai suivit un tutoriel<ref>Vidéo tutoriel : [https://www.youtube.com/watch?v=3syAu1R5rTg Utilisé Moonlight et Apollo par Internet]</ref> 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, dans l'interface Apollo, activé le paramétrage UPnP pour pouvoir y accéder hors réseau local. J'ai suivi un tutoriel<ref>Vidéo tutoriel : [https://www.youtube.com/watch?v=3syAu1R5rTg Utiliser Moonlight et Apollo par Internet]</ref> qui propose aussi une solution utilisant un VPN. Il faut aussi vérifier que l'autorisation UPnP est activée dans les paramè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.
+
Ensuite, toujours dans les paramè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==
+
== Boîte 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<ref>Modèle TinkerCad : [https://www.tinkercad.com/things/bUaLH8hhvhz-raspberry-pi-3?sharecode=eQfSWgLxlUKnDKQHvptcnB5jkBvRKRNNzuaqKUupdmA Raspberry Pi 3]</ref>.
+
Une fois le projet complètement fonctionnel, je me suis attelé à l'aspect physique : la création d'une boîte en impression 3D. Sur Tinkercad, j'ai créé une à partir d'un modèle de Raspberry Pi trouvé sur Tinkercad<ref>Modèle TinkerCad de PalmerMason : [https://www.tinkercad.com/things/6pEHbDs03HJ-raspberry-pi Raspberry Pi Model 3]</ref> en cherchant "Raspberry Pi 3" (mon modèle est un 3B+). J'ai modifié un problème sur le modèle original et j'ai vérifié les dimensions, puis créé un nouveau modèle<ref>Modèle TinkerCad que j'ai modifié : [https://www.tinkercad.com/things/bUaLH8hhvhz-raspberry-pi-3?sharecode=eQfSWgLxlUKnDKQHvptcnB5jkBvRKRNNzuaqKUupdmA Raspberry Pi 3]</ref>.
  
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.
+
Je recommande aussi de faire une boîte d'au moins 91x62mm(intérieur) même si les dimensions d'un Raspberry Pi sont de 85x56mm, car les ports sont plus grands et il faut non seulement que le Raspberry passe dans la boîte, mais qu'il puisse aussi y entrer, ce qui a causé problème pour mon premier modèle qui a assez de place pour le Raspberry, mais pas assez pour l'y faire entrer.
 
<br>Il faut aussi ne pas oublier de faire un trou pour la carte microSD qui se trouve sous la carte électronique.
 
<br>Il faut aussi ne pas oublier de faire un trou pour la carte microSD qui se trouve sous la carte électronique.
 
<br>Il faut aussi penser à faire des trous d'aération pour laisser la chaleur s'échapper.
 
<br>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<ref>Modèle TinkerCad : [https://www.tinkercad.com/things/bUaLH8hhvhz-raspberry-pi-3?sharecode=eQfSWgLxlUKnDKQHvptcnB5jkBvRKRNNzuaqKUupdmA Boite BerryConnect]</ref>. 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.
+
Avec tout cela, j'ai créé ma boite<ref>Modèle TinkerCad : [https://www.tinkercad.com/things/bUaLH8hhvhz-raspberry-pi-3?sharecode=eQfSWgLxlUKnDKQHvptcnB5jkBvRKRNNzuaqKUupdmA Boîte BerryConnect]</ref>. Ce modèle contient des éléments esthétiques de différentes couleurs. Pour les imprimer de différentes couleurs sans utiliser trop de filament, il faut faire plusieurs impressions différentes : la boîte seule en noir, les portes seules en bleu, la grande étoile seule, le texte "berryconnect" (que vous pouvez modifier) avec la décoration bleue en dessous, et finalement la petite étoile jaune seule.
  
==Documentations==
+
== Documentations ==
  
J'ai, tout au long du projet, créer une documentation<ref>Dcoumentation : [[:Fichier:Berry_Connect_Documentation.pdf|BerryConnect étape par étape]]</ref>, étape par étape, en même temps que mon avancement dans le projet.
+
J'ai, tout au long du projet, créé une documentation<ref>Documentation : [[:Fichier:Berry_Connect_Documentation.pdf|BerryConnect étape par étape]]</ref>, étape par étape, en même temps que mon avancement dans le projet.
<br>De plus à la suite du projet j'ai créer cette page wiki pour mon projet.
+
<br>De plus, à la suite du projet, j'ai créé cette page wiki pour mon projet.
  
==Mes Impressions==
+
== 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.
+
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 choisis. Il m'aidera certainement à me mettre en avant pour mon projet professionnel.
  
==Sources==
+
== Sources ==
 
<references />
 
<references />
  
 
+
[[Catégorie:TN6]]
[[Catégorie:TN6]][[Catégorie:Projet Perso]][[Catégorie:Raspberry Pi]]
+
[[Catégorie:Projet Perso]]
 +
[[Catégorie:Raspberry Pi]]

Version actuelle datée du 2 avril 2025 à 11:48

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 difficile. Projet accompli en une semaine et demie, conception d'une boîte en 3D avec le temps restant.

Informations du projet

Lieu

Le projet s'est déroulé à 3 endroits différents :

  • Dans la salle de formation, là où je travaillais la plupart du temps.
  • Chez moi, pour mettre au point les paramètres 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 boîte.

Matériel requis

  1. Terminal d'accès à distance (ordinateur, console de jeu portable, téléphone).
  2. L'ordinateur de jeu ou serveur.
  3. Raspberry Pi
  4. 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).

Logiciels utilisés

  1. Apollo - Application de partage d'écran à distance. À utiliser avec une application de visualisation d'écran à distance.
  2. Moonlight - Application de visualisation d'écran à distance. À utiliser avec une application de partage d'écran à distance.
  3. RealVNC - Application de visualisation d'écran sur réseau local en utilisant le protocole "VNC".
  4. WSL - Machine virtuelle Linux sur Windows. Ce n'est pas obligatoire.
  5. AnyDesk - Application de partage et visualisation d'écran à distance. Utilisée finalement pour ses nombreux avantages. Ce n'est pas obligatoire mais recommandé.
  6. TinkerCad - Conception d'objets en 3D.
  7. BambuStudio - Logiciel pour l'utilisation d'imprimantes 3D BambuLab, permettant la transformation de fichiers 3D (stl ici) en fichiers par couches (gcode).

Compétences utilisées

  • Unix Shell
  • Utilisation et configuration 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échi à 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 en raison du manque de puissance. De plus, faire un projet sur ce thème me permettrait de le mettre en avant dans mon projet professionnel axé sur les systèmes et réseaux. J'ai donc fait des recherches, notamment en regardant des vidéos en anglais sur YouTube sur si c'était possible comme projet, et d'après mes recherches, cela l'était.

Cahier des charges

J'ai alors élaboré 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é suivi.

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 un signal d'allumage.

J'ai finalement changé 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 envoyant un message spécial dit "magic packet" à travers le réseau.

IP statique DHCP

Configurer de 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", c'est-à-dire sans périphériques (pas du tout obligatoire, mais je n'avais pas de périphériques à ma disposition), puis se connecter avec le protocole SSH (Secure Shell) au Raspberry Pi en ouvrant le port 22.

J'ai aussi fini 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 Pi. De plus, cela fonctionne 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 ouvrent les ports automatiquement si l'option est activée dans les paramètres du réseau local (box). Puis j'ai dû configurer le Wake on LAN dans le BIOS et dans Windows, car j'ai finalement utilisé cette option pour l'allumage.

Création d'une boîte

Création en 3D d'une boîte pour accueillir le Raspberry Pi.

Déroulement du projet

1ère étape

3 jours
J'ai d'abord mis en place le Raspberry Pi, j'ai suivi un tutoriel vidéo[1] pour configurer 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 par la suite paramétré mon ordinateur 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 a été la plus difficile car, dû aux limitations de la salle de formation, en effet sans pouvoir utiliser le paramétrage DHCP fait plus tôt, j'ai dû configurer sur les machines elles-mêmes (Raspberry Pi et ordinateur de jeu/serveur) leurs propres IPs.

Cela n'est pas un problème en temps normal, mais pas pour moi, je suis resté coincé pendant 12 heures à 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 similaires. Au final, il s'avérait tout simplement que la commande que j'utilisais pour envoyer le message d'allumage utilisait l'adresse physique 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'utilisais l'ordinateur de jeu lui-même pour choisir sa propre IP, j'utilisais cette dernière. Jusqu'au moment où je me suis posé la question : se souvient-il de son IP auto-proclamée s'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 Pi par câble). Et à ma plus grande surprise, cela a marché après 12 heures. Cela m'a redonné énormément de motivation !

5ème étape

4 heures
J'ai ensuite installé AnyDesk sur le Raspberry Pi, j'ai choisi un mot de passe d'accès sans surveillance pour y accéder à tout moment avec le mot de passe choisi. J'ai fait la même chose pour l'ordinateur de jeu. Grâce à cela, le projet fonctionne déjà même par Internet. J'ai pu tester avec les donné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, 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 parti le vendredi soir pour le week-end sans avoir pu régler 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 avais pas pensé.

6ème étape

4 heures
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

5 heures
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 suivi un tutoriel[4] qui propose aussi une solution utilisant un VPN. Il faut aussi vérifier que l'autorisation UPnP est activée dans les paramètres du réseau local (box Internet).

Ensuite, toujours dans les paramè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.

Boîte BerryConnect

Une fois le projet complètement fonctionnel, je me suis attelé à l'aspect physique : la création d'une boîte en impression 3D. Sur Tinkercad, j'ai créé une à partir d'un modèle de Raspberry Pi trouvé sur Tinkercad[5] en cherchant "Raspberry Pi 3" (mon modèle est un 3B+). J'ai modifié un problème sur le modèle original et j'ai vérifié les dimensions, puis créé un nouveau modèle[6].

Je recommande aussi de faire une boîte d'au moins 91x62mm(intérieur) même si les dimensions d'un Raspberry Pi sont de 85x56mm, car les ports sont plus grands et il faut non seulement que le Raspberry passe dans la boîte, mais qu'il puisse aussi y entrer, ce qui a causé problème pour mon premier modèle qui a assez de place pour le Raspberry, mais pas assez pour l'y faire entrer.
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éé ma boite[7]. Ce modèle contient des éléments esthétiques de différentes couleurs. Pour les imprimer de différentes couleurs sans utiliser trop de filament, il faut faire plusieurs impressions différentes : la boîte seule en noir, les portes seules en bleu, la grande étoile seule, le texte "berryconnect" (que vous pouvez modifier) avec la décoration bleue en dessous, et finalement la petite étoile jaune seule.

Documentations

J'ai, tout au long du projet, créé une documentation[8], étape par étape, en même temps que mon avancement dans le projet.
De plus, à la suite du projet, j'ai créé 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 choisis. Il m'aidera certainement à me mettre en avant pour mon projet professionnel.

Sources

  1. Aller Vidéo explicative (anglais) : Comment paramétrer un Raspberry Pi sans périphériques
  2. Aller Tutoriel pour les cartes mère MSI (anglais) : Comment activer le Wake on LAN
  3. Aller Vidéo tutoriel et explications des logiciels (anglais) : Installer Apollo et Moonlight
  4. Aller Vidéo tutoriel : Utiliser Moonlight et Apollo par Internet
  5. Aller Modèle TinkerCad de PalmerMason : Raspberry Pi Model 3
  6. Aller Modèle TinkerCad que j'ai modifié : Raspberry Pi 3
  7. Aller Modèle TinkerCad : Boîte BerryConnect
  8. Aller Documentation : BerryConnect étape par étape