Bonsoir,
Mon but étant de commander une prise avec son émetteur à partir d'une page html héberger par l'Arduino (+ capteur de température) , donc voilà j'ai fait tous ça mais je pense que mes boutons sont faux, je voudrais qu'il déclenche sois la Void bpon ou Void bpoff, (pour le code entier j'ai supprimer la Void bpon et un peu la Void bpoff car je dépassé les 9500 caractères autorisée mais c'est très similaires à la Void bpoff).
//bouton on prise
client.println("<FORM METHOD=GET ACTION=priseon ");
client.println("<input type=submit value=ON ");
client.println("</FORM>");
client.println("<FORM METHOD=GET ACTION=priseon " );
client.println("<input type=submit value=OFF " );
client.println("</FORM>");
ce que donne le code entier avec Void on/off et bouton :
/*
Serveur Web
Un serveur web simple qui montre la valeur des broches d'entrée analogiques .
l'aide d'un bouclier Arduino Ethernet Wiznet .
circuit :
* Blindage Ethernet attaché aux broches 10 , 11 , 12 , 13
* Entrées analogiques attachés aux broches A0 à A5 (facultatif )
*/
#include <SPI.h>
#include <Ethernet.h>
// initialisition des ports arduino pour l'emetteur de la prise et les boutons poussoirs on et off qui seront simuler par un bouton type submit
int signal = 2;
int bpon = 3;
int bpoff = 4;
// Entrez une adresse MAC et l'adresse IP de votre commande ci-dessous.
// L'adresse IP sera fonction de votre réseau local ==> LAN
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,2,177);
// Initialisation de la bibliothèque du serveur Ethernet
// Avec l'adresse IP et le port que vous souhaitez utiliser
// ( Le port 80 est par défaut pour HTTP ) :
EthernetServer server(80);
// La routine d'installation s'exécute une fois lorsque vous appuyez sur reset:
void setup() {
// Initialiser l'axe numérique comme une sortie.
pinMode (signal, OUTPUT);
pinMode (bpon, INPUT_PULLUP);
pinMode (bpoff, INPUT_PULLUP);
// Ouvrir les communications série et attendre pour le port à ouvrir :
Serial.begin(9600);
while (!Serial) {
; // Attendre pour le port série pour connecter .
}
// Lancer la connexion Ethernet et le serveur ://////////////////////////////////////////////////////////////////////////////////////////////
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
//on créé une boucle dédié à l'allumage de la prise /////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//on créé une boucle dédié à éteindre la prise
void priseoff() {
digitalWrite(signal, LOW);
delay(10);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(1290);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
digitalWrite(signal, LOW);
delayMicroseconds(250);
digitalWrite(signal, HIGH);
delayMicroseconds(300);
}
void loop() {
// Écoute des clients entrants
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// Une requête http se termine par une ligne vide
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// Si vous avez obtenu à la fin de la ligne ( reçu une nouvelle ligne
// Caractère ) et la ligne est vide , la requête HTTP est terminée,
// De sorte que vous pouvez envoyer une réponse
if (c == '\n' && currentLineIsBlank) {
// Envoyer un en-tête de réponse HTTP standard/////////////////////////////:
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // La connexion est fermée après l'achèvement de la réaction:////////////////////////////////////////////////////////////
client.println("Refresh: 3"); // Actualise la page automatiquement toutes les "x" seconde////////////////////////////////////////////////////////////
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// Sortie la valeur de chaque broche d'entrée analogique///////////////////////////////////////////////////////////////////////////////////////////////////////////////
client.println("Bonjour");
for (int analogChannel = 0; analogChannel < 1; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.println("
");
client.print("Temperature : ");
client.print((float)sensorReading*(500.0/1023.0));
client.print(" C");
client.println("
");
//bouton on prise
client.println("<FORM METHOD=GET ACTION=priseon ");
client.println("<input type=submit value=ON ");
client.println("</FORM>");
client.println("<FORM METHOD=GET ACTION=priseon " );
client.println("<input type=submit value=OFF " );
client.println("</FORM>");
}
client.println("</html>");
break;
}
if (c == '\n') {
// Vous commencez une nouvelle ligne
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// Vous avez obtenu un caractère sur la ligne courante
delay(1);
// Fermeture de la connexion :
client.stop();
Serial.println("client disonnected");
}
}
es-ce bon ? car je n'ai pas le moyen de tester, mais je doute pour les formulaires.
Merci