Octoprint

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.