Arduino Nano - Temperatuursensor

Deze tutorial laat u zien hoe u de Arduino Nano en de waterdichte DS18B20 1-wire temperatuursensor gebruikt om de temperatuur te meten. Deze sensor is kosteneffectief, eenvoudig in gebruik en heeft een nette uitstraling in vergelijking met andere alternatieven.

Hardware Benodigdheden

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×DS18B20 Temperatuursensor (MET adapter)
1×DS18B20 Temperatuursensor (ZONDER adapter)
1×4,7 kΩ weerstand
1×Breadboard (experimenteerprint)
1×Jumperdraden (male naar male)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

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 1-Wire DS18B20 Temperatuursensor

Pinout van de Temperatuursensor

De DS18B20 temperatuursensor heeft drie pinnen die aangesloten moeten worden:

  • GND pin: moet verbonden worden met GND (0V)
  • VCC pin: moet verbonden worden met VCC (5V of 3,3V)
  • DATA pin: is de 1-wire databus en dient verbonden te worden met een digitale pin op de Arduino Nano.

De sensor wordt meestal geleverd in twee uitvoeringen: een TO-92 verpakking (die op een transistor lijkt) en een waterdichte probe. In deze tutorial gebruiken we de waterdichte probe.

DS18B20 temperatuursensor pinout

Het aansluiten van de DS18B20 temperatuursensor op de Arduino vereist een pull-up weerstand, wat het iets lastiger maakt. Sommige fabrikanten maken het echter eenvoudiger door een bedradingsadapter te leveren met een ingebouwde pull-up weerstand en een schroefklem, wat het aansluiten een stuk makkelijker maakt.

Bedradingsschema

  • Bedradingsschema met een breadboard (experimenteerprint).
Arduino Nano temperatuursensor bedrading schema

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema met behulp van de bedradingsadapter (aanbevolen).
Arduino Nano DS18B20 bedrading adapter schema

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Nano en andere componenten van stroom te voorzien.

Wij raden aan om een DS18B20 sensor samen met de bijbehorende bedradingsadapter aan te schaffen voor een eenvoudige installatie. Deze adapter heeft een geïntegreerde weerstand waardoor een extra weerstand in de bedrading niet meer nodig is. Wij hebben dit getest en het werkt prima.

Hoe te Programmeren voor de DS18B20 Temperatuursensor

  • Voeg de volgende libraries toe:
#include <OneWire.h> #include <DallasTemperature.h>
  • Declareer een object voor OneWire, gekoppeld aan de pin verbonden met de DATA pin van de sensor. Declareer ook een object voor DallasTemperature.
OneWire oneWire(SENSOR_PIN); // maak een OneWire instantie aan DallasTemperature DS18B20(&oneWire); // geef OneWire door aan DallasTemperature library
  • Initialiseer de sensor.
DS18B20.begin(); // initialiseer de sensor
  • Vraag het commando op om temperaturen op te halen.
DS18B20.requestTemperatures();
  • Lees de temperatuur in Celsius uit.
temperature_C = DS18B20.getTempCByIndex(0);
  • Bereken Fahrenheit uit Celsius:
temperature_F = temperature_C * 9 / 5 + 32;

Arduino Nano Code

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

Snelle Stappen

  • Verbind een USB-kabel tussen de Arduino Nano en de PC.
  • Open de Arduino IDE en selecteer het juiste board en de juiste poort.
  • Klik op het Libraries icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek naar “Dallas” en selecteer dan de DallasTemperature library gemaakt door Miles Burton.
  • Klik op de Installeren knop om de DallasTemperature library te installeren.
Arduino Nano Dallas Temperature library
  • U wordt gevraagd om de afhankelijkheid te installeren. Klik op de Installeer alles knop om ook de OneWire library te installeren.
Arduino Nano onewire library
  • Kopieer de code en open deze in de Arduino IDE.
  • Klik op de Uploaden knop in de Arduino IDE om de code te uploaden naar de Arduino Nano.
  • Plaats de sensor in heet en koud water, of houd hem in uw hand.
  • Bekijk het resultaat in de Serial 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!