December 1, 2023
Description
Hier ist der Link zu den Platinen: https://www.pcbway.com/project/shareproject/Temperaturmessstation_34478d1d.html
Und hier könnt ihr selber Platinen bestellen: https://www.pcbway.com/
Temperaturmessstation mit LCD, DHT11 & 22, DS18B20, LM35, TMP36
Arduino Temp Sensor
Benötigte Bauteile:
INPUT: 6V-20V
Video:
Code: Temperaturmessstation
//#define S_LM35
#define S_DS18B20
#define S_DHT11
// -------------------------------------------------------------------------------------------------------------------------
// ----------LCD----------
#include <Wire.h> // Wire Bibliothek einbinden
#include <LiquidCrystal_I2C.h> // Vorher hinzugefügte LiquidCrystal_I2C Bibliothek einbinden
LiquidCrystal_I2C lcd(0x27, 16, 2); //Hier wird festgelegt um was für einen Display es sich handelt. In diesem Fall eines mit 16 Zeichen in 2 Zeilen und der HEX-Adresse 0x27. Für ein vierzeiliges I2C-LCD verwendet man den Code "LiquidCrystal_I2C lcd(0x27, 20, 4)"
// ----------LM35----------
#ifdef S_LM35
int LM35 = A0; //Der Sensor soll am analogen Pin A0 angeschlossen werden. Wir nennen den Pin ab jetzt "LM35"
int sensorwert;
int temperatur = 0; //Unter der Variablen "temperatur" wird später der Temperaturwert abgespeichert.
int t=500; //Der Wert für „t“ gibt im Code die zeitlichen Abstände zwischen den einzelnen Messungen vor.
#endif
// ----------DS18B20----------
#ifdef S_DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 6 // Pin für DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#endif
// ----------DHT11----------
#ifdef S_DHT11
#include "DHT.h" //DHT Bibliothek laden
#define DHTPIN 7 //Der Sensor wird an PIN 2 angeschlossen
#define DHTTYPE DHT11 // Es handelt sich um den DHT11 Sensor
DHT dht(DHTPIN, DHTTYPE); //Der Sensor wird ab jetzt mit „dth“ angesprochen
#endif
#define DELAY0 2000
// -------------------------------------------------------------------------------------------------------------------------
void SensorLM35(){
#ifdef S_LM35
sensorwert=analogRead(LM35); //Auslesen des Sensorwertes.
temperatur= map(sensorwert, 0, 307, 0, 150); //Umwandeln des Sensorwertes mit Hilfe des "map" Befehls.
lcd.setCursor(0, 0);//Hier wird die Position des ersten Zeichens festgelegt. In diesem Fall bedeutet (0,0) das erste Zeichen in der ersten Zeile.
lcd.print("Temperatur: ");
lcd.setCursor(0, 1); // In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile.
lcd.print(temperatur);
lcd.print(" Grad");
delay(t); // Nach jeder Messung ist je eine kleine Pause mit der Dauer „t“ in Millisekunden.
#endif
}
// -------------------------------------------------------------------------------------------------------------------------
void SensorDS18B20(){
#ifdef S_DS18B20
sensors.requestTemperatures();
lcd.setCursor(0, 0);//Hier wird die Position des ersten Zeichens festgelegt. In diesem Fall bedeutet (0,0) das erste Zeichen in der ersten Zeile.
lcd.print("Temperatur: ");
lcd.setCursor(0, 1); // In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile.
lcd.print(sensors.getTempCByIndex(0));
lcd.print(" Grad");
delay(500);
#endif
}
// -------------------------------------------------------------------------------------------------------------------------
void SensorDHT(){
#ifdef S_DHT11
delay(2000); //Zwei Sekunden Vorlaufzeit bis zur Messung (der Sensor ist etwas träge)
float Luftfeuchtigkeit = dht.readHumidity(); //die Luftfeuchtigkeit auslesen und unter „Luftfeutchtigkeit“ speichern
float Temperatur = dht.readTemperature();//die Temperatur auslesen und unter „Temperatur“ speichern
lcd.setCursor(0,0);
lcd.print("Luftfeu: ");
lcd.print(Luftfeuchtigkeit);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.print(Temperatur);
lcd.print(" Grad");
#endif
}
void WechselLCD(){
delay(DELAY0);
lcd.clear();
}
// -------------------------------------------------------------------------------------------------------------------------
void setup() {
lcd.init(); //Im Setup wird der LCD gestartet
lcd.backlight(); //Hintergrundbeleuchtung einschalten (lcd.noBacklight(); schaltet die Beleuchtung aus).
#ifdef S_DS18B20
sensors.begin();
#endif
#ifdef S_DHT11
dht.begin(); //DHT11 Sensor starten
#endif
}
// -------------------------------------------------------------------------------------------------------------------------
void loop() {
SensorLM35();
WechselLCD();
SensorDS18B20();
WechselLCD();
SensorDHT();
WechselLCD();
}License:
Creative Commons — Attribution — Noncommercial
6