article

Installation d’OctoPrint

Par  Benjamin

Publié le 12 mars 2019

Retrouvez-nous sur BlueSky, Facebook et Mastodon.

Vous avez deux manières d'installer OctoPrint, soit sur un Raspberry Pi en système autonome, soit directement sur votre distribution Raspbian, car vous avez déjà un usage particulier de votre Raspberry Pi. Personnellement, j'ai préféré mettre OctoPrint sur mon serveur web, comme ça j'économise l'électricité d'un Raspberry supplémentaire, et je n'ai pas besoin de la caméra pour le moment. Ayant deux imprimantes, je vais monter un autre système pour celle-ci. Mais vous pouvez en mettre une, c'est out of box ! Pour gérer deux imprimantes en même temps, je ferai un article bientôt, mais pour le moment je suis en test. Pour passer sur OctoPrint, j'ai donc choisi un Raspberry Pi 3B+, j'ai abandonné mon Raspberry Pi 2B qui tournait comme serveur de travail pour le web depuis quelques temps maintenant. D'ailleurs le dernier modèle de Pi est conseillé pour utiliser OctoPrint. Avec le web et le print, il va pas chômer le petit.

> Installation sur mon Raspberry Pi directement

1 - Vous pouvez télécharger la dernière version d'OctoPi. https://octoprint.org/download/ 2 - Puis vous téléchargez balenaEtcher, logiciel pour copier l'image disque sur la carte SD du Pi. https://www.balena.io/etcher/ 3 - Vous décompressez votre fichier zip d'OctoPi et vous installez balenaEtcher. Que vous soyez sur GNU/Linux, Mac OS ou Windows c'est presque pareil. 4 - Lancez balenaEtcher, puis vous choisissez votre image disque d'OctoPi, et vous sélectionnez le disque de destination, qui est votre carte SD pour le Pi. Vous pouvez maintenant lancer le flash.
Logiciel balenaEtcher.
Attention, il vaut mieux prendre une carte 16GO ou même plus, même si OctoPi fonctionne sur une 8GO. Car les fichiers g.code et les time-lapses vont prendre de la place. Pour ma part j'ai aussi d'autres fonctions, j'ai donc choisi une carte de 64Go. Sur Windows à la fin du flash il vous est proposé de formater votre carte, vous pouvez fermer cette fenêtre, c'est normal, il ne reconnaît pas le format. Sur GNU/Linux et Mac OS aucun souci. 5 - Le Pi 3B+ est équipé d'une carte wifi, et d'un port ethernet, et avant de mettre votre carte SD dans le Pi, nous allons paramétrer le wifi ou réseau filaire. Pour ça il faut ouvrir le disque qui se nomme "boot" et paramétrer le fichier nommé "octopi-wpa-supplicant.txt". Dans cette zone pour le wifi il vous faudra enlever les dièses, soit devant WPA/WPA2 si vous êtes en wifi, ou faire la même chose avec WEP, ou encore avec Open/unsecured, si vous n'avez pas protégé votre réseau (ouf quoi). Exemple :
## WPA/WPA2 secured
network={
  ssid="nomDeMonRéseau"
  psk="0123456789"
}
Pour l'ethernet, vous n'avez rien à faire, le DHCP c'est automatique. 6 - Il faut maintenant trouver son adresse IP, pour ça plusieurs manières. La première est la plus simple à mon avis. Brancher le Pi avec un écran, puis taper la commande "ifconfig", si vous n'avez pas ce message directement à l'écran. (Pour la connexion SSH je l'explique un peu plus bas dans ma deuxième partie.)
Au démarrage OctoPi.
Exemple : Le login est "pi" et mot de passe "raspberry" par défaut.
pi@raspberrypi:~ $ ifconfig
La réponse est ici dans wlan0, ou eth0, comme dans l'exemple ci-dessous.
wlan0: flags=4163  mtu 1500
        inet 195.167.1.15  netmask 200.200.200.0  broadcast 195.167.1.122
L'autre solution consiste à vous connecter à votre box internet pour aller y piocher l'adresse IP de votre nouvel appareil. Assez simple aussi, et profitez pour lui dédier dans la foulée, une ip fixe. 7 - Connectez vous maintenant que vous avez l'adresse locale de votre Pi via votre navigateur, et vous pouvez lancer la configuration d'OctoPrint. C'est pas beau la technologie ? Je reviendrai dans quelques temps dans un autre article pour la configuration, mais lancez-vous, c'est pas dur. En gros vous pouvez tout valider, accepter, et c'est parti !
Page d'accueil d'OcotPrint.

> Installation sur ma version de Raspbian déjà présente

Dans un premier temps, faire la mise à jour de votre système. Attention, il faut être sûr de vous sur cette démarche. La mise à jour, c'est toujours un risque de faire déconner un service, ou un logiciel. Pour le serveur web, normalement aucun risque. Vous pouvez maintenant lancer la commande SSH dans le terminal ou être devant le Pi sur un clavier et écran. Pour Windows, il vous faut Putty, un logiciel qui vous permettra d'avoir une console SSH, pour GNU/Linux ou Mac OS, le Terminal ira très bien. Pour se connecter dans le Terminal : ssh pi@197.167.1.10 (votre ip locale) pi, c'est l'utilisateur (login). Puis vous pouvez mettre à jour, vous êtes dans votre ordinateur.
pi@raspberrypi:~ $  sudo apt-get update
pi@raspberrypi:~ $  sudo apt-get upgrade
1 -Installons les paquets nécessaires pour Octoprint :
pi@raspberrypi:~ $ sudo apt-get -y install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
2 - Allons dans le répertoire /home/pi :
pi@raspberrypi:~ $ cd /home/pi
3 - Vérifions si c'est ok :
pi@raspberrypi:~ $ pwd
réponse :
/home/pi
4 - Téléchargeons les données d'OctoPrint :
pi@raspberrypi:~ $ git clone https://github.com/foosel/OctoPrint.git
5 - Allons dans le répertoire du téléchargement :
pi@raspberrypi:~ $ cd OctoPrint/
Réponse :
pi@raspberrypi:~/OctoPrint $
6 - Lançons l'installation, plusieurs commandes à la suite :
pi@raspberrypi:~/OctoPrint $ virtualenv venv
pi@raspberrypi:~/OctoPrint $ ./venv/bin/pip install pip --upgrade
pi@raspberrypi:~/OctoPrint $ ./venv/bin/python setup.py install
Nous verrons comment mettre Python 2.7 en 3.7 dans un autre article bientôt. 7 - Nous créons le répertoire de configuration, l'utilisateur et les groupes :
pi@raspberrypi:~/OctoPrint $ mkdir ~/.octoprint
pi@raspberrypi:~/OctoPrint $ sudo usermod -a -G tty pi
pi@raspberrypi:~/OctoPrint $ sudo usermod -a -G dialout pi
8 - Voyons si cela fonctionne :
pi@raspberrypi:~/OctoPrint $ cd /home/pi
Vous pouvez laisser tourner pour le moment, car vous devez vous rendre sur la page locale d'OctoPrint. Dans le navigateur votre ip locale suivie de :5000, c'est le port d'OctoPrint par défaut. L'ip sans le port, vous risqueriez de tomber sur votre service web. Le port est un aiguillage, donc vous penserez à l'ouvrir dans votre box internet pour un accès à distance. Exemple : 182.178.1.10:5000
Page d'accueil d'OcotPrint.

> Mettre en place le démarrage automatique du service

On a fait le plus difficile, mais si vous fermez votre connexion SSH ça va trancher chérie. Donc il faut le lancer au démarrage de votre Pi. 1 - Nous allons éditer un fichier qui va nous permettre de lancer un service au démarrage.
pi@raspberrypi:~ $ nano ~/OctoPrint/scripts/octoprint.default
CTRL+O pour enregistrer et CTRL+X pour quitter Nano (éditeur de texte) Il faut enlever le dièse (#) devant la ligne :
#DAEMON=/home/pi/OctoPrint/venv/bin/octoprint
2 - Mettre en place le démarrage du service à l'allumage du Pi en donnant les droits à OctoPrint :
pi@raspberrypi:~ $ sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint
pi@raspberrypi:~ $ sudo chmod +x /etc/init.d/octoprint
pi@raspberrypi:~ $ sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint
pi@raspberrypi:~ $ sudo update-rc.d octoprint defaults
3 - Nous pouvons lancer le service, le vérifier et le stopper au besoin maintenant avec ces commandes :
pi@raspberrypi:~/OctoPrint $ sudo service octoprint start
pi@raspberrypi:~/OctoPrint $ sudo service octoprint status
pi@raspberrypi:~/OctoPrint $ sudo service octoprint stop
Voilà, normalement tout fonctionne et l'on peut prendre la main à distance sur son imprimante 3D. Pour ma part j'ai deux Dagoma, une Discoeasy200 et une Neva, et ça fonctionne très bien. Pour gérer deux imprimantes en même temps je suis encore en phase de tests, donc je vais revenir très vite sur le lancement de deux services OctoPrint sur le même Pi, idem pour les caméras, ou sur la configuration même d'OctoPrint. Maj: 13/03/19 Retrouvez comment gérer plusieurs imprimantes en même temps, >ici<. Maj: 16/03/19 Mettre Cura Engine sur Octoprint, >ici<. Vidéo de présentation :
Crédit image : kerneldesign.net