2024-10-1200

This commit is contained in:
hans-jurgen 2024-10-12 01:51:16 +02:00
parent 660267f0ad
commit 62fbc84e5a
2 changed files with 39 additions and 3 deletions

View File

@ -21,6 +21,7 @@ lib_deps =
paulstoffregen/XPT2046_Touchscreen @ 0.0.0-alpha+sha.26b691b2c8
adafruit/Adafruit Unified Sensor @ 1.1.14
#adafruit/Adafruit HTU21DF Library @ 1.0.5
milesburton/DallasTemperature @ 3.11.0
build_flags = ${env.build_flags}
-DKorrekturTemperatur=0.0

View File

@ -41,6 +41,18 @@ int d = 0;
void analogMeter();
void plotNeedle(int value, byte ms_delay);
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 22
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void) {
tft.init();
tft.setRotation(1);
@ -50,25 +62,48 @@ void setup(void) {
//I2C_2.begin(SDA_2, SCL_2, I2C_FREQ);
//delay(9000);
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(sensors.getTempCByIndex(0));
//delay(10000);
analogMeter(); // Draw analogue meter
updateTime = millis(); // Next update time
pinMode(ledGreen, OUTPUT);
analogWrite(ledGreen, 102);
//init_HTU21();
delay(5000);
//delay(5000);
}
void loop() {
float Temperatur;
if (updateTime <= millis()) {
updateTime = millis() + 35; // Update meter every 35 milliseconds
updateTime = millis() + 5000; // Update meter every 35 milliseconds
// Create a Sine wave for testing
d += 4; if (d >= 360) d = 0;
value[0] = 50 + 50 * sin((d + 0) * 0.0174532925);
sensors.requestTemperatures(); // Send the command to get temperatures
Temperatur = sensors.getTempCByIndex(0);
plotNeedle(value[0], 0); // It takes between 2 and 12ms to replot the needle with zero delay
tft.fillRect(0, 179, 310, 60, TFT_GREEN);
tft.setTextColor(TFT_BLACK,TFT_GREEN);
if (!Temperatur <= 127.000){
tft.drawString("Temperatur: ", 1, 180, 4);
tft.drawFloat(Temperatur, 1.2,160, 180,4);
tft.drawString("o", 212, 180, 1);
tft.drawString("C", 220, 180, 4);
tft.drawString("Raumfeuchtigkeit:", 1, 210, 4);
char buf[8]; dtostrf(value[0], 3, 0, buf);
tft.drawString(buf, 230, 210, 4);
tft.drawString("%", 270, 210, 4);
}
Serial.print(Temperatur,4); Serial.println(" °C");
}
}