Go Down

Topic: communication entre arduino ethernet (Read 1 time) previous topic - next topic

vincent84

Bonjour,

j'ai un projet domotique avec 2 cartes arduino minimum. Les cartes seront branché sur mon réseau éthernet. Existe t-il un programme pour faire communiquer les cartes entre elles , ainsi que par PC ?

merci

matteo86

D'après ce que je sais pour communiquer entre deux cartes il faut relier les deux sur les bornes tx-rx

infobarquee

bonjour,
oui la liaison est faisable, non pas par rx tx puisque via ethernet.
tu connecte le tout sur un routeur et roule poulette.
AUCUNE AIDE PAR MP

logansquare

Par requête HTML peu être non ? En indiquant ton IP, tu peux envoyer une requête qui est traduit par l'autre arduino et pourront ainsi communiquer ensemble.

Look that :

 
Code: [Select]
//PIN 13,12,11,10, 4 utilisé par ethernet shield

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  // ICI met une adresse mac qui doit etre unique sur ton réseau local
IPAddress ip(10,10,129,52);     // remplace ceci par ton adresse IP local de ton arduino
EthernetServer server(80);
EthernetClient client;

//capteur
 
 int relais = 7;

void setup() {


  pinMode(relais,OUTPUT);

  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);
 
}


void loop()
{  client = server.available();

  if (client)ethernet();
}

void ethernet()
{
  if (client) {
    boolean currentLineIsBlank = true;
    String buffer="";
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        buffer+=c;
        Serial.write(c);
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
  //client.println("Refresh: 60");  // refresh the page automatically every 60 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
         
          client.println("<form action=\"http://10.10.129.52/\">");   // Attention ici met l'adresse ip de l'arduino avec lequel tu veux communiquer
// n'oublie pas que si tu veux communiquer hors local tu dois ouvrir un port de ta box et le renvoyer vers l'ip de ton arduino
         
          if(digitalRead(relais)==LOW){
           client.println("<button type=\"submit\" name=\"AllumerAlarme\" value=\"1\">Allumer Alarme</button>"); 
        }
         else if(digitalRead(relais)==HIGH) client.println("<button type=\"submit\" name=\"AllumerAlarme\" value=\"0\">Eteindre Alarme</button>");

          client.println("</form>");
          client.println("</html>");
          break;
        }
       
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
         if (buffer.indexOf("AllumerAlarme=1")>0) digitalWrite(relais,HIGH);
       
         if (buffer.indexOf("AllumerAlarme=0")>0) digitalWrite(relais,LOW);
         
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }
}


Les commentaires sont dans le code quand je recois une certaine requete, mon arduino fait qqch de spécifique

Go Up