Fatto:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Ethernet.h>
#define ONE_WIRE_BUS_1 2
#define ONE_WIRE_BUS_2 3
#define ONE_WIRE_BUS_3 4
#define ONE_WIRE_BUS_4 5
#define ONE_WIRE_BUS_5 6
OneWire oneWire_1(ONE_WIRE_BUS_1);
OneWire oneWire_2(ONE_WIRE_BUS_2);
OneWire oneWire_3(ONE_WIRE_BUS_3);
OneWire oneWire_4(ONE_WIRE_BUS_4);
OneWire oneWire_5(ONE_WIRE_BUS_5);
DallasTemperature sensor_sonda_1(&oneWire_1);
DallasTemperature sensor_sonda_2(&oneWire_2);
DallasTemperature sensor_sonda_3(&oneWire_3);
DallasTemperature sensor_sonda_4(&oneWire_4);
DallasTemperature sensor_sonda_5(&oneWire_5);
//impostazioni di rete:::::::::::::::::::::::::::::::::::::::::::::::::
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 8);
EthernetServer server(80);
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
void setup() {
delay(1000);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Ethernet.begin(mac, ip);
server.begin();
Serial.println("Misuro la temperatura con sensore DS18B20");
Serial.println("continuo la misurazione");
delay(1000);
sensor_sonda_1.begin();
sensor_sonda_2.begin();
sensor_sonda_3.begin();
sensor_sonda_4.begin();
sensor_sonda_5.begin();
}
void loop()
{
Serial.println();
//richiedo temperature_________________
sensor_sonda_1.requestTemperatures();
sensor_sonda_2.requestTemperatures();
sensor_sonda_3.requestTemperatures();
sensor_sonda_4.requestTemperatures();
sensor_sonda_5.requestTemperatures();
//scrivo temperatura sonda 1 seriale___
Serial.print("Temperatura = ");
Serial.print(sensor_sonda_1.getTempCByIndex(0));
Serial.println(" gradi C");
//scrivo temperatura sonda 2 seriale___
Serial.print("Temperatura = ");
Serial.print(sensor_sonda_2.getTempCByIndex(0));
Serial.println(" gradi C");
//scrivo temperatura sonda 3 seriale___
Serial.print("Temperatura = ");
Serial.print(sensor_sonda_3.getTempCByIndex(0));
Serial.println(" gradi C");
//scrivo temperatura sonda 4 seriale___
Serial.print("Temperatura = ");
Serial.print(sensor_sonda_4.getTempCByIndex(0));
Serial.println(" gradi C");
//scrivo temperatura sonda 5 seriale___
Serial.print("Temperatura = ");
Serial.print(sensor_sonda_5.getTempCByIndex(0));
Serial.println(" gradi C");
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
String postText = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (postText.length() < 10) {
postText += c;
}
if (c == '\n' && currentLineIsBlank) {
//creo la pagina WEB_______________________
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // Dopo la risposta la connessione si interrompe
client.println("Refresh: 5");
client.println();
client.println("<meta charset=UTF-8>"); // serve per inserire i caretteri speciali
client.println("<!DOCTYPE HTML>");
client.println("<html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
//in base alla richiesta da URL rispondo con la sonda associata_______________
if (postText.indexOf("1") > 0) {
client.println(sensor_sonda_1.getTempCByIndex(0));
client.print(" Gradi");
}
if (postText.indexOf("2") > 0) {
client.println(sensor_sonda_2.getTempCByIndex(0));
client.print(" Gradi");
}
if (postText.indexOf("3") > 0) {
client.println(sensor_sonda_3.getTempCByIndex(0));
client.print(" Gradi");
}
if (postText.indexOf("4") > 0) {
client.println(sensor_sonda_4.getTempCByIndex(0));
client.print(" Gradi");
}
if (postText.indexOf("5") > 0) {
client.println(sensor_sonda_5.getTempCByIndex(0));
client.print(" Gradi");
}
client.stop();
Serial.println("client disconnected");
Ethernet.maintain();
}
}