Activation GPIO depuis un site web externe ?

Bonjour,

J’ai réalisé de nombreux projets sous RPI3, avec serveur Web + PHPMyAdmin monté sur le RPI.
et je communique avec les entrées/sorties du GPIO pour effectuer des foncions diverses (allumer lampe, imprimer, prendre photo, video…)

Aujourd’hui je souhaiterais héberger tous ces systèmes sur un seul et même hébergement (externe OVH par exemple)

et pouvoir en fonction de la navigation sur les page php de cette hébergement « externe », pouvoir faire fonctionner mon gpio

Afin d’être plus clair
Pour exemple:
En lançant des pages php avec un navigateur d’un site qui n’est pas hébergé sur mon RPI est-il possible d’activer une sortie du gpio en local ?

Merci, pour les pistes …

Bonjour,
Oui , c’est très simple en théorie. En pratique, il y a quelques portes à franchir et un peu de sécurité à mettre en place.
1 - Il faut que le serveur web ait accès au Raspberry PI ou bien que le Raspberry PI ait accès au serveur web.
2 - Il faut qu’un service soit à l’écoute sur une machine et un client qui se connecte dessus.
3 - A la réception d’une requête définie, et formatée adhoc une commande correspondante est exécutée.
4 - Pour éviter que quelqu’un sache ce qui se passe entre le client et le serveur, il est de bon ton d’ajouter une couche de sécurité SSL ou autre.

Voici 3 possibilités par ordre de préférence pour moi

  • ssh - le serveur web envoi directement au PI une commande SSH
  • API web sur le Raspberry PI - le serveur web envoi une requête (voir du coté des micro framework Python pour développer ça)
  • mqtt - le logiciel de communication des IOT. Soit le serveur mqtt est sur le PI ou la machine hébergée ou n’importe où ailleurs au choix. Le serveur web publie un message, le PI s’inscrit pour recevoir tous les messages. Ajouter une couche SSL et brider un poil la conf pour éviter que le port soit accessible à d’autres machines.

N.B. : Une fois que l’on a pigé comment fonctionne ce MQTT on ne peut plus s’en passer.

A+

Merci Jelopo,

je commence par la première possibilité.
ssh - le serveur web envoi directement au PI une commande SSH

le serveur web étant distant. Comment peut-il envoyer une commande SSH au PI
je suis sur un serveur web classic linux/ php

la navigation ce fait depuis le PI
Je ne vois pas comment récupérer une commande SSH ?

avez vous un exemple?
Merci;)

Bonjour,

Il faut avoir accès en ligne de commande au serveur web, si ce n’est pas le cas, cette solution n’est pas possible.

Si oui, passer la commande
ssh pi@<adresse_IP_Box> uname -a

Il faut que le port 22 du PI soit redirigé (fonction NAT) dans la box en autorisant l’adresse IP du serveur WEB.

Bon courage