Arduino Nano - Koelsysteem met DS18B20 Temperatuursensor

Deze tutorial laat u zien hoe u met de Arduino Nano de temperatuur kunt regelen met behulp van een ventilator en een DS18B20 temperatuursensor.

Als u liever een DHT11 of DHT22 in plaats van de DS18B20 sensor gebruikt, raadpleeg dan Arduino Nano - Koelsysteem met DHT Sensor.

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×Relais
1×12V DC Koelventilator
1×(Alternatief) 5V DC Koelventilator
1×12V Voeding Adapter
1×DC Voeding Connector
1×Jumper Draden
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 Koelventilator en de DS18B20 Temperatuursensor

De ventilator in deze tutorial vereist een 12V voeding. Zodra er stroom wordt geleverd, draait de ventilator; als de voeding wegvalt, stopt hij met draaien. Om de ventilator via de Arduino Nano te regelen, gebruiken we een relais als tussenstation.

Als u niet bekend bent met temperatuursensoren en ventilatoren (inclusief pinouts, werking en programmering), kunnen de volgende tutorials u meer informatie bieden:

Bedradingsschema

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

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema met terminal adapter (aanbevolen).
Arduino Nano relais bedradingsschema

This image is created using Fritzing. Click to enlarge image

Wij raden aan een DS18B20 sensor mét bijbehorende bedrading adapter te kopen voor een probleemloze opstelling. Deze adapter heeft een ingebouwde weerstand, zodat u geen extra weerstand in de bedrading hoeft toe te voegen.

Hoe het Systeem Werkt

  • De Arduino Nano leest de temperatuur uit de temperatuursensor.
  • Is de meting hoger dan de bovengrens, dan schakelt de Arduino Nano de ventilator in.
  • Is de meting lager dan de ondergrens, dan schakelt de Arduino Nano de ventilator uit.

Deze cyclus wordt continu herhaald.

Arduino Nano Code voor Koelsysteem met DS18B20 sensor

/* * 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-cooling-system-using-ds18b20-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> const int THRESHOLD_ON = 25; // upper threshold of temperature, change to your desire value const int THRESHOLD_OFF = 20; // lower threshold of temperature, change to your desire value const int SENSOR_PIN = 2; // The Arduino Nano pin connected to DS18B20 sensor's DQ pin const int FAN_PIN = A5; // The Arduino Nano pin connected to relay which connected to fan OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. DS18B20.begin(); // initialize the sensor pinMode(FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if(temperature > THRESHOLD_ON){ Serial.println("The fan is turned on"); digitalWrite(FAN_PIN, HIGH); // turn on } else if(temperature < THRESHOLD_OFF){ Serial.println("The fan is turned off"); digitalWrite(FAN_PIN, LOW); // turn on } delay(500); }

In bovenstaande code zal de Arduino Nano de ventilator inschakelen zodra de temperatuur boven de 25°C stijgt. De ventilator blijft draaien totdat de temperatuur onder de 20°C daalt.

Snelle Stappen

  • Verbind de Arduino Nano met uw computer via een USB-kabel
  • Start de Arduino IDE, selecteer het juiste board en de juiste poort
  • Klik op het Libraries-icoon in de zijbalk van de Arduino IDE.
  • Zoek op “Dallas” en vind de DallasTemperature bibliotheek van Miles Burton.
  • Klik vervolgens op de Installeren-knop om deze aan uw project toe te voegen.
Arduino Nano Dallas Temperature library
  • U wordt gevraagd om een afhankelijkheid te installeren. Klik op Installeer alles om de OneWire bibliotheek te installeren.
Arduino Nano onewire library
  • Kopieer de code en open deze in de Arduino IDE.
  • Klik op de Upload-knop in de Arduino IDE om de code te compileren en naar de Arduino Nano te uploaden.
  • Verander de temperatuur van de sensoromgeving door deze warmer of kouder te maken.
  • Controleer de status van de ventilator in de Seriële Monitor.

Gevorderde Kennis

Deze regeltechniek wordt een on-off controller genoemd, ook wel bekend als een signaalregelaar of "bang-bang" controller. Het is vrij eenvoudig om deze methode te implementeren.

Een alternatief voor de traditionele temperatuurregeling is de PID-regelaar. Deze methode zorgt voor een stabielere gewenste temperatuur, maar is complex en moeilijker te begrijpen en toe te passen. Daarom wordt de PID-regelaar niet veel gebruikt voor temperatuurregeling.

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!