Skyduino:~#
Articles
arduino, programmation, projet, web

[Commande à distance] Ethernet Firmata, PHP et Jquery

Salut à tous !

Depuis hier je suis parti dans un truc complétement dingue ^^

Le but final est on ne peut plus classique, contrôler une led depuis une page web.

alors là tout de suite, webduino, json, raw tcp, … j’ai trouvé un nombre incalculable de sketch arduino pour arriver à ce but.

Mais faire un simple wrapper http ou tcp avec un client python n’est pas digne d’être réaliser par moi 8) (quoi je troll … =P).
Alors juste pour le fun j’ai cherché un moyen encore plutôt innovant, pas encore utilisé et qui est de la classe 8).

Et je me suis rappeler de firmata, le protocole universelle pour contrôler à distance un microcontrolleur via le port série.
Mais justement le probléme c’est qu’il faut utiliser le port série !

Que faire ? Quel question ! Modifier la librairie firmata arduino officiel pour quel support l’ethernet (ou le wifi) !
M’enfin voyons =P

Mais pourquoi firmata ?
C’est trés simple j’avais pas envie de faire mon propre protocole de zéro =P
Les + de firmata :
– Les sketch fait avec la librairie firmata d’origine ne requière qu’une petite modif du begin() pour fonctionner avec ma version !
– 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 (inclue dans le xml-rpc),
– le client doit pouvoir écrire via des sockets TCP (ici c’est coté serveur que tout ce passe).

Sans plus attendre le code source !
zip Google Doc

/!\ Ne pas utilisez cette librairie autre pars qu’en local et dans un contexte de développement /!\
Je ne serais pas responsable en cas d’un quelconque probléme !

Mais j’allai quand même pas en resté là ! (quitte à faire !)
J’ai donc réaliser un xml-rpc en php avec un GUI en html/js.

Je garantit pas que toute les fonctions du xml-rpc soit valide !
Il y en a une grande partit que j’ai coder comme ça, s’en vraiment savoir comment elles fonctionnaient ^^

Tout ce que je sais c’est que la partie pour ce loggé, et faire allumer/éteindre une led marche !

Le zip :
Google Doc

Pour ceux qui ne veulent pas s’embêter à lancer un serveur wamp et préparer leur carte arduino voila ce que ça donne :

Arduino + Ethernet shield + Protoshield = EthFirmata

L'écran de log-in


Ecran principal du GUI

Remarque: j’ai utilisé jquery pour rendre le GUI dynamique mais pour les débutants ou ceux qui ne voudrait pas faire de truc trop compliqué, un simple formulaire html en post suffit.

L’intégralité du code php et html/js a été réaliser en 8h chrono 8) C’est comme ça que j’ai occupé ma journée ^^

Si des personnes sont intéresser par ce projet et veulent aider faite le savoir !
Une grosse partie de l’implantation du protocole firmata est buggé, ce qui en soit demandera un certain temps pour tout coder/tester.
Il faudrait aussi modifier le code javascript pour qu’il puisse être utiliser sous forme de fonctions (à la place d’une fonction spécifique hardcoder à un bouton) pour pouvoir par la suite en faire un framework utilisable dans des applications tiers.

-> http://arduino.cc/forum/index.php/topic,69143.0.html

ça ma remis dans le bain du développement php, maintenant la seul chose qui me tourne dans la tête c’est de concevoir mon propre cms en php et « enfin » avoir un blog qui me ressemble ^^

Publicités

Discussion

4 réflexions sur “[Commande à distance] Ethernet Firmata, PHP et Jquery

  1. bonjour
    le code source de la partie cliente est pas dispo pourriez vous me l’envoyer ?
    Merci

    Publié par bzctoons | 1 novembre 2013, 20 h 46 min

Rétroliens/Pings

  1. Pingback: Arduino | Pearltrees - 3 février 2012

  2. Pingback: DENIS | Pearltrees - 19 octobre 2013

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.