Sensori con Arduino

Sonda di temperatura DS18B20

Sonda di temperatura DS18B20 - Sensori con Arduino

Descrizione

In questo episodio vedremo come usare delle sonde per misurare le temperature sia dell'aria che dei liquidi con Arduino.

Vedremo come fare i collegamenti e come scrivere gli sketch per comandare diverse sonde con un solo pin digitale.

Scarica le risorse

Progetto: Sonda di temperatura (base)

Schema

Componenti

Codice

#include <OneWire.h>#include <DallasTemperature.h> #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire); void setup() {  Serial.begin(9600);  sensors.begin();} void loop() {  sensors.requestTemperatures();  float temperature = sensors.getTempCByIndex(0);  printTemperature("Temperature", temperature);  delay(1000);} void printTemperature(String label, float value) {  if (value != DEVICE_DISCONNECTED_C) {    Serial.println(label + ": " + String(value) + "°C");  } else {    Serial.println("Impossibile rilevare la temperatura");  }}
scarica il file

Progetto: Sonda di temperatura (esteso)

Schema

Componenti

Codice

#include <OneWire.h>#include <DallasTemperature.h> #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire); int deviceCount; void setup() {  Serial.begin(9600);  sensors.begin();  deviceCount = sensors.getDeviceCount();} void loop() {  sensors.requestTemperatures();  float tempSum = 0;  for (int i = 0; i < deviceCount; i++) {    float temperature = sensors.getTempCByIndex(i);    printTemperature("Sensore " + String(i+1), temperature);    tempSum += temperature;  }  printTemperature("Media", tempSum / deviceCount);  Serial.println();  delay(1000);} void printTemperature(String label, float value) {  if (value != DEVICE_DISCONNECTED_C) {    Serial.println(label + ": " + String(value) + "°C");  } else {    Serial.println("Impossibile rilevare la temperatura");  }}
scarica il file

Progetto: Sonda di temperatura (con l'indirizzo)

Schema

Componenti

Codice

#include <OneWire.h>#include <DallasTemperature.h> #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire); DeviceAddress airSensorAddress = { 0x280x5E0xEB0x790xA20x160x030xAF };DeviceAddress waterSensorAddress = { 0x280xBD0x400x790xA20x190x030x84 }; void setup() {  Serial.begin(9600);  sensors.begin();} void loop() {  sensors.requestTemperatures();  float tempAir = sensors.getTempC(airSensorAddress);  float tempWater = sensors.getTempC(waterSensorAddress);   Serial.println("Temperature rilevate");  printTemperature("Aria", tempAir);  printTemperature("Acqua", tempWater);  Serial.println();  delay(1000);} void printTemperature(String label, float value) {  if (value != DEVICE_DISCONNECTED_C) {    Serial.println(label + ": " + String(value) + "°C");  } else {    Serial.println("Impossibile rilevare la temperatura");  }}
scarica il file

Arduino Software Hero

Vuoi imparare a programmare Arduino, ma non sai da dove cominciare?

Iscriviti al corso online

Libri consigliati


Tutorial consigliati

E-commerce di elettronica

Sul nostro negozio online trovi tutti i componenti usati nei tutorial.
Inoltre hai un'ampia scelta di prodotti tra:

  • Arduino
  • Raspberry Pi
  • Sensori
  • Robotica
  • Componenti elettronici
  • Accessori

Compra online, ricevi comodamente a casa

Visita il negozio