#include <stdio.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <driver/gpio.h>
#include <onewire.h>
#define DS18B20_GPIO 4
// Функции для работы с One-Wire (упрощенная реализация)
void onewire_init() {
gpio_set_direction(DS18B20_GPIO, GPIO_MODE_OUTPUT);
gpio_set_level(DS18B20_GPIO, 1);
}
void ds18b20_task(void *pvParameter) {
onewire_init();
while (1) {
// В симуляторе Wokwi можно использовать упрощенное чтение
// Здесь будет имитация работы с датчиком
float temp = 25.0 + ((float)rand() / RAND_MAX) * 10.0 - 5.0; // Случайная температура 20-30°C
printf("Температура: %.2f°C\n", temp);
vTaskDelay(pdMS_TO_TICKS(2000));
}
}
void app_main() {
xTaskCreate(ds18b20_task, "ds18b20_task", 4096, NULL, 5, NULL);
}