Octoprint – 6 – Raspbian & Octopi sur le même Raspberry
Voici donc la vidéo concernant l’installation d’Octopi sur une distribution Raspbian ,comme on me la demandé , en espérant comme cela avoir répondu au mieux à la question. 😉
Pour commencer , il va vous falloir :
– Un Raspberry Pi : https://amzn.to/2mA12bd
– Un clavier, une souris et un écran pour la première partie ( pas de panique si vous n’en avez vraiment pas à dispo , j’ai une autre soluce 😉
– Une bonne carte SD : https://amzn.to/2o52ZwW
– La distribution Raspbian : https://www.raspberrypi.org/downloads/raspbian/
– un logiciel pour placer l’image de Raspbian : https://www.balena.io/etcher/
– Putty
Une fois que l’image est sur votre carte Sd , la configuration de Raspbian est plutôt classique, avec quelques questions de base , votre pays , le code wifi , la seul choses important à ne pas oublier est l’activation du SSH pour la suite , elle permet la connexion de votre pc grâce à l’application Putty. Il est nécessaire aussi de changer le mot de passe du raspberry
Ho oui la soluce si vous n’avez pas de clavier et souris à dispo … Avant de placer la carte dans votre raspberry , crée un fichier “ssh” dans la partition boot , pas le dossier , mais la partition boot sans aucune extension. il s’activera automatiquement au lancement. c’est une option qui a été volontairement supprimé par sécurité.
Installation d’un serveur web avec php et une base de données
1. Mise à jour de Raspi
sudo apt update
sudo apt upgrade
sudo apt update
sudo reboot
2. Si vous possédez un écran ( dans mon cas le Kuman 5pouces)
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD5-show
3. Instalation du server Apache
sudo apt install apache2
sudo chown -R pi:www-data /var/www/html/
sudo chmod -R 770 /var/www/html/
sudo reboot
vous pouvez déjà vérifier que cela fonctionne en vous rendant sur http://<votre ip> de votre navigateur.
4. Installation de PHP
sudo apt install php php-mbstring
Pour vérifier si ça marche , on va supprimer la page de Apache pour la remplacer par les infos du serveur php
sudo rm /var/www/html/index.html
echo "<?php phpinfo(); ?>" > /var/www/html/index.php
On refait le même test que précédemment sur le navigateur en se rendant sur l’ip du raspberry http://<votre ip>
5. Installation de Mysql
sudo apt install mariadb-server php-mysql
on va supprimer l’utilisateur root pour en créer un nouveau qui pourra se connecter en dehors de l’environnement raspbian.
on lance MariaDb
sudo mysql –user=root
Création d’un nouvel utilisateur root
DROP USER ‘root’@’localhost’;
CREATE USER ‘root’@’localhost’ IDENTIFIED BY ‘12345’;
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’localhost’ IDENTIFIED BY ‘12345’;
FLUSH PRIVILEGES;
pour quitter MariaDb : EXIT
6. Installation PHPMyAdmin
sudo apt install phpmyadmin
Choisir Apache 2 comme serveur avec la barre d’espace
répondre non à la question concernant l’utilisation de dbconfig-common
sudo phpenmod mysqli
sudo /etc/init.d/apache2 restart
pour tester : http://<votre ip>/phpmyadmin
6. Installation du serveur FTP
sudo apt install proftpd
sudo service proftpd reload
Vous pouvez vous connecter avec fileZilla par exemple avec le login et passe du raspberry
Information de connexion :
hôte : l’ip de votre Raspberry
Identifiant & mot de passe : ceux du Raspberry
Port : 21
Remonter dans les dossier jusqu’à voir le symbol / et en dessous dans la liste le dossier Var/html
voila , votre serveur web est maintenant installé , vous pouvez par exemple installer votre site wordpress
Installation d’Octoprint
1. Octoprint
sudo apt-get -y install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
cd /home/pi
git clone –depth 1 https://github.com/foosel/OctoPrint.git
cd OctoPrint/
virtualenv venv
./venv/bin/pip install pip –upgrade
./venv/bin/python setup.py install
mkdir ~/.octoprint
sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi
cd /home/pi
Lancement du test :
~/OctoPrint/venv/bin/octoprint
Dans votre navigateur : http://<votre i>:5000
la page de configuration d’octoprint devrait apparaitre , pas besoin d’aller plus loin , ce n’est qu’un test.
si ok on arrête le test dans putty avec un CTRL+C
2. Démarrage automatique du serveur Octoprint
nano ~/OctoPrint/scripts/octoprint.default
Retirer le # devant la ligne :
#DAEMON=/home/pi/OctoPrint/venv/bin/octoprint
CTRL+O pour sauver et CTRL+X pour quitter
sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint
sudo chmod +x /etc/init.d/octoprint
sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint
sudo update-rc.d octoprint defaults
pour vérifier si tout est ok
sudo service octoprint start
sudo service octoprint status
il doit y avoir Active: active (running)
sudo reboot
A partir de maintenant vous pouvez configurer Octoprint par l’interface web.
Vous devrez renseigner aussi les commande de redémarrage d’octoprint
Restart octoprint : sudo service octoprint restart
Restart system : sudo reboot ( reboot du raspberry au complet )
3. Installation de la caméra
cd /home/pi/
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
export LD_LIBRARY_PATH=.
sudo apt-get install cmake libjpeg8-dev
sudo apt-get install gcc g++
make
sudo make install
Pour le teste , prendre la ligne selon votre matériel : WebCam ou PiCam
PiCam : ./mjpg_streamer -i « ./input_raspicam.so -fps 5 » -o « ./output_http.so »
WebCam : ./mjpg_streamer -i « ./input_uvc.so -n -f 10 -r 1280×720 » -o « ./output_http.so »
Pour tester rdv : http://votreip:8080/?action=stream
nano /home/pi/.octoprint/config.yaml
On rajoute les lignes suivante:
webcam:
stream: http://<your Raspi’s IP>:8080/?action=stream
snapshot: http://127.0.0.1:8080/?action=snapshot
ffmpeg: /usr/bin/avconv
CTRL+O CTRL+X pour quitter
Pour pouvoir lancer la webcam dans octoprint il va falloir des scripts de lancement
pi@raspberrypi:~ $ mkdir /home/pi/scripts/
Création du script webcam :
pi@raspberrypi:~ $ nano /home/pi/scripts/webcam
Et copier dedans :
#!/bin/bash
# Start / stop streamer daemon
case « $1 » in
start)
/home/pi/scripts/webcamDaemon >/dev/null 2>&1 &
echo « $0: started »
;;
stop)
pkill -x webcamDaemon
pkill -x mjpg_streamer
echo « $0: stopped »
;;
*)
echo « Usage: $0 {start|stop} » >&2
;;
esac
Enregistrer CTRL + X
Création du second script:
pi@raspberrypi:~ $ nano /home/pi/scripts/webcamDaemon
Et copier dedans :
#!/bin/bash
MJPGSTREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental
MJPGSTREAMER_INPUT_USB= »input_uvc.so »
MJPGSTREAMER_INPUT_RASPICAM= »input_raspicam.so »
# init configuration
camera= »auto »
camera_usb_options= »-n -f 15 -r 1280×720″
camera_raspi_options= »-fps 10″
if [ -e « /boot/octopi.txt » ]; then
source « /boot/octopi.txt »
fi
# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
input=$1
pushd $MJPGSTREAMER_HOME
echo Running
./mjpg_streamer -o « output_http.so -w ./www » -i « $input »
LD_LIBRARY_PATH=. $MJPGSTREAMER_HOME
popd
}
# starts up the RasPiCam
function startRaspi {
logger « Starting Raspberry Pi camera »
runMjpgStreamer « $MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options »
}
# starts up the USB webcam
function startUsb {
logger « Starting USB webcam »
runMjpgStreamer « $MJPGSTREAMER_INPUT_USB $camera_usb_options »
}
# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that’s how it is…
vcgencmd version
# echo configuration
echo camera: $camera
echo usb options: $camera_usb_options
echo raspi options: $camera_raspi_options
# keep mjpg streamer running if some camera is attached
while true; do
if [ -e « /dev/video0 » ] && { [ « $camera » = « auto » ] || [ « $camera » = « usb » ] ; }; then
startUsb
elif [ « `vcgencmd get_camera` » = « supported=1 detected=1 » ] && { [ « $camera » = « auto » ] || [ « $camera » = « raspi » ] ; }; then
startRaspi
fi
sleep 120
done
Enregistrer CTRL + X
On rend les deux fichiers exécutable :
pi@raspberrypi:~ $ chmod +x /home/pi/scripts/webcam
pi@raspberrypi:~ $ chmod +x /home/pi/scripts/webcamDaemon
On édite le fichier suivant :
pi@raspberrypi:~ $ nano /home/pi/.octoprint/config.yaml
system:
actions:
– action: streamon
command: /home/pi/scripts/webcam start
confirm: false
name: Start video stream
– action: streamoff
command: /home/pi/scripts/webcam stop
confirm: false
name: Stop video stream
Pour enregistrer CTRL + X
sudo service octoprint restart
Pour accéder à votre page de l’extérieur , vous pouvez par exemple utiliser no-ip comme serveur dns gratuit.
Vous devez rediriger les port de votre Raspberry dans votre rooter .
Un exemple de configuration sur votre box.
Attention que la version gratuite à été blacklisté par Facebook par exemple , ce qui rends le partage de votre adresse plutôt difficile.
Vous voulez aussi l’interface TouchUi ??? c’est possible mais pas du tout pratique car vous aurez besoin d’un clavier pour le quitter … voici malgré tout la procédure ..
comme pour la version pour ecran dédié il faut installer touchUi Auto start :
git clone https://github.com/BillyBlaze/OctoPrint-TouchUI-autostart.git ~/TouchUI-autostart/
sudo ~/TouchUI-autostart/helpers/install (entrez le nom de votre session Octoprint sur l’écran de configuration )
Avant le reboot vous pouvez éditer le fichier de démarrage et changer le Start=Yes en Start=No
sudo nano /etc/default/touchui
sudo reboot
Le lancement de l’interface graphique de raspbian ne se lance plus , il faut se connecter avec Putty et recharger dans Raspi-config , l’activation de mot de passe et de l’interface graphique .
Sudo raspi-config
3>boot option > B1 > B4.
De retour sur l’interface de raspbian , ouvrir le dossier TouchUi-autostart > bootloader > index.html
vous pouvez passer la page en pleine écran , mais pour quitter vous aurez besoin de faire un F11
Désactiver le mode veille après 10min
Pour empêcher la mise en veille après 10min il est nécessaire d’installer un économiseur d’écran. Pour se faire , dans le terminal :
sudo apt-get install xscreensaver
Répondez oui à la question lors de son installation.
une fois terminé vous le retrouverez dans applications ➜ Préférences ➜ Économiseur d’écran.
dans la fenêtre qui s’ouvre , choisir dans le menu déroulant en haut à gauche : désactiver l’économiseur d’écran.