{"id":4419,"date":"2021-04-15T14:00:00","date_gmt":"2021-04-15T12:00:00","guid":{"rendered":"https:\/\/www.unicoda.com\/?p=4419"},"modified":"2021-03-13T00:24:34","modified_gmt":"2021-03-12T23:24:34","slug":"rackpi-mise-en-place","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=4419","title":{"rendered":"RackPi : Mise en place"},"content":{"rendered":"\n<p>Ayant fait l&rsquo;acquisition d&rsquo;un rack de taille moyenne l&rsquo;an dernier, dans le but d&rsquo;organiser et de ranger correctement tous mes appareils informatiques: switch, NAS, routeur, Raspberry Pi, onduleur, je cherchais une bonne mani\u00e8re d&rsquo;organiser les Raspberry Pi. Apr\u00e8s quelques recherches parmi les mod\u00e8les 3D existants sur Thingiverse et Prusa Printers, j&rsquo;ai trouv\u00e9 le projet <a rel=\"noreferrer noopener\" href=\"https:\/\/www.thingiverse.com\/thing:3022136\" target=\"_blank\">RackPi<\/a>: nombreuses photos, documentation plut\u00f4t compl\u00e8tes, \u00e9tapes d&rsquo;assemblage claires. Il ne restait plus qu&rsquo;\u00e0 me lancer dans la construction de mon exemplaire.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Assemblage<\/h4>\n\n\n\n<p>Quelques notes concernant l&rsquo;assemblage. Premi\u00e8rement, les r\u00e9sistances, celle de 1k ohm est \u00e0 utiliser avec la led et celle de 10k ohm sert pour le bouton poussoir. Pour les vis, j&rsquo;utilise du c\u00f4t\u00e9 des headers, une M2.5 de 14mm de longueur, afin de pouvoir s\u00e9curiser par la suite un PoE hat. De l&rsquo;autre c\u00f4t\u00e9, j&rsquo;ai fait le choix d&rsquo;une M2.5 de longueur 10mm. Les diff\u00e9rents composants sont maintenus en place \u00e0 coup de pistolet \u00e0 colle. \u00c9tape incontournable avant l&rsquo;encollage: tester, tester et tester ! C&rsquo;est du bon sens, mais cela \u00e9vite de devoir tout d\u00e9monter apr\u00e8s coup. Illustration: dans le deuxi\u00e8me exemplaire que j&rsquo;ai assembl\u00e9, ma partie bouton ne fonctionnait pas et j&rsquo;ai donc pu en refaire une nouvelle avant de proc\u00e9der \u00e0 l&rsquo;assemblage.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"alignleft size-large\"><a href=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-768x1024.jpg\" alt=\"\" class=\"wp-image-4443\" srcset=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-768x1024.jpg 768w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-225x300.jpg 225w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-1152x1536.jpg 1152w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-1536x2048.jpg 1536w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-1200x1600.jpg 1200w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/circuit_bouton-scaled.jpg 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><figcaption>Gros plan sur le circuit du bouton poussoir.<\/figcaption><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00e2blage<\/h4>\n\n\n\n<p>En suivant le c\u00e2blage et en m&rsquo;aidant du <a rel=\"noreferrer noopener\" href=\"https:\/\/www.raspberrypi.org\/documentation\/usage\/gpio\/\" target=\"_blank\">document de r\u00e9f\u00e9rence concernant les GPIO du Raspberry Pi<\/a>, j&rsquo;obtiens la configuration suivante.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">LED<\/h6>\n\n\n\n<p>(+) -&gt; Fil jaune -&gt; Pin 16 -&gt; GPIO 23<br>(-) -&gt; Fil orange -&gt; Pin 14 -&gt; GROUND<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Bouton marche\/arr\u00eat<\/h6>\n\n\n\n<p>Fil violet -&gt; Pin 39 -&gt; GROUND<br>Fil bleu -&gt; GLOBAL_EN<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Bouton poussoir<\/h6>\n\n\n\n<p>Fil violet -&gt; Pin 17 -&gt; POWER 3V3<br>Fil gris -&gt; Pin 38 -&gt; GPIO 20<br>Fil blanc -&gt; Pin 25 -&gt; GROUND<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">\u00c9cran<\/h6>\n\n\n\n<p>SDA -&gt; Fil vert -&gt; Pin 3 -&gt; GPIO 2<br>SCL -&gt; Fil jaune -&gt; Pin 5 -&gt; GPIO 3<br>VCC -&gt; Fil rouge -&gt; Pin 1 -&gt; POWER 3V3<br>GND -&gt; Fil noir -&gt; Pin 6 -&gt; GROUND<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-768x1024.jpg\" alt=\"\" class=\"wp-image-4444\" srcset=\"https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-768x1024.jpg 768w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-225x300.jpg 225w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-1152x1536.jpg 1152w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-1536x2048.jpg 1536w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-1200x1600.jpg 1200w, https:\/\/www.unicoda.com\/wp-content\/uploads\/2021\/03\/cablage-scaled.jpg 1920w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><figcaption>C\u00e2bl\u00e9 et pr\u00eat \u00e0 coller.<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Configuration du pi<\/h4>\n\n\n\n<p>Activation de I2C et SPI via <code>raspi-config<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo raspi-config\n-&gt; Interfacing Options\n-&gt; SPI\n-&gt; I2C<\/pre>\n\n\n\n<p>Installation des d\u00e9pendances n\u00e9cessaires:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo apt-get install python3-pip\n$ sudo pip3 install adafruit-circuitpython-ssd1306\n$ sudo apt-get install python3-pil\n$ sudo apt-get install -y python-smbus\n$ sudo apt-get install -y i2c-tools\n$ sudo pip3 install psutil<\/pre>\n\n\n\n<p>V\u00e9rification du c\u00e2blage de l&rsquo;\u00e9cran. Celui-ci doit appara\u00eetre \u00e0 l&rsquo;adresse <code>3c<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo i2cdetect -y 1<\/pre>\n\n\n\n<p>Ensuite, r\u00e9cup\u00e9ration du script d&rsquo;affichage des informations sur l&rsquo;\u00e9cran. Deux URL possibles, celle du fichier sur Thingiverse, ou celle pointant vers le m\u00eame script dans un d\u00e9p\u00f4t sur Github que je contr\u00f4le. De cette mani\u00e8re, je peux m&rsquo;assurer que le code ex\u00e9cut\u00e9 et bien celui que j&rsquo;ai relu et qu&rsquo;il n&rsquo;a pas \u00e9t\u00e9 modifi\u00e9 ult\u00e9rieurement sur Thingiverse, dans le cas d&rsquo;une installation ou d&rsquo;une r\u00e9installation future.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># Utilisation du fichier \"officiel\".\n$ wget https:\/\/www.thingiverse.com\/download:8343823 -O infoscreen.py\n# Utilisation d'une copie du fichier dans un d\u00e9p\u00f4t que je contr\u00f4le.\n$ wget https:\/\/raw.githubusercontent.com\/vvision\/rack-pi\/main\/infoscreen.py\n$ sudo chmod 755 infoscreen.py<\/pre>\n\n\n\n<p>Ex\u00e9cution du script pour v\u00e9rifier son fonctionnement.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo python3 infoscreen.py<\/pre>\n\n\n\n<p>Afin de s&rsquo;assurer que le script est lanc\u00e9 automatiquement au d\u00e9marrage, on modifie <code>rc.local<\/code> en ajoutant la ligne suivante, juste avant la ligne <code>exit 0<\/code>, via <code>sudo nano \/etc\/rc.local<\/code> et en modifiant le chemin vers l&#8217;emplacement du script sur le disque si besoin.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo python3 \/home\/pi\/infoscreen.py &amp;<\/pre>\n\n\n\n<p>C\u00f4t\u00e9 contr\u00f4le, un appui simple sur le bouton permet d&rsquo;allumer l&rsquo;\u00e9cran. Un appui d&rsquo;environ 8s d\u00e9clenche un red\u00e9marrage et au-dessus de 12s, le pi d\u00e9clenchera un shutdown. En cas d&rsquo;arr\u00eat, si vous avez c\u00e2blez le bouton slider sur le pin central EN\/GLOBAL_EN de votre pi 3+ ou de votre pi 4, il est possible de couper l&rsquo;alimentation du pi gr\u00e2ce \u00e0 ce bouton une fois le pi \u00e9teint.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Conclusion<\/h4>\n\n\n\n<p>Quelques mots pour terminer. Le r\u00e9sultat est extr\u00eamement satisfaisant, mon Raspberry Pi est maintenant correctement install\u00e9 dans le rack (ce sera encore mieux d\u00e8s que j&rsquo;aurais trouv\u00e9 des vis auto-taraudantes correctes). L&rsquo;\u00e9cran est utile pour avoir l&rsquo;adresse IP du Pi, surtout dans les premiers moments de mise en place, le temps de configurer une IP statique au niveau du DNS local. Sinon, les informations d&rsquo;utilisation du CPU et de la RAM sont toujours bonne \u00e0 prendre lorsqu&rsquo;on s&rsquo;interroge sur la charge du Pi, et deviennent donc facilement accessible. Les deux boutons permettant de contr\u00f4ler extinction, red\u00e9marrage et de maintenir \u00e9teint le Pi sont \u00e9galement utiles puisque je peux d\u00e9sormais effectuer ces op\u00e9rations sans avoir \u00e0 ouvrir une connexion SSH.<\/p>\n\n\n\n<p>En bref, un projet int\u00e9ressant, qui ne se limite pas \u00e0 installer quelques lignes de codes, mais permet de pratiquer mes comp\u00e9tences en soudure, de d\u00e9couvrir la partie GPIO des Raspberry PI et au final d&rsquo;am\u00e9liorer l&rsquo;organisation du rack.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ayant fait l&rsquo;acquisition d&rsquo;un rack de taille moyenne l&rsquo;an dernier, dans le but d&rsquo;organiser et de ranger correctement tous mes appareils informatiques: switch, NAS, routeur, Raspberry Pi, onduleur, je cherchais une bonne mani\u00e8re d&rsquo;organiser les Raspberry Pi. Apr\u00e8s quelques recherches parmi les mod\u00e8les 3D existants sur Thingiverse et Prusa Printers, j&rsquo;ai trouv\u00e9 le projet RackPi: &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=4419\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;RackPi : Mise en place&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[322],"tags":[],"class_list":["post-4419","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4419"}],"version-history":[{"count":10,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4419\/revisions"}],"predecessor-version":[{"id":4492,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/4419\/revisions\/4492"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}