#include #include #include #include // Die Header-Datei mit DS18B20-Funktionen #define GPIO_PIN 4 // GPIO Pin, an den der DS18B20 angeschlossen ist #define INTERVAL 100 // Intervall in Sekunden void delay(int seconds) { time_t start_time = time(NULL); while (time(NULL) - start_time < seconds); } int main() { ds18b20_addr_t sensor_address; // Sensoren auf dem Bus scannen (angenommen, dass nur ein Sensor angeschlossen ist) int sensor_count = ds18b20_scan_devices(GPIO_PIN, &sensor_address, 1); if (sensor_count <= 0) { printf("Kein DS18B20-Sensor gefunden!\n"); return -1; } while (1) { // Temperaturmessung starten bool success = ds18b20_measure(GPIO_PIN, sensor_address, true); if (!success) { printf("Fehler bei der Temperaturmessung\n"); } else { // Temperaturwert lesen float temperature = ds18b20_read_temperature(GPIO_PIN, sensor_address); if (temperature != temperature) { // NaN-Check printf("Fehler beim Lesen der Temperatur\n"); } else { printf("Aktuelle Temperatur: %.2f°C\n", temperature); } } // Wartezeit von 100 Sekunden delay(INTERVAL); } return 0; }