Raspberry Pi, une webapp pour le contrôler

406 affichages

Piloter son Raspberry Pi avec une Webapp, c’est pratique…

A la demande d’un internaute, j’ai décidé de vous montrer comment il est simple d’exécuter des opérations sur son Raspberry grâce à un script PHP. Cet article est rédigé depuis déjà un moment, mais il me fallait trouver une extension WordPress pour pouvoir afficher le code PHP, sans qu’il soit interprété 😛

 

Introduction

Le PHP ou « PHP: Hypertext Preprocessor » est un langage de programmation créé en 1995 par Rasmus Lerdorf, et remanié en 1997 par Andi Gutmans et Zeev Suraski. C’est un langage web qui s’exécute sur un serveur, contrairement à Javascript qui s’exécute du côté client. Vous êtes le client, et ce que vous êtes en train de lire, s’est exécuté sur mon serveur.
Pour piloter son Raspberry Pi grâce à la consultation d’une page web, le plus simple à mon sens, c’est d’utiliser PHP et des lignes de commandes Linux. En effet, PHP possède plusieurs fonctions qui permettent d’exécuter des commandes identiques à celles que vous pourriez taper dans votre terminal en SSH par exemple. Par conséquent, les possibilités sont illimitées.
Ce petit tutoriel n’a pas vocation à vous montrer toutes les fonctionnalité de ce processus, car l’année prochaine, on y serait encore, mais juste de vous faire voir quelques cours exemples. A vous d’avoir l’esprit créatif.

Préparation

  • Tout d’abord, il nous faut avoir un Raspberry Pi fonctionnel.
  • Puis on vérifie que celui-ci est à jour : sudo apt-get update sudo apt-get upgrade
  • Ensuite, on installe le logiciel du serveur Apache qui permet de donner l’accès à la consultation d’un site web : sudo apt-get install apache2
  • On donne les droits à l’utilisateur pi (ou le vôtre créé au préalable) aux dossiers qui vont permettre l’administration et la mise en place de sites web, pour moi c’est « manu » : sudo chown -R manu:www-data /var/www/html/ sudo chmod -R 770 /var/www/html/

Dans l’état actuel, votre serveur apache est installé et prêt. Vous pouvez commencer à créer des sites, uniquement dans le langage HTML. D’ailleurs, si vous souhaitez vérifier que votre serveur web fonctionne, rendez-vous à l’adresse http://ipduraspberry/ grâce à votre navigateur préféré, Vous devez tomber sur une page par défaut sur laquelle il est écrit : « This is the default welcome page used to test the correct operation of the Apache2 server after installation on Debian systems. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should replace this file (located at /var/www/html/index.html) before continuing to operate your HTTP server. »

C’est bon ?

Ok, on continue.

  • On installe php : sudo apt-get install php php-mbstring
  • On laisse mouliner un peu et à la fin on teste en remplaçant le fichier index.html dans le répertoire /var/www/html par un fichier index.php avec la fonction suivante :
    <?php phpinfo(); ?>

Fantastique, les infos php s’affichent et ça commence par la ligne PHP Version 7.0.30-0+deb9u1 enfin un truc du genre, ça va dépendre de votre version de PHP et de votre système Linux. 😉

A ce stade notre Raspberry Pi est fonctionnel. Aucune base de donnée n’est installée mais pour contrôler sa framboise, il n’est pas nécessaire d’en installer, sauf si vos programmes en requièrent une. Je vous propose de voir la gestion de base de donnée plus tard, hein ? Alors, on continue.

Piloter son raspberry PI en PHP

Pour piloter son Raspberry Pi avec un script php, c’est simple. Par exemple, voyons la commande ifconfig je vous invite à la tester dans votre terminal pour voir ce que ça donne. C’est fait ? Looooooooooooooool, je sais que vous ne l’avez pas fait… Bon, je vous le dis, ifconfig permet d’afficher les adresses ip de votre matériel. Rien d’exaltant, mais c’est juste pour le teste ! 😛

Donc, on crée un fichier index.php, qu’on va mettre dans /var/www/html via FTP ou SFTP. Je n’ai pas pu afficher le code de ce fichier proprement, je vous le mets donc en téléchargement.

Et si vous vous rendez sur l’adresse locale de votre Raspberry PI vous tomberez sur votre page créée, vous n’avez plus qu’à tester !

 

Conclusion

Alors ça fonctionne ?

Cool, maintenant, laissez place à votre imagination, créez votre web-app qui contrôle votre raspberry pi.

Par exemple, pour ma part, je peux :

  • – lancer la webradio de mon association,
  • – switcher entre le HDMI et le Jack 3,5 pour la sortie audio,
  • – redémarrer mon PI…

Et tout ça, à partir de mon iPhone via Safari…

Les options sont infinies.

Il est aussi possible de créer un script bash que vous pouvez lancer via PHP, ce qui vous permet d’automatiser un tas d’opérations.

A vos claviers, soyez créatifs 🙂 et n’hésitez pas à me faire des retours en commentaire 😀

5 réponses sur “Raspberry Pi, une webapp pour le contrôler”

  1. salut
    snif snif très étrange

    root@raspberrypi:~# apt-get install php php-mbstring
    Lecture des listes de paquets… Fait
    Construction de l’arbre des dépendances
    Lecture des informations d’état… Fait
    E: Impossible de trouver le paquet php
    E: Impossible de trouver le paquet php-mbstring

    du coup sur un forum j’ai trouvé
    https://raspberrypi.stackexchange.com/questions/78605/unable-to-install-php

    sudo apt-get install php5 libapache2-mod-php5 -y

    j’ai bien fait ?
    Cordialement

    1. Biensur!
      Je suis sur une distribution Raspbian donc ça fonctionne chez moi, mais manifestement pas chez toi. L’essentiel c’est que tu aies réussi à l’installer!
      Je vais juste modifier mon article pour préciser le système utilisé !

    2. Ok Nicolas, toutes mes excuses, je n’ai pas vérifié mon article dans son intégralité lors des testes de l’extension wordpress qui me permet d’afficher du code et il semblerait qu’elle ne soit pas très efficace…
      Donc, le code fourni n’était pas bon 🙂
      J’ai corrigé en intégrant un fichier zip à télécharger…

  2. CA marche mais ton code me renvoie juste
    Voir l’ip.
    et non pas
    root@raspberrypi:~# ifconfig
    eth0 Link encap:Ethernet HWaddr b8:27:eb:f4:d6:df
    inet adr:192.168.0……….
    une idée ?
    merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.