TeeWasserThermometer V1.1 mit DS18B20 und Arduino Nano

Elektronics at its best

TeeWasserThermometer V1.1 mit DS18B20 und Arduino Nano

15. Juli 2019 Allgemein 0

Heute stelle ich euch die erste Version meines Teewassertemperaturwächters vor.Das ganze entstand daraus das ich sehr gerne grünen Tee trinke aber kein passendes Thermometer zur Verfügung hatte und die fertigen gefielen mir nicht wirklich. Entweder waren diese aus Glas und damit sehr zerbrechlich oder diese waren Bratenthermometer und der Pin zu kurz um diesen in den Wasserkocher zu stellen. Also musste was eigenes her.#Das ganze basiert auf einem Arduino Nano (Chinaklon) und der wasserdichten Version des DS18B20.Als erstes habe ich mir Gedanken darüber gemacht wie die Anzeige aussehen soll. Ich habe überlegt ob es ein Display mit Temperatur anzeige sein soll oder ein Buzzer der angibt wann das Wasser die richtige Gradzahl erreicht hat. Meine Entscheidung fiel aber auf eine LED- Statusanzeige im Tassendesign.

Was benötigt ihr alles dazu?1x Arduino Nano1x wasserdichte Version DS18B2018x RGB LED (gemeinsame Anode)18x Widerstand 150 Ω (SMD 1206)18x Widerstand 82 Ω (SMD 1206)18x Widerstand 100 Ω (SMD 1206)3x Widerstand 360 Ω (SMD 1206)3x Widerstand 10 kΩ (SMD 1206)3x Transistor BC817 (SOT23)1x Widerstand 4,7kΩ (THT)1x kleine Lochrasterplatinemehrere, verschieden farbige, Kabel
Auf meinem Google Drive stelle ich euch den Schaltplan und den Platinenentwurf für KiCad5 zur Verfügung.
https://drive.google.com/open?id=1uwAEpTx0yWw3ieUqTsHrikFSZCo7hEXo

Das ganze habe ich in PlatformIO programmiert und den Code findet ihr weiter unten.

Wie habe ich angefangen?Zunächst habe ich mir Gedanken darüber gemacht bei welchen Temperaturen die LED‘s welche Farben annehmen sollen. Entschieden habe ich mich für Temperaturbereiche in denen sie die entsprechenden Farben annehmen.
Temperatur >=80 Grad – rotTemperatur <=70 Grad >=60 Grad – grünTemperatur <=60 Grad >=50 Grad – weißTemperatur <=50 Grad – blau
Dann ging es ans Programmieren. Über einen Bericht bin ich zu PlatformIO gekommen welches auf Microsoft VisualStudio aufsetzt und bin hellauf begeistert. Wesentlich komfortabler als die Arduino IDE.
Für den Code benötigen wir 2 Libarys:OneWire.hundDallasTemperature.h
Diese werden in PlatformIO installiert und im Sketch eingebunden. Dann geht es an die Pinbelegung der LED‘s und des DS18B20RGB LED rot geht an Pin 9RGB LED grün geht an Pin 10RGB LED blau geht an Pin 11DS18B20 Data geht an Pin 5

#include <Arduino.h>



#include <OneWire.h>

#include <DallasTemperature.h>

int redLedPin = 9;

int greenLedPin = 10;

int blueLedPin = 11;



int temp_sensor = 5;



float temperature = 0;

int lowerLimit = 60;

int middleLimit = 70;

int lowestLimit = 50;

int higherLimit = 80;



OneWire oneWirePin(temp_sensor);

DallasTemperature sensors(&oneWirePin);



void setup(void){

Serial.begin(9600);

//Setup the LEDS to act as outputs

pinMode(redLedPin,OUTPUT);

pinMode(greenLedPin,OUTPUT);

pinMode(blueLedPin,OUTPUT);

sensors.begin();

}



void loop(){

Serial.print("Requesting Temperatures from sensors: ");

sensors.requestTemperatures(); 

Serial.println("DONE");

temperature = sensors.getTempCByIndex(0);



digitalWrite(redLedPin, LOW);

digitalWrite(greenLedPin, LOW);

digitalWrite(blueLedPin, LOW);

Serial.print("Temperature is ");

Serial.print(temperature);



//Setup the LEDS to act as outputs

if(temperature >= higherLimit && temperature > middleLimit){ 

Serial.println(", red LED is Activated"); 

digitalWrite(redLedPin, HIGH); 

} 

else if(temperature <= middleLimit && temperature >= lowerLimit){ 

Serial.println(", green LED is Activated"); 

digitalWrite(greenLedPin, HIGH);

} 

else if(temperature < lowerLimit && temperature >= lowestLimit){ 

Serial.println(", white LED is Activated"); 

digitalWrite(greenLedPin, HIGH);

digitalWrite(redLedPin, HIGH);

digitalWrite(blueLedPin, HIGH);

} 

else if(temperature < lowestLimit){

Serial.println(", blue LED is Activated");

digitalWrite(blueLedPin, HIGH);

}

delay(500);

}

Hier seht ihr den
Schaltplan und die 3D Ansicht der Platine wo die RGB LED‘s montiert sind

Die Platine um die Leitungen miteinander zu verbinden habe ich nicht ätzen lassen sondern einfach etwas Lochrasterplatine verwendet

Noch funktioniert das ganze per USB-Netzteil aber es wird demnächst eine weitere Version mit einem Li-Ion Akku geben und auch noch mit einem Buzzer erweitert

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen