// Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
unsigned long timeStamp = millis();
float tempC;
uint8_t tempData[96] = {};
/*
* The setup function. We only start the sensors here
*/
void setup(void)
{
Serial.begin(9600);
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
if(millis() - timeStamp >= 4000){
temperature();
if(tempC != DEVICE_DISCONNECTED_C) {
Serial.print("Temperature: ");
Serial.print(tempC);
Serial.println("°C");
}
else {
Serial.println("Error: Could not read temperature data");
}
timeStamp = millis();
}
}
void temperature()
{
sensors.requestTemperatures(); // Send the command to get temperatures
tempC = sensors.getTempCByIndex(0);
}
Loading
ds18b20
ds18b20