Temperatuur meten
In de zwarte behuizing zit een arduino, 5 ledjes en een buzzer.
In de kom onder de theedoek zit rijzend deeg en een temperatuur sensor.
De optimale rijstemperatuur van deeg is 30 graden Celsius.
Als de juiste temperatuur wordt gemeten dan gaat op het kastje een groene lampje (ledje) branden.
Is de deegtemperatuur te hoog of te laag dan gaan lampjes met andere kleuren branden daarnaast zit er een audioalarm in het kastje.
Op de laptop kan de exacte deegtemperatuur getoond worden.
Natuurlijk kan de arduino ook via een adapter of batterij gevoed worden.
Uitleg van het temperatuur-alarm met Arduino
- Doel van het project
Dit project heeft als doel om met behulp van een Arduino en een DS18B20 temperatuursensor de temperatuur te meten en deze weer te geven met LED’s.
Wanneer de temperatuur te laag of te hoog wordt, gaat er een alarm af in de vorm van een buzzer.
Het alarm blijft actief totdat:
- de temperatuur weer normaal is, of
- een fysieke resetknop wordt ingedrukt.
- Gebruikte onderdelen
- Arduino
- DS18B20 temperatuursensor
- 5 LED’s:
- Blauw: te koud
- Geel 1: aan de koude kant
- Groen: temperatuur is goed
- Geel 2: aan de warme kant
- Rood: te warm
- Buzzer
- Reset-schakelaar
- Serie weerstanden voor de led’s
- Serie weerstand voor de buzzer
- Pulldown weerstand
- Temperatuurzones
De temperatuur is opgedeeld in verschillende zones:
Temperatuur
Betekenis
LED
≤ 25 °C Te koud Blauw
25 – 27 °C Aan de koude kant Geel
27 – 33 °C Goed Groen
33 – 35 °C Aan de warme kant Geel
≥ 35 °C Te warm Rood
Elke zone schakelt één LED in door deze LOW te maken (de LED’s zijn actief-low).
- Meten van de temperatuur
De DS18B20 wordt uitgelezen met de OneWire en DallasTemperature libraries.
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
De gemeten temperatuur wordt ook via de seriële monitor weergegeven zodat gecontroleerd kan worden of de meting correct is.
- Alarmwerking (flipflop)
Voor het alarm wordt een software flipflop gebruikt.
- Set (alarm aan):
- Temperatuur aan de koude kant (laagalarm)
- Temperatuur aan de warme kant (hoogalarm)
- Reset (alarm uit):
- Temperatuur weer goed (tempresetff)
- Resetknop ingedrukt (swresetff)
setff = (laagalarm || hoogalarm);
resetff = (tempresetff || swresetff);
De flipflop zorgt ervoor dat het alarm onthouden wordt, ook als de temperatuur later nog verder stijgt of daalt.
- Buzzer-logica
De buzzer gaat alleen af als:
- het alarm actief is (q1 = HIGH)
- én de temperatuur extreem is (te koud of te warm)
buzzer = q1 && (koud || heet);
Dit voorkomt dat de buzzer al afgaat bij lichte afwijkingen.
- Resetknop
Met de resetknop kan het alarm handmatig worden uitgezet.
Dit is handig als iemand het alarm heeft gehoord en bevestigd.
swresetff = digitalRead(switchresetff);
De resetknop werkt samen met de temperatuur-reset via een OF-poort.
- Conclusie
Dit project laat zien hoe:
- een temperatuursensor wordt uitgelezen
- beslissingen worden genomen met logische poorten
- een flipflop kan worden nagebootst in software
- een alarmsysteem betrouwbaar kan worden opgebouwd
Het systeem is overzichtelijk, uitbreidbaar en geschikt voor praktijktoepassingen zoals temperatuurbewaking.
De flowchart van het programma:
De arduino code:
Een kijkje in het meetkastje.
Het scoopbeeld van de temperatuur data lijn.
Maak jouw eigen website met JouwWeb