ciao a tutti,
vorrei costruire con arduino un webserver che:
- rileva la temperatura ambiente mediante un sensore ds18b20
- pubblica il valore su pagina web
Per fare ciò ho utilizzato un arduino nano con l'ethernet shield come in questa immagine:
seguendo questo articolo.
Per la ethernet shield ho utilizzato le librerie
/
#include "etherShield.h" // librerie per ethernet
#include "ETHER_28J60.h" // librerie per ethernet
static uint8_t mac[6] = {0x54,0x55,0x58,0x10,0x00,0x24}; // mac address (a piacere)
static uint8_t ip[4] = {10,0,0,15}; // ip (dove connettersi(
static uint16_t port = 80; // porta 80
ETHER_28J60 ethernet; // dichiarazione di variabile per uso dell'ethernet
dichiarando nella funzione setup(), l'indirizzo ip, il mac address e la porta:
void setup() {
ethernet.setup(mac, ip, port);
poi nel codice, leggo la temperatura del sensore dallas ds18b20 e la pubblico sull'indirizzo ip 10.0.0.15, convertendo il valore di temperatura in una stringa:
dtostrf(Tamb,8,4, dtostrfbuffer);
Serial.print(dtostrfbuffer);
if (ethernet.serviceRequest())
{
ethernet.print(dtostrfbuffer);
ethernet.respond();
Tuttavia, se mi collego all'indirizzo web 10.0.0.15, mi restituisce 0.
Ho notato che se scrivo sulla seriale, il valore è corretto, fin tanto che non parte la chiamata dall'indirizzo ip.... mi mostra 0.0000 e poi finita la chiamata, sull'uscita seriale mi riporta il valore corretto.
Perchè ?