/* Leitura do Sensor de Temperatura DHT22 utilizando o FreeRTOS */
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
TaskHandle_t leituraHandle = NULL;
#include <DHT.h>
#define DHTPIN 26
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
float umidade;
float temperatura;
void leituraSensor(void *pvParameters) {
Serial.println("Projeto Iniciado");
while(true){
temperatura = dht.readTemperature(); /* Leitura da Temperatura em Celsius */
umidade = dht.readHumidity();
Serial.print("Umidade: ");
Serial.print(umidade);
Serial.println("%");
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println("°C ");
vTaskDelay(pdMS_TO_TICKS(1000)); /* Utilização de delay mas agora sem parar o núcleo */
}
}
void setup() {
Serial.begin(115200);
dht.begin(); /* Indica para iniciar o funcionamento do sensor. */
xTaskCreate(&leituraSensor, /* O nome da função (Colocar o & antes pois ele precisa do endereço da função) */
"Leitura do Sensor", /* Um nome para debug. */
1024, /* O tamanho da pilha necessária para essa task (tamanho em words). */
NULL, /* Ponteiro para parâmetros. Como nossa função não tem parâmetros, utiliza-se NULL */
1, /* Nível de Prioridade de 0 a 4 por padrão (Quanto maior o número, maior a prioridade da tarefa) */
&leituraHandle); /* O ponteiro para o identificador da Task. */
}
void loop() {
}