Arduino Nano - Verwarmingssysteem

Deze tutorial legt uit hoe u met een Arduino Nano de temperatuur van een kamer kunt regelen met behulp van een verwarmingselement en een DS18B20 temperatuursensor.

Hardware Vereist

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×Verwarmingselement
1×12V Voedingsadapter
1×DC-Stroomaansluiting
1×Jumperdraden
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 het Verwarmingselement en de DS18B20 Temperatuursensor

Het verwarmingselement dat in deze tutorial wordt gebruikt, vereist een 12V voeding. Wanneer er stroom wordt geleverd aan het verwarmingselement, geeft het warmte af. Om het verwarmingselement met de Arduino Nano te kunnen aansturen, moet er een relais worden gebruikt als tussenstation.

Bent u niet vertrouwd met temperatuursensoren en verwarmingselementen (pinout, werking, programmering ...), dan kunnen de volgende tutorials u helpen:

Bedradingsschema

  • Bedradingsschema met gebruik van een breadboard (experimenteerprint).
Arduino Nano heating element wiring diagram

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema met gebruik van een terminal adapter (aanbevolen).
Arduino Nano control heating element wiring diagram

This image is created using Fritzing. Click to enlarge image

Wij raden aan een DS18B20 sensor samen met de bijbehorende wiring adapter aan te schaffen voor een probleemloze installatie. Deze adapter bevat een geïntegreerde weerstand, waardoor een extra weerstand in de bedrading niet nodig is.

Hoe het Systeem Werkt

  • Arduino Nano leest de temperatuur uit via de temperatuursensor.
  • Als de temperatuur onder een bepaalde ondergrens daalt, activeert de Arduino Nano het verwarmingselement.
  • Wanneer de temperatuur boven een bovengrens stijgt, schakelt de Arduino Nano het verwarmingselement uit.

Deze cyclus wordt continu herhaald.

Arduino Nano Code voor Verwarmingssysteem 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-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define RELAY_PIN A5 // The Arduino Nano pin connected to the IN pin of relay module #define DS18B20_PIN 2 // The Arduino Nano pin connected to DS18B20 sensor's DQ pin const int THRESHOLD_OFF = 20; // upper threshold of temperature, change to your desire value const int THRESHOLD_ON = 15; // lower threshold of temperature, change to your desire value OneWire oneWire(DS18B20_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(RELAY_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_OFF) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if (temperature < THRESHOLD_ON) { Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

De bovenstaande code zorgt ervoor dat de Arduino Nano het verwarmingselement activeert wanneer de temperatuur lager is dan 15°C en het aanhoudt tot de temperatuur boven de 20°C komt.

Snelle Stappen

  • Verbind de Arduino Nano met een computer via een USB-kabel
  • Start de Arduino IDE, selecteer de juiste board en poort
  • Klik op het Libraries-icoon in de linkerbalk van de Arduino IDE.
  • Zoek naar “Dallas” en selecteer de DallasTemperature bibliotheek van Miles Burton.
  • Klik op de Install-knop om de bibliotheek te installeren.
Arduino Nano Dallas Temperature library
  • U wordt gevraagd een afhankelijkheid te installeren. Klik op Install All om de OneWire bibliotheek te installeren.
Arduino Nano onewire library
  • Kopieer de code en open deze met de Arduino IDE.
  • Klik op de Upload-knop om de code te compileren en te uploaden naar de Arduino Nano.
  • Verander de temperatuur rondom de sensor.
  • Controleer de temperatuur van het verwarmingselement en de kamertemperatuur.

Gevorderde Kennis

De hierboven beschreven regeltechniek wordt een aan-uit regelaar genoemd, ook bekend als een signaalregelaar of "bang-bang" regelaar. Het is heel eenvoudig in de praktijk toe te passen.

Er bestaat ook een alternatieve methode, de PID-regelaar. Deze methode biedt stabielere temperatuurregeling, maar is ingewikkelder om te begrijpen en toe te passen. Daarom wordt de PID-regelaar niet veel gebruikt in eenvoudige toepassingen zoals deze.

※ 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!