79 lines
1.6 KiB
C++
79 lines
1.6 KiB
C++
#include <Arduino.h>
|
|
#include "DHT.h"
|
|
|
|
#define LED_PIN 2
|
|
#define DHT_PIN 17
|
|
#define DHT_TYPE DHT22
|
|
|
|
DHT dht(DHT_PIN, DHT_TYPE);
|
|
|
|
// Uchwyty do tasków
|
|
TaskHandle_t TaskBlink;
|
|
// TaskHandle_t TaskDHT;
|
|
|
|
float h;
|
|
float t;
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
|
|
pinMode(LED_PIN, OUTPUT);
|
|
dht.begin();
|
|
|
|
// Task pulsowania LED
|
|
xTaskCreatePinnedToCore(
|
|
blinkTask, "TaskBlink", 2048, NULL, 1, &TaskBlink, 1);
|
|
|
|
// Task odczytu DHT22
|
|
// xTaskCreatePinnedToCore(
|
|
// dhtTask, "TaskDHT", 4096, NULL, 1, &TaskDHT, 1);
|
|
}
|
|
|
|
void loop() {
|
|
h = dht.readHumidity();
|
|
t = dht.readTemperature();
|
|
|
|
if (isnan(h) || isnan(t)) {
|
|
Serial.println("Błąd odczytu z DHT22!");
|
|
} else {
|
|
Serial.printf("Temperatura: %.1f °C | Wilgotność: %.1f %%\n", t, h);
|
|
}
|
|
|
|
delay(2000 / portTICK_PERIOD_MS);
|
|
}
|
|
|
|
// --- Task LED PWM ---
|
|
void blinkTask(void *pvParameters) {
|
|
(void) pvParameters;
|
|
|
|
while (1) {
|
|
// Rozjaśnianie
|
|
for (int i = 0; i <= 255; i++) {
|
|
analogWrite(LED_PIN, i);
|
|
vTaskDelay(10 / portTICK_PERIOD_MS);
|
|
}
|
|
// Ściemnianie
|
|
for (int i = 255; i >= 0; i--) {
|
|
analogWrite(LED_PIN, i);
|
|
vTaskDelay(10 / portTICK_PERIOD_MS);
|
|
}
|
|
}
|
|
}
|
|
|
|
// // --- Task DHT22 ---
|
|
// void dhtTask(void *pvParameters) {
|
|
// (void) pvParameters;
|
|
|
|
// while (1) {
|
|
// h = dht.readHumidity();
|
|
// t = dht.readTemperature();
|
|
|
|
// if (isnan(h) || isnan(t)) {
|
|
// Serial.println("Błąd odczytu z DHT22!");
|
|
// } else {
|
|
// Serial.printf("Temperatura: %.1f °C | Wilgotność: %.1f %%\n", t, h);
|
|
// }
|
|
|
|
// vTaskDelay(2000 / portTICK_PERIOD_MS);
|
|
// }
|
|
// }
|