Arduino Temperatursystem mit Hysterese-Steuerung
Komponenten und Zubehör
| Komponente | Beschreibung | Anzahl |
|---|---|---|
| Arduino 101 | Mikrocontroller | 1 |
| DHT22 Temperatursensor | Temperatur- und Feuchtemessung | 1 |
| Jumper-Kabel (generic) | Verbindungen | 1 |
| LED (generic) | Statusanzeige (Grün/Rot) | 2 |
| Widerstand 10k Ohm | Pull-up für DHT22 | 1 |
| Widerstand 330 Ohm | Für LEDs | 2 |
| DFRobot LCD Button Shield | Display mit Tasten | 1 |
| Steckbrett (generic) | Aufbau | 1 |
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Das Projekt
Ziel ist die Demonstration eines Temperatursystems mit Hysterese-Steuerung.
Komponenten
Bild der verwendeten Komponenten ist im Originalprojekt enthalten.
Temperatursteuerung
Das System modelliert folgende Situation: Beim Start wird die Temperatur angezeigt. Erreicht diese 25 °C, wird die grüne LED aktiviert (Klimaanlage ein) und der Raum kühlt ab, bis die Temperatur auf 23 °C fällt. Dann schaltet die Klimaanlage aus (rote LED), bis die Temperatur wieder steigt.
Schaltplan und Video zur Demonstration sind im Originalprojekt enthalten.
Code
Temperatursteuerung (Arduino)
/* By Alexis Santiago Allende */ /* Letztes Update: 12.03.2017 */
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
boolean a=LOW, b=HIGH;
float h=0, t=0;
const int ledPin = 3;
const int ledPin2 = 2;
long previousMillis = 0;
long interval = 2000;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(0,0);
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
dht.begin();
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin, LOW);
lcd.print("Tempera:");
lcd.setCursor(0,1);
lcd.print("Humedad:");
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
h = dht.readHumidity();
t = dht.readTemperature();
lcd.setCursor(10,0);
lcd.print(t);
lcd.setCursor(10,1);
lcd.print(h);
if(t >= 25 && a == LOW) {
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin2, LOW);
a = HIGH; b = LOW;
} else if(t <= 23 && b == LOW) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin, LOW);
a = LOW; b = HIGH;
}
}
}
Schaltplan
Schaltplan-Bild ist im Originalprojekt enthalten.
Herstellungsprozess
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- Intelligente Jalousien: Automatische Lichtsteuerung mit Arduino & Solarenergie
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- Arduino Power Control Center: N-FET, P-FET, Relais & RTC Kit
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
- Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Funktionaler 3D-gedruckter Roboterarm mit Arduino – Schritt-für-Schritt-Anleitung