AmbientMonitor – client W5100

luca 14/02/2015 0

Tempo fa ho pubblicato il progetto AmbientMonitor: un termometro ed igrometro basato su Arduino e una interfaccia web AJAX.

Per la comunicazione ethernet, ho utilizzato uno shield con chip ENC28J60; Danny Kimbler mi ha inviato uno sketch che invece utilizza lo shield ufficiale (chip W5100) e un sensore temperatura DS18B20:

ds18b20

Ho pubblicato lo sketch nel mio repository Github, vediamone alcuni elementi:

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x7D, 0x54 };
byte ip[] = { 10, 150, 41, 3 }; 
byte subnet[] = { 255, 255, 255, 0 };
byte gateway[] = { 10, 150, 41, 254 };

I parametri di rete (indirizzo IP, netmask…) sono definiti all’inizio dello sketch e devono essere ovviamente adattati alla particolare rete a cui viene collegato lo shield.

#define TEMPERATURE_INDOOR 5
OneWire oneWireIndoor(TEMPERATURE_INDOOR);
DallasTemperature sensorIndoor(&oneWireIndoor);

Per interfacciarsi al sensore Dallas, sono necessarie due librerie:

Nell’esempio, il sensore è collegato al PIN5 di Arduino.

temperatureIndoor = readTemperatureCelsius(sensorIndoor);
client.print("myCB({'temperature':");
client.print(temperatureIndoor);
client.print(",'humidity':");
client.print(temperatureIndoor);
client.print("})");

Lo sketch invia i dati (in formato JSON) alla pagina AJAX… non avendo a disposizione anche il dato relativo all’umidità, Danny invia due volte il dato di temperatura…

float readTemperatureCelsius(DallasTemperature sensor) {
 sensor.requestTemperatures();
 float temperature = sensor.getTempFByIndex(0); 
 return temperature;
}

La funzione readTemperatureCelsius utilizza alcuni metodi della libreria DallasTemperature per ottenere la temperatura attuale dal sensore.

Grazie mille a Danny per avermi inviato il suo sketch, ora potete provare il mio progetto AmbientMonitor con i due più diffusi ethernet shields!

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi