Bonjour, je suis débutant dans la programmation arduino, je cherche a fabriquer un "chasse pigeon". C'est a dire un appareil capable d'émettre un son d'une fréquence aléatoire dans une plage donné pour effrayer ces animaux sans leur faire de mal. De plus, je cherche a ce que ce système soit pilotable par internet.
Ce système est composé d'une carte Mega, d'une horloge interne, d'un shield ethernet.
Le code est bien avancé mais lors de nos tests nous ne parvenons pas à afficher la page html via le navigateur Firefox, alors que sur le moniteur Arduino il est indiqué qu'un nouveau client est connecté.
Si au passage vous repérez des erreurs je vous en serais reconnaissant. Je précise que le code html a été vérifié plusieurs fois et ne présente apparemment pas d'erreurs (apparemment).
Merci d'avance pour votre aide.
Voici le code complet :
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
#include <Server.h>
#include <Wire.h>
#include <Client.h>
#define MaxHeaderLenght 16
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x9D, 0xFC };
byte ip[] = {169,254,60,96};
byte subnet[] = {255, 255, 0, 0};
byte gateway[] = {169,254,60,96};
EthernetServer server(80);
byte h=0;
byte d=0;
byte f=0;
byte t=0;
String HttpHeader = String(16);
void setup() {
HttpHeader="";
pinMode (A7,OUTPUT);
Serial.begin(9600);
Ethernet.begin(mac, ip, subnet, gateway);
server.begin();
Serial.print("Le serveur est a l'adresse: ");
Serial.println(Ethernet.localIP());
}
void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c= client.read();
if (HttpHeader.length() <16) {
HttpHeader = HttpHeader + c;
}
if (c=='\n'&& currentLineIsBlank) {
Serial.println(HttpHeader); }
if (HttpHeader.indexOf("h=0") > 0) { (h=0); }
else if (HttpHeader.indexOf("h=1") > 0) { (h=1); }
else if (HttpHeader.indexOf("h=2") > 0) { (h=2); }
else if (HttpHeader.indexOf("h=3") > 0) { (h=3); }
else if (HttpHeader.indexOf("h=4") > 0) { (h=4); }
else if (HttpHeader.indexOf("h=5") > 0) { (h=5); }
else if (HttpHeader.indexOf("h=6") > 0) { (h=6); }
else if (HttpHeader.indexOf("h=7") > 0) { (h=7); }
else if (HttpHeader.indexOf("h=8") > 0) { (h=8); }
else if (HttpHeader.indexOf("h=9") > 0) { (h=9); }
else if (HttpHeader.indexOf("h=10") > 0) { (h=10); }
else if (HttpHeader.indexOf("h=11") > 0) { (h=11); }
else if (HttpHeader.indexOf("h=12") > 0) { (h=12); }
else if (HttpHeader.indexOf("h=13") > 0) { (h=13); }
else if (HttpHeader.indexOf("h=14") > 0) { (h=14); }
else if (HttpHeader.indexOf("h=15") > 0) { (h=15); }
else if (HttpHeader.indexOf("h=16") > 0) { (h=16); }
else if (HttpHeader.indexOf("h=17") > 0) { (h=17); }
else if (HttpHeader.indexOf("h=18") > 0) { (h=18); }
else if (HttpHeader.indexOf("h=19") > 0) { (h=19); }
else if (HttpHeader.indexOf("h=20") > 0) { (h=20); }
else if (HttpHeader.indexOf("h=21") > 0) { (h=21); }
else if (HttpHeader.indexOf("h=22") > 0) { (h=22); }
else if (HttpHeader.indexOf("h=23") > 0) { (h=23); }
if (HttpHeader.indexOf("d=15") > 0) { (d=15); }
else if (HttpHeader.indexOf("d=30") > 0) { (d=30); }
else if (HttpHeader.indexOf("d=45") > 0) { (d=45); }
else if (HttpHeader.indexOf("d=59") > 0) { (d=59); }
client.println("HTTP/1.1 200 OK");
client.println("<!DOCTYPE HTML>");
client.println("Content-Type: text/html");
client.println("<HTML>");
client.println("<HEAD><title>Configuration du chasse nuisibles </title></HEAD>");
client.println("<BODY>");
client.println("<h3>Panneau de configuration du chasse nuisibles</h3>");
client.println("<FORM ACTION='sitechassenuisible.html' METHOD='GET'>");
client.println("<P>Heure de debut :");
client.println("<SELECT NAME='h' multiple size=1>");
client.println("<OPTION VALUE='00'>00:00");
client.println("<OPTION VALUE='01'>01:00");
client.println("<OPTION VALUE='02'>02:00");
client.println("<OPTION VALUE='03'>03:00");
client.println("<OPTION VALUE='04'>04:00");
client.println("<OPTION VALUE='05'>05:00");
client.println("<OPTION VALUE='06'>06:00");
client.println("<OPTION VALUE='07'>07:00");
client.println("<OPTION VALUE='08'>08:00");
client.println("<OPTION VALUE='09'>09:00");
client.println("<OPTION VALUE='10'>10:00");
client.println("<OPTION VALUE='11'>11:00");
client.println("<OPTION VALUE='12'>12:00");
client.println("<OPTION VALUE='13'>13:00");
client.println("<OPTION VALUE='14'>14:00");
client.println("<OPTION VALUE='15'>15:00");
client.println("<OPTION VALUE='17'>17:00");
client.println("<OPTION VALUE='18'>18:00");
client.println("<OPTION VALUE='19'>19:00");
client.println("<OPTION VALUE='20'>20:00");
client.println("<OPTION VALUE='21'>21:00");
client.println("<OPTION VALUE='22'>22:00");
client.println("<OPTION VALUE='23'>23:00");
client.println("</SELECT> </P>");
client.println("<P>Duree :");
client.println("<SELECT NAME='d' multiple size=1>");
client.println("<OPTION VALUE='0'>00:00");
client.println("<OPTION VALUE='15'>00:15");
client.println("<OPTION VALUE='30'>00:30");
client.println("<OPTION VALUE='45'>00:45");
client.println("<OPTION VALUE='59'>00:59");
client.println("</SELECT> </P>");
client.println("<INPUT TYPE='submit' VALUE='Envoyer la requete'>");
client.println("</FORM>");
client.println("</BODY>");
client.println("</HTML>");
}
Wire.beginTransmission(0x68);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(0x68, 7); // demander si tout est nécessaire
byte secs = Wire.read();
byte mins = Wire.read();
byte hrs = Wire.read();
byte jour = Wire.read();
byte date = Wire.read();
byte mois = Wire.read();
byte annee = Wire.read();
byte t = hrs*60 + mins ;
while ( t > h*60 && t < h*60 + d ) {
byte f = random(200,15000);
byte l = random(60000,180000);
tone(A7, f, l);
Wire.beginTransmission(0x68);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(0x68, 7);
byte secs = Wire.read();
byte mins = Wire.read();
byte hrs = Wire.read();
byte jour = Wire.read();
byte date = Wire.read();
byte mois = Wire.read();
byte annee = Wire.read();
byte t = hrs*60 + mins ;
}
}
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}}