Arduino - Temperatuursensor

Er zijn veel soorten temperatuursensoren die met Arduino kunnen werken, zoals LM35, TH02, HDC1000 of HTS221... In deze handleiding leren we hoe u de waterdichte DS18B20 temperatuursensor kunt gebruiken met Arduino. Deze sensor is betaalbaar, gemakkelijk te gebruiken en ziet er netjes uit.

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×DS18B20 Temperatuursensor (MET Adapter)
1×DS18B20 Temperatuursensor (ZONDER Adapter)
1×Jumper Draden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Aankoopadvies: Veel DS18B20-sensoren op de markt zijn van lage kwaliteit. We raden u ten zeerste aan de sensor van het merk DIYables te kopen via de bovenstaande link. We hebben het getest en het werkte goed.

Over de One Wire Temperatuursensor - DS18B20

Pinout

De DS18B20 temperatuursensor heeft drie pinnen:

  • GND pin: moet worden aangesloten op GND (0V)
  • VCC pin: moet worden aangesloten op VCC (5V of 3.3V)
  • DATA pin: is de 1-Wire databus. Deze moet worden verbonden met een digitale pin op de Arduino.

De sensor komt meestal in twee vormen voor: een TO-92 behuizing (lijkt op een transistor) en een waterdichte probe. In deze handleiding gebruiken we de waterdichte probe.

DS18B20 temperatuursensor Pinout

Het aansluiten van een DS18B20 temperatuursensor op een Arduino vereist een pull-up weerstand, wat soms lastig kan zijn. Sommige fabrikanten maken dit eenvoudiger door een bedradingsadapter te bieden met een ingebouwde pull-up weerstand en een schroefklem, wat het aansluiten veel makkelijker maakt.

Bedradingsschema

  • Bedradingsschema met breadboard (experimenteerprint)
Arduino Temperatuursensor Bedradingsschema

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema met adapter (aanbevolen)
Arduino DS18B20 Bedradingsschema

This image is created using Fritzing. Click to enlarge image

  • Werkelijk bedradingsschema met adapter
Arduino DS18B20 adapter bedradingsschema

This image is created using Fritzing. Click to enlarge image

Wij raden aan om een DS18B20 sensor te kopen die geleverd wordt met een bedradingsadapter voor een makkelijke aansluiting. De adapter bevat een ingebouwde weerstand, waardoor u geen aparte weerstand in de bedrading hoeft te plaatsen.

Hoe te Programmeren voor de DS18B20 Temperatuursensor

  • Voeg de library toe:
#include <OneWire.h> #include <DallasTemperature.h>
  • Declareer OneWire en DallasTemperature objecten die overeenkomen met de pin waarop de sensor DATA pin is aangesloten
OneWire oneWire(SENSOR_PIN); // maak een oneWire instantie aan DallasTemperature sensors(&oneWire); // geef oneWire door aan DallasTemperature library
  • Initialiseer de sensor:
sensors.begin(); // initialiseer de sensor
  • Stuur het commando om de temperatuur op te vragen:
sensors.requestTemperatures();
  • Lees de temperatuur in Celsius uit:
tempCelsius = sensors.getTempCByIndex(0);
  • (Optioneel) Converteer Celsius naar Fahrenheit:
tempFahrenheit = tempCelsius * 9 / 5 + 32;

Arduino Code

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> const int SENSOR_PIN = 13; // Arduino pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature tempSensor(&oneWire); // pass oneWire to DallasTemperature library float tempCelsius; // temperature in Celsius float tempFahrenheit; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial tempSensor.begin(); // initialize the sensor } void loop() { tempSensor.requestTemperatures(); // send the command to get temperatures tempCelsius = tempSensor.getTempCByIndex(0); // read temperature in Celsius tempFahrenheit = tempCelsius * 9 / 5 + 32; // convert Celsius to Fahrenheit Serial.print("Temperature: "); Serial.print(tempCelsius); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempFahrenheit); // print the temperature in Fahrenheit Serial.println("°F"); delay(500); }

Snel aan de slag

  • Verbind de Arduino met de PC via een USB-kabel
  • Open de Arduino IDE, selecteer de juiste board en poort
  • Navigeer naar het Libraries icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek op “DallasTemperature” en vind de DallasTemperature bibliotheek van Miles Burton.
  • Klik op de Installeren knop om de DallasTemperature bibliotheek te installeren.
Arduino Dallas Temperature bibliotheek
  • U wordt gevraagd om de bibliotheek afhankelijkheden te installeren
  • Klik op Alles Installeren om de OneWire bibliotheek te installeren.
Arduino onewire bibliotheek
  • Kopieer bovenstaande code en open deze met de Arduino IDE
  • Klik op de Uploaden knop in de Arduino IDE om de code naar Arduino te uploaden
  • Plaats de sensor in warm en koud water, of houd de sensor in uw hand
  • Bekijk het resultaat in de Seriële Monitor.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!