simple_float* ds18b20_read_temperature_all(void) { uint8_t i = 0; simple_float *temperatures; temperatures = malloc(one_wire_devices_list_size * sizeof(simple_float)); for (i = 0; i < one_wire_devices_list_size; ++i) { temperatures[i] = ds18b20_read_temperature(one_wire_list_of_devices[i]); } return temperatures; }
int temp_sensor_driver_soil_b_runner() { int soil_temperature_b; /* This is P8X32A P10, QuickStart J1_11 & Vegimeter TS1 DQ */ uint8_t pin = 10; /* QuickStart board */ /* uint8_t pin = 2; */ /* DEMO Board */ int err = 0; if ((err = ds18b20_read_temperature(pin, &soil_temperature_b))) { printf("Temperature sensor on pin %d error: %d\n", pin, err); } return soil_temperature_b; }
void health_state(void *pvParameters) { ds18b20_addr_t temp_sensor_addr; int sensor_count = ds18b20_scan_devices(SENSOR_GPIO, &temp_sensor_addr, 1); if (sensor_count != 1) { printf("No sensors found on one wire bus\n"); vTaskDelete(NULL); return; } while (1) { if (!ds18b20_measure(SENSOR_GPIO, temp_sensor_addr, /*wait=*/false)) { printf("Measurement error\n"); } vTaskDelay(1000 / portTICK_PERIOD_MS); float temp = ds18b20_read_temperature(SENSOR_GPIO, temp_sensor_addr); printf("Temperature: %f\n", temp); vTaskDelay(5000 / portTICK_PERIOD_MS); } }