serveur web arduino DHT11
bonjour a tous j'ai un petit problème , j'ai fait mon programme mais il ya un programme avec l'adresse mac et ip et je comprend pas parce que avec un autre capteur sa marche très bien ...
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <dht.h>
#define dht_dpin A0 //no ; here. Set equal to channel sensor is on
#define dht_dpin1 A1
// Entrez une adresse MAC et l'adresse IP de votre commande ci-dessous.
// L'adresse IP sera fonction de votre réseau local:
byte mac [] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(172,17,50,147);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
void setup() {
/***********************************/
Serial.begin(9600);
delay(300);//Let system settle
Serial.println("Humidity and temperature\n\n");
delay(700);//Wait rest of 1000ms recommended delay before
//accessing sensor
}//end "setup()"
// démarrer la connexion Ethernet et le serveur:
Ethernet.begin(mac , ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
/*********lecture du capteur********************************/
//This is the "heart" of the program.
DHT.read11(dht_dpin);
Serial.print("humidity = ");
Serial.print(DHT.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT.temperature);
Serial.println("C ");
delay(800);//Don't try to access too frequently... in theory
//should be once per two seconds, fastest,
//but seems to work after 0.8 second.
DHT.read11(dht_dpin1);
Serial.print("humidity 1= ");
Serial.print(DHT.humidity);
Serial.print("% ");
Serial.print("temperature 1= ");
Serial.print(DHT.temperature);
Serial.println("°C ");
delay(800);
}// end loop()
blinkWait();
/****************Serveur ****************************/
// écouter pour les 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: 5"); // actualise la page automatiquement toutes les 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// sortie la valeur de chaque broche d'entrée analogique
for (int analogChannel = 0; analogChannel < 1; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("Humidité : ");
client.print(DHT.humidity);
client.print(" %");
client.print("<br />");
client.print(" Température : ");
client.print(DHT.temperature);
client.print(" °C");
client.print("<br />");
}
client.println("</html>");
break;
}
if (c == '\n') {
// vous commencez une nouvelle ligne
currentLineIsBlank = true;
}
else if (c != '\r') {
// vous avez obtenu un caractère sur la ligne courante
currentLineIsBlank = false;
}
}
}
// laisser le temps au navigateur Web pour recevoir les données
delay(1);
// fin de la communication:
client.stop();
Serial.println("client disconnected");
}}
void blinkWait() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
serveur web arduino
bonjour à tous , alors voila je suis novice sur arduino.. je dois faire un site web avec arduino en serveur sans base de donnée . je suis arrivée comme un grand a affiché un capteur hyt221 sur mon site et maintenant c'est que j'aimerais faire pareil sans un autre capteur mettre des fausses valeurs . le problème c'est que je connais pas les instructions je voila mon programme pour 1 capteur :
- Code: Tout sélectionner
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
// Entrez une adresse MAC et l'adresse IP de votre commande ci-dessous.
// L'adresse IP sera fonction de votre réseau local:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(172,17,50,147);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
void setup() {
/***********************************/
#define HYT_ADDR 0x28 // Adresse I2C HYT 221, 271, 371 et le reste de la famille
Wire.begin(); // rejoinez le bus i2C en tant que maître
pinMode(13, OUTPUT); // reglez la broche 13 et la sortie de statut LED
//************************************/
// Ouvrez les communications série et attendre pour le port à ouvrir:
Serial.begin(9600);
while (!Serial) {
; // attendre pour le port série pour connecter.
}
// démarrer la connexion Ethernet et le serveur:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
/*********lecture du capteur********************************/
double humidity;
double temperature;
Wire.beginTransmission(HYT_ADDR); // Commencer la transmission d'un dispositif donné sur le bus I2C
Wire.requestFrom(HYT_ADDR, 4); //Demander 4 octets
//Lire les octets si elles sont disponibles
// Les deux premiers octets sont l'humidité les deux derniers sont la température
if(Wire.available() == 4) {
int b1 = Wire.read();
int b2 = Wire.read();
int b3 = Wire.read();
int b4 = Wire.read();
Wire.endTransmission(); // Fin de transmission et la libération bus I2C
// combiner octets d'humidité et de calculer l'humidité
int rawHumidity = b1 << 8 | b2;
//composé de bits pour obtenir 14 bits mesure deux premiers bits
// sont état / peu de décrochage (voir texte d'introduction)
rawHumidity = (rawHumidity &= 0x3FFF);
humidity = 100.0 / pow(2,14) * rawHumidity; //cf. doc.pdf
// combiner octets de température et de calculer la température
b4 = (b4 >> 2); // Masque trouve à 2 bits de poids faible voir HYT 221 doc
int rawTemperature = b3 << 6 | b4;
temperature = 165.0 / pow(2,14) * rawTemperature - 40;
Serial.print(" Humidite : ");
Serial.print(humidity);
Serial.print("% - Temperature: ");
Serial.print(temperature);
Serial.println("°C");
}
else {
Serial.println("Not enough bytes available on wire.");
}
blinkWait();
/****************Serveur ****************************/
// écouter pour les 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: 5"); // actualise la page automatiquement toutes les 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// sortie la valeur de chaque broche d'entrée analogique
for (int analogChannel = 0; analogChannel < 1; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("Humidité : ");
client.print(humidity);
client.print(" %");
client.print("<br />");
client.print(" Température : ");
client.print(temperature);
client.print(" °C");
client.print("<br />");
}
client.println("</html>");
break;
}
if (c == '\n') {
// vous commencez une nouvelle ligne
currentLineIsBlank = true;
}
else if (c != '\r') {
// vous avez obtenu un caractère sur la ligne courante
currentLineIsBlank = false;
}
}
}
// laisser le temps au navigateur Web pour recevoir les données
delay(1);
// fin de la communication:
client.stop();
Serial.println("client disconnected");
}}
void blinkWait() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Merci de vous donner la peine de m'aider .
ps: désoler pour les faute d'orthographe
programmation arduino
bonjour a tous . alors voila j'ai un petit problème, je suis bloquer depuis pas mal de temps .Mon projet de bac est une vmc double flux et je dois afficher deux relevé de mesure mes capteurs sont des hyt221 donc il relève la température et l'humidité . Mon problème et le suivant j'arrive a afficher sur un site web avec arduino en serveur un capteur hyt221 mais pas deux . le branchement des deux capteur sont correct mais il ya un conflit avec l'adresse i2c car il ont la même par défaut et je n'arrive pas a les changer donc si quelqu'un sait comment faire sa m'aiderais beaucoup merci d'avance