[Projet] WsPiDroid, un web service pour le Raspberry Pi

Vous souhaitez piloter votre framboise à partir d'une page web ? Ou mieux encore à partir d'un smartphone ou d'une tablette Android ? Venez donc visiter cette rubrique...

Modérateur : Francois

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

[Projet] WsPiDroid, un web service pour le Raspberry Pi

Message par domi » lun. 24 nov. 2014 08:50

Bonjour,

Comme convenu dans l'article du Blog, voici le "Thread" pour discuter du projet RPiDroid dont vous trouverez sa description sur le Blog Framboise314

Toutes suggestions d'amélioration sont les bienvenues.

Ce Projet est composé de 3 outils : Le Web-service, un client Web Php et un client Android (version Android >= 3.0)
But : Commander un Raspberry Pi depuis une application Web indépendante du Raspberry, depuis une application Android, ou tout autre application sachant invoquer un Web-Service de type SOAP.
Le principe de départ étant de créer à l'aide du Raspberry Pi une Box domotique, et disposer d'un logiciel client capable d'interagir avec cette Box depuis son domicile, mais également depuis l’extérieur via Internet.

Disponible sur GitHub (voir liens en bas de ce post)

Edit du 01/03/2015 : Le nom RpiDroid étant déjà utilisé par une application Android, le projet change de nom et se nomme maintenant "WsPiDroid"


Fonctionnalités effectuées :
  • Le Web-Service
    • Lecture et écriture sur les ports GPIO du Raspberry Pi.
    • Lecture par le client des noms de ports GPIO déclarés sur le Web-Service. Permet de retourner des noms "parlant", et non les numéros de ports.
    • Possibilité d'envoyer une commande d'arrêt et de reboot au Raspberry.
    • Possibilité de demander des information sur le système du Raspberry via les commandes "psutil".
    • Lecture de température via des capteurs DS18b20 (port « 1-wire » GPIO 4). Le web-service lit tous les capteurs connectés et retourne le résultat, soit sous forme XML, soit sous forme de tableau. Toutes les valeurs des capteurs connectés sont retournées sous forme <nom> et <valeur>. Le nom est l'identifiant du capteur relevé, exemple "28-000005adf", mais comme pour le nommage des ports GPIO dans le fichier "config.inc.php", il est possible de le nommé en un nom plus explicite.
  • Le Client-Php
    • Page d'Interaction avec les Ports GPIO via Ajax (lecture et écriture sur le port)
    • Lecture des capteurs de température DS18b20
    • Interrogation de données système du Raspberry Pi
    • Possibilité d'arrêt ou de reboot du Raspberry Pi.
    • Création d'une interface Web Responsive. (Utilisation Ecran PC et Smartphone).
  • Le Client Android
    • Application pour Smartphone sous Android version >= 3.0
    • Page d'Interaction avec les Ports GPIO (lecture et écriture sur le port)
    • Lecture des capteurs de température DS18b20
    • Possibilité d'arrêt ou de reboot du Raspberry Pi.
    • Interrogation de données système du Raspberry Pi
Évolutions en cours ou prévues :
  • [Web-Service] : Envoi de commandes Radio via émetteur RF 433Mh (Commande Volets, télécommande,...) via la lib "rcswitch-pi"
  • [Web-Service] : Lire une distance à l'aide du module Ultrason HC-SR04
  • [Web-Service] : Offrir la possibilité aux utilisateurs de configurer les données du Web-Service (nom des GPIO, nom des capteurs de température) de 2 façons différentes.
    Soit par le fichier "config.inc.php" comme actuellement, mais nécessitant l'édition du fichier de config, soit en utilisant une base de données sur le Raspberry hébergeant le Web-Service, oblige à installer une base de données sur le Raspberry si il ne possède pas déjà une, mais plus souple pour l'utilisateur qui peut ainsi configurer via une interface.
Projet d'évolutions à réaliser :
  • [Web-Service] : Lecture d'image de la PiCam.
  • [Web-Service] : Commande PWM pour commande servomoteur.
  • [Web-Service] : Commande X10 via un module CM15 avec mochad.

Téléchargements sur GitHub
Prendre uniquement les versions "Master" qui sont fonctionnelles, et pas les versions nommées "Evolution". Ces dernières sont des versions encours de développement, non fonctionnelles, ces versions me servent de sauvegarde. Téléchargement du client Android ci-dessous

[L’extension apk a été désactivée et ne peut plus être affichée.]

Copies écran et vidèo
Je vous rappel que quelques copies écran du Client Android, ainsi qu'une vidéo de présentation de la première version de ce client est disponible sur Framboise314

Merci de vos retours.
Version 0.1.0 du 01/03/2015
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par vague nerd » lun. 24 nov. 2014 13:12

Salut domi.

Comme dit de vive voix, je plussoie à l'architecture (après, pour l'implémentation, SOAP, REST ou à la main, on s'en fout).
Projet d'évolutions à réaliser :
[Web-Service] : Offrir la possibilité aux utilisateurs de configurer les données du Web-Service (nom des GPIO, nom des capteurs de température) de 2 façons différentes.
Soit par le fichier "config.inc.php" comme actuellement, mais nécessitant l'édition du fichier de config, soit en utilisant une base de données sur le Raspberry hébergeant le Web-Service, oblige à installer une base de données sur le Raspberry si il ne possède pas déjà une, mais plus souple pour l'utilisateur qui peut ainsi configurer via une interface.
Pourquoi forcément une base de données ? Un fichier plat ne ferait pas l'affaire (par exemple l'existant !)? L'interface de configuration éditerait ce fichier.... J'ai raté quelque chose ?

Est-il prévu d'ajouter la pulsation (pwm logiciel) en plus de on/off ?
La gestion des bus SPI et I2C est elle envisagable/envisagée?
Le service en lui même est-il modulaire ? On peux ajouter/brancher son plugin (pour gérer un truc sur un des bus par exemple...) ?

Bon, je pars fouiller dans le zip !
Cordialement,

Vague Nerd

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par vague nerd » lun. 24 nov. 2014 13:15

Ciel, le code est offusqué !
Cordialement,

Vague Nerd

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par domi » lun. 24 nov. 2014 14:05

vague nerd a écrit : Pourquoi forcément une base de données ? Un fichier plat ne ferait pas l'affaire (par exemple l'existant !)? L'interface de configuration éditerait ce fichier.... J'ai raté quelque chose ?
Salut,
Les 2 solutions resterons actives, c'est l'utilisateur qui fera son choix.
vague nerd a écrit : Est-il prévu d'ajouter la pulsation (pwm logiciel) en plus de on/off ?
La gestion des bus SPI et I2C est elle envisagable/envisagée?
Le service en lui même est-il modulaire ? On peux ajouter/brancher son plugin (pour gérer un truc sur un des bus par exemple...) ?
Comme dit dans la description, toute suggestion est la bienvenue.
Je termine déjà ce que j'ai prévu et qui correspond à mon premier besoin, ensuite je suis prêt à améliorer et faire évoluer ce projet.
vague nerd a écrit :Ciel, le code est offusqué !
Je t'envoi le code par mail ce soir si tu le souhaites, je t'expliquerai dans le mail pourquoi le code est offusqué, mais si cela n'est pas une sécurité en soit.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par vague nerd » lun. 24 nov. 2014 14:55

Les 2 solutions resterons actives, c'est l'utilisateur qui fera son choix.
Je voulais dire que l'ihm de configuration pourrait éditer directement le fichier .php existant (pourquoi une bd ?)...
Je t'envoi le code par mail ce soir si tu le souhaites, je t'expliquerai dans le mail pourquoi le code est offusqué, mais si cela n'est pas une sécurité en soit.
Volontiers !
Cordialement,

Vague Nerd

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par Manfraid » lun. 24 nov. 2014 17:34

j'ai eu le même genre d'idée mais avec une architecture du type xmlrpc
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

rasduino
Messages : 30
Enregistré le : ven. 10 oct. 2014 07:57

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par rasduino » mer. 26 nov. 2014 09:59

domi a écrit :Bonjour,
Comme convenu dans l'article du Blog, voici le "Thread" pour discuter du projet RPiDroid dont vous trouverez sa description sur le Blog Framboise314
Toutes suggestions d'amélioration sont les bienvenues.
Merci de vos retours.
Un seul mot me vient à l'esprit: Super!
Un grand merci pour cette excellente piste.
je cherchais une solution côté android, me voilà comblé. :)

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par domi » mer. 26 nov. 2014 11:20

rasduino a écrit : Un seul mot me vient à l'esprit: Super!
Un grand merci pour cette excellente piste.
je cherchais une solution côté android, me voilà comblé. :)
Le Projet est en cours de Développement, je viens de faire la partie lecture de sonde DS18B20 via le Bus 1-wire. Cette partie est OK sur le Web-service, il me reste à faire l'évolution sur l'application Android, ainsi que l'ajout d'un nouveau menu.
J'en dis pas trop, je mets cela en ligne lorsque ce sera stabilisé.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

rasduino
Messages : 30
Enregistré le : ven. 10 oct. 2014 07:57

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par rasduino » lun. 12 janv. 2015 11:16

Bonjour,
je m'intéresse toujours à ce projet.
Pour le moment, j'ai installé le web-service sur le Pi et j'ai fait un test de commande via le réseau interne. Pour cela, j'ai du installer, coté client sous XP, un serveur apache permettant de lancer le client php.
ça marche.
Je n'ai pas pu tester le client Android car je dois tout d'abord apprivoiser ma LiveBox Play pour accéder au serveur http du Pi en toute sécurité.
Ensuite, j'ai l'intention d'utiliser un arduino pour gérer les entrées/sorties. Le Pi lui passera les commandes et récupérera l'information via I2C.
Sinon, du nouveau sur ce projet?

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: [Projet] RpiDroid, un web service pour le Raspberry Pi

Message par domi » lun. 12 janv. 2015 12:41

Bonjour,

Oui, j'ai très peu avancé sur le projet pendant les fêtes, mais il va falloir que je mette à jour les fichiers du projet afin que vous puissiez en bénéficier.
Une fois cette phase de mise à disposition effectuée, je continuerai l'évolution.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Répondre

Retourner vers « Des interfaces pour le Raspberry Pi »