Salut à tous
Il n'y a pas si longtemps je me suis lancé dans un projet de controle à distance par ethernet avec une carte arduino.
Alors j'ai cherché des trucs dans le domaine et j'ai vu que le truc "classique" semble être d'utiliser des requêtes http ou des des scripts python pour communiquer avec l'arduino.
Mais c'est pas assez tordu pour être annoter "done by skywodd" 8)
Alors j'ai cherché un moyen plutôt "nouveau" de communiquer avec l'arduino, un truc pas banal et j'ai trouvé !
Tout le monde connait le protocole firmata, le seul petit probléme c'est que la librairie de base ne marche qu'avec le port série et ça c'est ennuyeux !
J'ai donc modifier la librairie firmata officiel pour la rendre compatible ethernet 8)
Les + :
- Les commandes sont exactement les même qu'avec l'original !
- Les sketch fait avec la librairie d'origine ne requière qu'une petite modif du begin() pour fonctionner avec la nouvelle !
- La version modifié peut aussi être re-modifié pour fonctionné avec une wiFly (shield wifi).
- Le protocole firmata étant basé sur le protocole midi les requêtes font que quelques byte -> bande passante optimisé !
- l'objet "client" (clt) et "server" (svr) sont accessible depuis le code utilisateur donc possibilité d'envoyer des réponses maison comme avec un sketch arduino/ethernet classique.
Les - : - pas d'authentification de base -> à faire soi même
- le client doit pouvoir écrire via des sockets TCP (via un applet java, flash ou coté serveur)
Le zip avec la librairie modifié -> piéce jointe
Les exemples de base firmata sont fournis avec ainsi qu'une application de la librairie "IRL" (sketch + script python de controle).
Si vous avez des bug faite le savoir !
Maintenant que la base arduino est faite je vais m'attaquer au proxy php !
Le principe :
coté utilisateur, rien de bien nouveau une jolie page en html avec du javascript,
Le code javascript (jquery) va faire des demande XML-RPC au serveur php,
le serveur php se connecte à l'arduino, l'arduino fait son job, le serveur répond au code javascript qui affiche ce qu'il doit afficher.
Je compte placer l'authentification au niveau du script php,
le système sera constitué d'un deamon php qui tournera en tache de fond et qui ce chargera de maintenir la communication avec l'arduino,
ainsi que d'un backend XML-RPC qui ce chargera de l'authentification et du transfert de commandes au deamon.
Si d'autres personnes son intéressée par mon projet et veulent aider faite le savoir !
Et juste pour évité les problèmes, il est fortement déconseillé d'utiliser cette librairie autre pars qu'en local, je ne suis pas responsable en cas de probléme.
Le script php ne pourra pas tourner sur un serveur d'hébergement classique (type page perso) à cause des socket et du deamon.
EthFirmata.zip (41.4 KB)