Go Down

Topic: Arduino + PHP (Read 752 times) previous topic - next topic

franckys76

Bonjour à tous,

Possédant un Arduino usb + Ethernet Shield, je tente désespérément d'obtenir l'état d'une sortie digitale par le biai d'une socket et de php mais je n'y parviens pas!
J'ouvre une socket avec php (fsockopen) puis je me sers de la fonction fwrite() pour envoyer des données cela fonctionne bien mais quand je tente de récupérer l'état d'une sortie dois-je envoyer à mon serveur une commande client.write() ou client.println() et comment récupérer cette dernière avec php? j'ai essaye avec fread() et fgets() mais tout ce que j'obtiens c'est un carré avec un "?" dedans comme-ci il ne comprenait pas le caractère.Par contre avec putty j'arrive bien à obtenir l'état de ma sortie mais impossible avec php!
Merci d'avance ;)

#1
Mar 02, 2010, 07:01 pm Last Edit: Mar 02, 2010, 07:02 pm by Gromain59 Reason: 1
Salut,

je fais des expérimentations du même type en ce moment et je me suis arraché les cheveux pour réussir à recevoir des données en php via les sockets.
J'utilise les sockets en mode non connecté "UDP", donc j'ouvre un socket coté serveur et j'écoute le port sur lequel l'arduino envoie le message UDP.
Pour que cela fonctionne, j'ai dû configurer l'arduino pour qu'il émette vers l'IP "127.0.0.1". C'est à dire que l'arduino envoie un message en mode broadcoast (à tout le monde), et le serveur php intercepte.
Je pense qu'en mode connecté (TCP), ce sera la même chose.

Une autre solution TCP serait que l'arduino fasse une requete de page php en passant l'état de la sortie en arguments dans l'url, et le serveur interpréterait en conséquences. Ca marche bien.

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

franckys76

J'ai reussi à obtenir l'etat d'une sortie avec la fonction client.println() cote arduino et fread() du cote de php mais ca ne fonctionne pas à tous les coups!!! Je m'arrache les cheveux aussi lol  :'(

Go Up