Pages: [1] 2   Go Down
Author Topic: Probleme communication UDP arduino/serveur APACHE  (Read 2166 times)
0 Members and 1 Guest are viewing this topic.
83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 769
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour a tous,

Je tente en ce moment de faire passer du udp entre un arduino et un serveur apache avec php.

Pour le moment le passage du serveur ( page php ) au arduino ce fait très bien en broadcast ou adresse spécifique, mais la ou sa na pas avancé c'est dans l'autre sens.. recevoir en udp par php ne semble pas fonctionné...

sur le serveur apache j'ai rajouter plusieur ligne listen 1234 ou listen 192.168.0.90:1234 mais rien n'y fait :s

l'ip apache : 192.168.0.90

l'ip arduino : 192.168.0.100

les deux relier par un µswitch

Voila mon code php :

Code:
$ft = stream_socket_client("udp://192.168.0.90:1234", $errno, $errstr);

if (!$ft) {
    echo "ERREUR : $errno - $errstr<br />\n";
} else {

    $recv = fread($ft,6);

    fclose($ft);
}

voici le code arudino qui sais, c'est peut être sa qui pèche..
( sans les déclarations bien sur )
Code:
    Udp.beginPacket(ip2, localPort);
    Udp.write("aaaaaaaaa");
    Udp.endPacket();


Si vous avez des idées ou du code différent de celui la je suis preneur je sais pas pourquoi je suis pas venu vous demander avant j'ai eu envie de lutter seul mais la j'ai retourné la question dans tout les sens changé mile fois les ip les ports etc.. rien n'y fait..

Merci a vous

Skizo !
« Last Edit: October 11, 2012, 11:58:14 am by skizoh » Logged

Un tien vaux mieux que deux tu l'auras !

Moselle (FR)
Offline Offline
God Member
*****
Karma: 6
Posts: 925
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,

Tu devrais aller voir les exemples suivants :
http://arduino.cc/en/Tutorial/UDPSendReceiveString
et
http://arduino.cc/en/Tutorial/UdpNtpClient
icare
Logged

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 769
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hum hum.. honnêtement je ne pense pas que ce sois coté arduino le problème mais plutôt coté php...

Merci quand même..
Logged

Un tien vaux mieux que deux tu l'auras !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Comment s'exécute ton PHP ?
Comme code d'une page Web ou lancé séparément ?

Le code PHP d'une page Web ne peut s'exécuter que sur requête de la page et pour un temps limite.

Ton process socket doit donc s'exécuter indépendemment d'Apache comme un process séparé.
Par exemple script PHP lancé depuis la ligne de commande

Est-ce le cas ?
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Edison Member
*
Karma: 9
Posts: 1654
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
sous quel forme est installé ton apache?
easyphp sous windows?
si c'est le cas, il y a une ligne a décommenter de mémoire.
Logged

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 769
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

alors c'est bien installer sous windows easy php et le programme php s’exécute bien par appel de la page web dans un fichier php séparé, j'ai pas trouver de ligne à dé commenté appart une ligne socket mais pas de udp..

merci de votre aide
Logged

Un tien vaux mieux que deux tu l'auras !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

le programme php s’exécute bien par appel de la page web dans un fichier php séparé

Quand je dis séparé, c'est séparé d'Apache
Prog a lancer en ligne de commande directement

Depuis une page web tu ne peut pas créer un serveur (listen/accept)
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 769
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

aaahh d'accord mais alors si c'est pas apache qui fait le php quel logiciel le fait? dans un .exe je mets la réception? ou en langage C au pire.. par ce que l'émission ça marche.
Logged

Un tien vaux mieux que deux tu l'auras !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

PHP et Apache c'est 2 choses différentes.

Tu crées mon-prog.php et tu l'exécutes avec php.exe
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 769
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ahhhh ok ok merci je vais mettre sa en place et je te dit ce que ca donne merci encore smiley
Logged

Un tien vaux mieux que deux tu l'auras !

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut tout le monde smiley

un petit bien sympa qui peu peut être aider :
http://blog.weeboo.net/tutoriel-arduino-ethernet-shield-controler-led-depuis-une-page-web/

Bon courage,
Trigger
Logged

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 769
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

euhhh bon au début je voulais faire sa en .bat puis j'ai vue le lien de trigger et la c'est en .js.. donc quel est le mieux? et pour l'un est l'autre je suppose qu'il n'y a pas de logiciel c'est une extension et du texte quoi ^^'

Merci de votre aide.
Logged

Un tien vaux mieux que deux tu l'auras !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Le lien de trigger mélange du JS et du PHP.
A la fin c'est du PHP qui ouvre une socket pour accéder à l'Arduino.
J'ai pas tout compris le code JavaScript. Est-ce parce que ca utilise du JQuery mais je trouve la syntaxe bizarre.

Le JavaScript gère le slider dans la page Web.
Quand l'utilisateur lâche le slider ca déclenche une requète POST vers un script PHP qui ouvre une socket UDP pour causer à l'Arduino.

Je trouve çà étrange comme façon de faire, pourquoi ne pas faire la requète directement vers l'Arduino ?
De plus ce type de code utilise des sockets PHP qui comme cela a déjà été abordé 20000 fois n'est pas disponible sur un serveur de page perso ou mutualisé. Cela ne marche que sur un serveur dédié.

Note qu'il est immensément moins dangereux d'exposer une Arduino sur Internet que n'importe quel serveur sous n'importe quel OS.
L'Arduino exécute un code en Flah ROM. Il est strictement impossible de prendre la main sur une Arduino quelque soit le type d'attaque envisagée, même si on sait que c'est une Arduino, car on ne peut pas télécharger du code à exécuter qui ne se trouve pas déjà dans la Flash.
« Last Edit: October 14, 2012, 02:11:40 pm by barbudor » Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 769
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

moi aussi ça ma paru bien compliquer pour rien mais je peut le faire en coi alorS? en .bat c'est bien non? sauf que en html mon lien télécharge au lieu d’exécuter mais je vais trouver je pense
Logged

Un tien vaux mieux que deux tu l'auras !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je comprend pas le "en .bat"

Si tu beux dire que tu exécute
  php.exe mon-prog.php
dans un fichier bat, pourquoi pas.

PHP est un langage de script/programmation générique.
Il s'interface facilement avec Apache mais pas plus / pas moins que PERL ou Python ou C++. Et il peut être utilisé en dehors.

Donc si tu veux programmer un serveur TCP qui "listen" sur une socket, tu n'as pas le choix. Que tu l'écrives en Perl, Python, PHP ou C++, c'est en dehors d'Apache qu'il faut l'exécuter.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Pages: [1] 2   Go Up
Jump to: