BBiot Temperatuur DS18B20

Wat moet je weten over deze sensor

In de punt van deze waterdichte sensor zit een digitale temperatuurmeter die via digitale signalen z’n meetresultaat doorgeeft aan de Arduino. 

Datasheet DS18B20

Aansluiten van deze sensor

  • Rode draad aan de 3.3V van de processor
  • Zwarte draad aan GND van de processor
  • Derde draad aan eender welke input van de processor
  • Weerstand van 4K7 (4700Ohm) tussen Derde draad en 3.3Volt

Elke sensor is voorgeprogrammeerd met een unieke code. Zo is het mogelijk om verschillende sensoren op dezelfde pin te hangen. 

DS18B20 temp sensor op Brainbox nano 33 iot

Uitleg bij demo-programma

Installeer eerst deze twee libraries:

1 wire lib

Dallas Temperature lib

 

Demo-programma

/********************************************************************/
// First we include the libraries
#include <OneWire.h> 
#include <DallasTemperature.h>
/********************************************************************/
// Data wire is plugged into pin 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);
/********************************************************************/ 
void setup(void) 
{ 
 // start serial port 
 Serial.begin(9600); 
 Serial.println("Dallas Temperature IC Control Library Demo"); 
 // Start up the library 
 sensors.begin(); 
} 
void loop(void) 
{ 
 // call sensors.requestTemperatures() to issue a global temperature 
 // request to all devices on the bus 
/********************************************************************/
 Serial.print(" Requesting temperatures..."); 
 sensors.requestTemperatures(); // Send the command to get temperature readings 
 Serial.println("DONE"); 
/********************************************************************/
 Serial.print("Temperature is: "); 
 Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?  
   // You can have more than one DS18B20 on the same bus.  
   // 0 refers to the first IC on the wire 
   delay(1000); 
}