Advertisement
Cam0uflage

ESP32 + DHT11 + RGB

Apr 30th, 2024
768
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.97 KB | None | 0 0
  1. #include "freertos/FreeRTOS.h"       // для vTaskDelay, pdMS_TO_TICKS, ESP_OK, ESP_FAIL и т.д.
  2. #include "esp_log.h"                 // для макроса ESP_LOGI
  3. #include "dht.h"                     // для функций работы с DHT
  4.  
  5.  
  6. static const char *TAG = "thsensor";
  7.  
  8. #define DHT11_PIN   4
  9. #define R_PIN       16
  10. #define G_PIN       17
  11. #define B_PIN       18
  12. #define LOW         0
  13. #define HIGH        1
  14.  
  15. void app_main(void)
  16. {
  17.     float humidity, temperature;
  18.     float humidity_prev = 0.0f;
  19.  
  20.     gpio_reset_pin(R_PIN);
  21.     gpio_set_direction(R_PIN, GPIO_MODE_OUTPUT);
  22.     gpio_reset_pin(G_PIN);
  23.     gpio_set_direction(G_PIN, GPIO_MODE_OUTPUT);
  24.     gpio_reset_pin(B_PIN);
  25.     gpio_set_direction(B_PIN, GPIO_MODE_OUTPUT);
  26.  
  27.     while (1)
  28.     {
  29.         if (dht_read_float_data(DHT_TYPE_DHT11, DHT11_PIN, &humidity, &temperature) == ESP_OK) {
  30.             ESP_LOGI(TAG, "Humidity: %.1f%% Temperature: %.1fC", humidity, temperature);
  31.             if (humidity != humidity_prev) {
  32.                 if (humidity < 40) {
  33.                     gpio_set_level(R_PIN, LOW);
  34.                     gpio_set_level(G_PIN, LOW);
  35.                     gpio_set_level(B_PIN, LOW);
  36.  
  37.                     gpio_set_level(R_PIN, HIGH);
  38.                 }
  39.                 else if (humidity >= 40 && humidity <= 60) {
  40.                     gpio_set_level(R_PIN, LOW);
  41.                     gpio_set_level(G_PIN, LOW);
  42.                     gpio_set_level(B_PIN, LOW);
  43.  
  44.                     gpio_set_level(G_PIN, HIGH);
  45.                 }
  46.                 else
  47.                 {
  48.                     gpio_set_level(R_PIN, LOW);
  49.                     gpio_set_level(G_PIN, LOW);
  50.                     gpio_set_level(B_PIN, LOW);
  51.  
  52.                     gpio_set_level(B_PIN, HIGH);
  53.                 }
  54.             }
  55.             humidity_prev = humidity;
  56.         }
  57.         else
  58.             ESP_LOGI(TAG, "Could not read data from sensor");
  59.         vTaskDelay(pdMS_TO_TICKS(2000));
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement