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
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
D'après ce que je sais pour communiquer entre deux cartes il faut relier les deux sur les bornes tx-rx
bonjour,
oui la liaison est faisable, non pas par rx tx puisque via ethernet.
tu connecte le tout sur un routeur et roule poulette.
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 :
//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