BoskoopBase/embadet/main/apple.c
2024-10-11 14:21:57 +02:00

45 lines
1.3 KiB
C

#include <stdio.h>
#include <time.h>
#include <onewire.h>
#include <ds18b20.h> // 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;
}