Bonjour,
je cherche à adapter un programme prévu pour un arduino mais il ne fonctionne pas avec la v3.
le projet : http://www.ituilerie.com/?p=967#comments
le programme d'origine qui fonctionne sur les ancienne version : avec les commentaire des parties modifiés pour que la compilation soit ok
je n'ai modifé que les deux ligne avec mes commentaire et bien sur mis a jour l'adresse mac et reseau + code telecommande de ma freebox.
je précise également je n'y connais rien et les deux ligne que j'ai modifé j'ai trouvé la solution avec google et je ne suis sur de rien.
avec mes modifs ca compile sans erreur et a chaque appuis sur la telecommande il y a de l'activité sur le reseau mais pas d'action sur ma freebox..
Merci a vous si vous avez une idée
// Controle d'une FreeBox par IR V1.0
// Par Thomas Feillant 04/11
// Tuto par Cyril sur www.ituilerie.com
#include <IRremote.h>
#include <SPI.h>
#include <Ethernet.h>
//Initialisation du reseau
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x9D, 0xEC }; // MacID de l'Ethernet Shield
byte ip[] = { 192,168,0,30 }; // IP que prendra le module
byte gateway[] = { 192,168,0,254 }; // Adresse de la Passerelle (routeur)
byte server[] = { 212,27,40,254 }; //Adresse de la FreeBox 212,27,40,253 ou 212,27,40,254
Client client(server, 80); -----> modifé en : EthernetClient client;
int RECV_PIN = 5;// Borne de Reception des infos
IRrecv irrecv(RECV_PIN);
decode_results results;
String CodeFree; // Sert a stocker le code a transmettre
void setup() {
irrecv.enableIRIn(); // Demarage du recepteur
// Demarage de la librairie Communication serie
Serial.begin(9600);
Serial.println("Connexion...");
// Tempo pour laisser une seconde a l'Ethernet Shield le temps de s'initialiser
Ethernet.begin(mac, ip, gateway);
delay(1000);
}
void loop()
{
if (irrecv.decode(&results)) {
if (client.connect()) { ----> modifé en : if(client.connect(server, 80)>0) {
CodeFree = String("none");
switch (results.value) {
case 1261: CodeFree = String("prgm_inc"); break; // La valeur du case correspond au code IR reçu
case 17645: CodeFree = String("prgm_dec"); break;
case 14317: CodeFree = String("ok"); break;
case 21741: CodeFree = String("power"); break;
case 3821: CodeFree = String("home"); break;
case 10221: CodeFree = String("up"); break;
case 26605: CodeFree = String("down"); break;
case 6125: CodeFree = String("right"); break;
case 22509: CodeFree = String("left"); break;
case 237: CodeFree = String("1"); break;
case 16621: CodeFree = String("2"); break;
case 8429: CodeFree = String("3"); break;
case 24813: CodeFree = String("4"); break;
case 4333: CodeFree = String("5"); break;
case 20717: CodeFree = String("6"); break;
case 12525: CodeFree = String("7"); break;
case 28909: CodeFree = String("8"); break;
case 2285: CodeFree = String("9"); break;
case 18669: CodeFree = String("0"); break;
case 19949: CodeFree = String("red"); break;
case 3565: CodeFree = String("green"); break;
case 2797: CodeFree = String("yellow"); break;
case 27373: CodeFree = String("blue"); break;
case 23789: CodeFree = String("rec"); break;
case 11501: CodeFree = String("play"); break; // Play est repété 2 fois car sur la logitec il y a play et pause
case 19693: CodeFree = String("play"); break;// Alors que sur la freebox il n'y a qu'une touche pour les 2
case 27885: CodeFree = String("bwd"); break;
case 7405: CodeFree = String("fwd"); break;
case 29421: CodeFree = String("vol_inc"); break;
case 10733: CodeFree = String("vol_dec"); break;
case 6637: CodeFree = String("mute"); break;
}
if (CodeFree.equals("none")) {
// Pas d'envoie de commande
Serial.println("Pas d'envoie");
Serial.println(results.value); // Affichage du code IR
} else {
Serial.println("Envoie Code");
client.println("GET /pub/remote_control?code=59042557&key="+CodeFree+" HTTP/1.0"); // Entrer le code Telecomande a distance
client.println();
}
client.stop();
}
// Tempo pour eviter la repetition d'une commande non voulu
delay(100);
irrecv.resume(); // reprise de la reception IR, necessaire
}
}