Créer une tâche de lecture capteur

3. 2.2 FreeRTOS en 3 phrases

3.2. Créer une tâche de lecture capteur

void sensorTask(void *parameter) {
  DHT dht(DHT_PIN, DHT_TYPE);
  dht.begin();

  for (;;) {
    float temp = dht.readTemperature();
    float hum  = dht.readHumidity();
    if (!isnan(temp) && !isnan(hum)) {
      Serial.printf("[Capteur] T=%.1f°C H=%.1f%%\n", temp, hum);
    }
    vTaskDelay(pdMS_TO_TICKS(2000)); // libère le CPU pendant 2 secondes
  }
}

void setup() {
  Serial.begin(115200);
  xTaskCreatePinnedToCore(
    sensorTask,    // fonction de la tâche
    "SensorTask",  // nom (debug)
    4096,          // taille de la pile en octets
    NULL,          // paramètre passé à la tâche
    1,             // priorité (1 = basse)
    NULL,          // handle (optionnel)
    0              // cœur 0
  );
}

void loop() {
  // cœur 1 libre pour le serveur web
  delay(1000);
}

Points clés : - xTaskCreatePinnedToCore attache une tâche à un cœur spécifique - vTaskDelay(pdMS_TO_TICKS(ms)) libère le CPU pendant l'attente — préférable à delay() - La pile de 4096 octets est suffisante pour les lectures capteur


Se connecter pour suivre votre progression.