Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "freertos/FreeRTOS.h" // для vTaskDelay, pdMS_TO_TICKS, ESP_OK, ESP_FAIL и т.д.
- #include "esp_log.h" // для макроса ESP_LOGI
- #include "dht.h" // для функций работы с DHT
- static const char *TAG = "thsensor";
- #define DHT11_PIN 4
- #define R_PIN 16
- #define G_PIN 17
- #define B_PIN 18
- #define LOW 0
- #define HIGH 1
- void app_main(void)
- {
- float humidity, temperature;
- float humidity_prev = 0.0f;
- gpio_reset_pin(R_PIN);
- gpio_set_direction(R_PIN, GPIO_MODE_OUTPUT);
- gpio_reset_pin(G_PIN);
- gpio_set_direction(G_PIN, GPIO_MODE_OUTPUT);
- gpio_reset_pin(B_PIN);
- gpio_set_direction(B_PIN, GPIO_MODE_OUTPUT);
- while (1)
- {
- if (dht_read_float_data(DHT_TYPE_DHT11, DHT11_PIN, &humidity, &temperature) == ESP_OK) {
- ESP_LOGI(TAG, "Humidity: %.1f%% Temperature: %.1fC", humidity, temperature);
- if (humidity != humidity_prev) {
- if (humidity < 40) {
- gpio_set_level(R_PIN, LOW);
- gpio_set_level(G_PIN, LOW);
- gpio_set_level(B_PIN, LOW);
- gpio_set_level(R_PIN, HIGH);
- }
- else if (humidity >= 40 && humidity <= 60) {
- gpio_set_level(R_PIN, LOW);
- gpio_set_level(G_PIN, LOW);
- gpio_set_level(B_PIN, LOW);
- gpio_set_level(G_PIN, HIGH);
- }
- else
- {
- gpio_set_level(R_PIN, LOW);
- gpio_set_level(G_PIN, LOW);
- gpio_set_level(B_PIN, LOW);
- gpio_set_level(B_PIN, HIGH);
- }
- }
- humidity_prev = humidity;
- }
- else
- ESP_LOGI(TAG, "Could not read data from sensor");
- vTaskDelay(pdMS_TO_TICKS(2000));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement