Show Posts
Pages: [1] 2
1  International / Français / Re: [Problème] Bouton simple.. on: December 07, 2012, 04:08:19 am
Problème résolue smiley-grin merci beaucoup à toi bonne journée et bonne continuation.

Cordialement Armando
2  International / Français / Re: [Problème] Bouton simple.. on: December 05, 2012, 04:57:47 am
Bonjour,

J'ai une petite question je souhaiterais envoyer des données sur un serveur grâce à l'appui de boutons poussoirs. L'envoie de données marche avec un bouton poussoir mais quand j'en rajoute un autre, il n'est pas pris en compte et vu que j'ai mis un délais après l'envoie de données, il envoie la première donnée puis la deuxième 10 sec plus tard ce qui corepond au délais. Si quelqu'un un exemple de code pour cela  smiley-lol
Mon code actuel:
Code:
#include <SPI.h>         
   #include <Ethernet.h>
   #include <EthernetUdp.h>         
   #include <Server.h>
   #include <VirtualWire.h>
   // Enter a MAC address and IP address for your controller below.
   // The IP address will be dependent on your local network:
   byte mac[] = { 
   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
   IPAddress ip(192, 168, 1, 0);

   unsigned int localPort = 9999;      // local port to listen on

   // buffers for receiving and sending data
   char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
   char  ReplyBuffer[] = "acknowledged";       // a string to send back

   // An EthernetUDP instance to let us send and receive packets over UDP
   EthernetUDP Udp;


//---- tableau de l'adresse IP de la carte Arduino
byte ipLocal[] = { 192, 168, 1, 40 }; // le réseau local a numéro 192.168.1.x
//----- tableau de l'adresse de la passerelle ---
byte passerelle[] = { 192, 168, 1, 1 }; // l'adresse du PC de connexion à internet ou de la box
//----- tableau du masque de sous réseau
byte masque[] = { 255, 255, 255, 0 }; // idem masque sous-réseau du PC ou de la box : 255.255.255.0
//---- IP du serveur distant de connexion ----
//byte server[] = { 192,168,1,26 }; // pigebox : 192.168.1.26
byte ipServeurDistant[] = { 192,168,1,26 }; // serveur Arduino sur meme reseau local

   
    int inPin = 40;             // un bouton poussoir connecté à la broche 40
    int InPin2 = 41;             // un bouton poussoir connecté à la broche 41
    const int buttonPin = 40;   
    const int buttonPin2 = 41;
    EthernetClient client;

void setup() {
   //---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale
   //---- l'adresse IP de la passerelle internet et le masque du réseau local
   Ethernet.begin(ipLocal, passerelle, masque);
   delay(1000); // donne le temps à la carte Ethernet de s'initialiser

   IPAddress (192, 168, 1, 40); // ip de l'arduino
 
    Udp.begin(8888);
    // initialize the pushbutton pin as an input:
    pinMode(buttonPin, INPUT);
    pinMode(buttonPin2, INPUT);
  }

void loop() {
   
 
    // read the state of the pushbutton value:
     buttonState = digitalRead(buttonPin);
     buttonState = digitalRead(buttonPin2);

     // check if the pushbutton is pressed.     
    if (buttonState == HIGH)(buttonPin); {
     
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: debut");
    Udp.endPacket(); 
    delay(10000);
    }
   
   
    if (buttonState == HIGH)(buttonPin2); {
   
    IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: fin");
    Udp.endPacket();
    delay(10000);
   
    if (buttonState == LOW)
    client.stop();
    }
  }

Cordialement
3  International / Français / Re: Envoie de données en UDP on: December 04, 2012, 07:50:21 am
Problème résolue merci à toi Gromain. smiley-grin
4  International / Français / Re: Envoie de données en UDP on: December 04, 2012, 07:35:53 am
Je pense que le problème vient de ma commande qui ne dit pas à la carte Arduino d'arrêter d'envoyer des paquets quand le serveur en a reçu un. C'est pour cela qu'il en envoie continuellement.
5  International / Français / Re: Envoie de données en UDP on: December 03, 2012, 09:51:23 am
Code:
boolean memo = false; // variable globale, à placer en tete du code

void setup() {
  //---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale
//---- l'adresse IP de la passerelle internet et le masque du réseau local
Ethernet.begin(ipLocal, passerelle, masque);
delay(1000); // donne le temps à la carte Ethernet de s'initialiser

  IPAddress (192, 168, 1, 40); // ip de l'arduino
 
  Udp.begin(8888);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {

 
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  // check if the pushbutton is pressed.     
    if (buttonState == HIGH &! memo);
      {
 
 IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: debut");
    Udp.endPacket();
    memo=true; // on memorise que la commande a été envoyée
      }
  if (buttonState == LOW); {
  memo=false; // on remet à zéro le flag
   delay(100);
  }
 }
   


toujours le même problême  smiley-cry
6  International / Français / Re: Envoie de données en UDP on: December 03, 2012, 08:54:56 am
pourrais-tu m'éclairer sur la commande qui va permettre lors de l'appui sur le bouton poussoir, d'envoyer le paquet et d'arrêter l'envoie quand on relâche le bouton. Avec la commande il envoie le paquet 1 fois et ne le renvoie pas si il est pressé une autre fois  smiley-roll
Code:
void loop() {

 
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  // check if the pushbutton is pressed.     
    if (buttonState == HIGH);
 
 IPAddress remoteIP(192, 168, 1, 26); // ip du serveur
    Udp.beginPacket(remoteIP, 9999);
    Udp.write("label: debut");
    Udp.endPacket();
     
    if (buttonState == LOW);
     Udp.endPacket();

je pense qu'il n' y a pas de boucle.
7  International / Français / Re: Envoie de données en UDP on: December 03, 2012, 07:20:00 am
Ok merci, je vais bosser sur la fonction LOW du bouton car je me retrouve avec 10000 repères sur le serveur c'est ennuyant smiley-lol
8  International / Français / Re: Envoie de données en UDP on: December 03, 2012, 07:05:11 am
C'est bon la carte Arduino communique avec le serveur  smiley-grin mais l'action ce fait continuellement, le bouton poussoir n'est pas pris en compte j'ai l'impression.
9  International / Français / Re: Envoie de données en UDP on: December 03, 2012, 06:00:01 am
Merci pour la remarque je n'est pas fait attention  smiley-lol
Toujours aucun changement au niveau de Wireshark. Tout a l'heure j'ai eu quelques trames sur Wireshark ( la source était Arduino.cc et la destination était mon pc en 192.168.1.59 alors qu'elle est censé être 192.168.1.26).
10  International / Français / Re: Envoie de données en UDP on: December 03, 2012, 05:13:26 am
ça compile bien mais sur Wireshark il n' y a aucune trame envoyée par l'Arduino. smiley-confuse
11  International / Français / Re: Envoie de données en UDP on: December 03, 2012, 04:49:03 am
Bon après quelques modifications du programme, aucun changement  smiley-lol
voici le code actuel:

Code:
#include <SPI.h>         
#include <Ethernet.h>
#include <EthernetUdp.h>         
#include <Server.h>
#include <Client.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 0);

unsigned int localPort = 9999;      // local port to listen on

// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  ReplyBuffer[] = "acknowledged";       // a string to send back

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;


//---- tableau de l'adresse IP de la carte Arduino
byte ipLocal[] = { 192,168,1,40 }; // le réseau local a numéro 192.168.1.x
//----- tableau de l'adresse de la passerelle ---
byte passerelle[] = { 192, 168, 1, 1 }; // l'adresse du PC de connexion à internet ou de la box
//----- tableau du masque de sous réseau
byte masque[] = { 255, 255, 255, 0 }; // idem masque sous-réseau du PC ou de la box : 255.255.255.0
//---- IP du serveur distant de connexion ----
//byte server[] = { 192,168,1,26 }; // pigebox : 192.168.1.26
byte ipServeurDistant[] = { 192,168,1,26 }; // serveur Arduino sur meme reseau local

// un bouton poussoir connecté à la broche 1
    int inPin = 40;
const int buttonPin = 40;     // the number of the pushbutton pin
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  //---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale
//---- l'adresse IP de la passerelle internet et le masque du réseau local
Ethernet.begin(ipLocal, passerelle, masque);
delay(1000); // donne le temps à la carte Ethernet de s'initialiser

  // start the Ethernet and UDP:
  Ethernet.begin(mac,192, 168, 1, 40);
  Udp.begin(8888);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {

  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  // check if the pushbutton is pressed.     
    if (buttonState == HIGH);
  Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
   
    Udp.write("label: debut");

    Udp.endPacket();
}
12  International / Français / Re: Envoie de données en UDP on: December 02, 2012, 09:35:56 am
Merci de ta réponse je vais essayé demain matin avec la commande et je verrais bien le résultat  smiley-lol
13  International / Français / Re: Envoie de données en UDP on: November 30, 2012, 10:14:57 am
Voilà un peu de documentations technique :
http://wiki.tryphon.eu/pigebox/create-labels-with-rivendell.
http://projects.tryphon.eu/blog/2011/02/28/arduino-used-for-networked-red-button/

cela décrit parfaitement le projet.
14  International / Français / Re: Envoie de données en UDP on: November 30, 2012, 09:36:18 am
voici ce qu'il y a d'installé sur notre serveur local: http://www.tryphon.eu/fr/blog/2010/02/10/decouverte-interface-pigebox/

quel "exemple" me conseilles-tu d'utiliser ?

15  International / Français / Re: Envoie de données en UDP on: November 30, 2012, 08:39:26 am
j'utilise un shield ethernet avec Wiznet, voici mon code pour le moment.

Code:
#include <SPI.h>         // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include <EthernetUdp.h>         // UDP library from: bjoern@cs.stanford.edu 12/30/2008
#include <Server.h>
#include <Client.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 40);

unsigned int localPort = 8888;      // local port to listen on

// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  ReplyBuffer[] = "acknowledged";       // a string to send back

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

// un bouton poussoir connecté à la broche 1
    int inPin = 40;
const int buttonPin = 40;     // the number of the pushbutton pin
int buttonState = 0;         // variable for reading the pushbutton status

//---- tableau de l'adresse IP de la carte Arduino
byte ipLocal[] = { 192,168,1,40 }; // le réseau local a numéro 192.168.1.x
//----- tableau de l'adresse de la passerelle ---
byte passerelle[] = { 192, 168, 1, 1 }; // l'adresse du PC de connexion à internet ou de la box
//----- tableau du masque de sous réseau
byte masque[] = { 255, 255, 255, 0 }; // idem masque sous-réseau du PC ou de la box : 255.255.255.0
//---- IP du serveur distant de connexion ----
//byte server[] = { 192,168,1,26 }; // pigebox : 192.168.1.26
byte ipServeurDistant[] = { 192,168,1,26 }; // serveur Arduino sur meme reseau local


void setup() {
  //---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale
//---- l'adresse IP de la passerelle internet et le masque du réseau local
Ethernet.begin(ipLocal, passerelle, masque);
delay(1000); // donne le temps à la carte Ethernet de s'initialiser

  // start the Ethernet and UDP:
  Ethernet.begin(mac,192, 168, 1, 40);
  Udp.begin(8888);
  Serial.begin(8888);
// initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  //---- connexion au serveur distant ----
 Serial.println("Connexion vers serveur en cours...");
 int testConnexion = true;
 if (testConnexion==true);  // si la connexion du client a réussi
  Serial.println("Connexion au serveur reussie");
    Serial.println("Envoi d'une requete HTTP au serveur");
 // Envoi de la requete HTTP au serveur
      Serial.println("GET /? HTTP/1.1"); // mettre donnees pour serveur apres le point interrogation
      Serial.println();
      //---- attente de la réponse du serveur distant ----     
    Serial.println("Attente de la reponse du Serveur");

 Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
   
    Udp.write("label: debut");

    Udp.endPacket();

  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  // check if the pushbutton is pressed.     
    if (buttonState == HIGH);
   
 
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());

    // read the packet into packetBufffer
    Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contents:");
    Serial.println(packetBuffer);

    // send a reply, to the IP address and port that sent us the packet we received
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(ReplyBuffer);
    Udp.endPacket();
  }
  delay(10);
}
Pages: [1] 2