#include <stdio.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <dht.h>

#define SENSOR_TYPE DHT_TYPE_DHT11
#define DHT_GPIO_PIN GPIO_NUM_26

#define led1 2
#define led2 4
#define led3 16
#define led4 17

#define dip1 25
#define dip2 33
#define dip3 22

esp_err_t init_led(void);
esp_err_t blink_led(void);

uint8_t s_led_state = 0;
uint8_t s_led_state2 = 1;


void dht_test(void *pvParameters)
{
    float temperature, humidity;

    while (1)
    {
        if (dht_read_float_data(SENSOR_TYPE, DHT_GPIO_PIN, &humidity, &temperature) == ESP_OK)
            printf("Humidity: %.1f%% Temp: %.1fC\n", humidity, temperature);
        else
            printf("Could not read data from sensor\n");

        vTaskDelay(pdMS_TO_TICKS(2000)); 
    }

    
}
  esp_err_t init_led(void){
  gpio_reset_pin(led1); 
  gpio_set_direction(led1,GPIO_MODE_OUTPUT);
  gpio_reset_pin(led2);
  gpio_set_direction(led2,GPIO_MODE_OUTPUT);
  gpio_reset_pin(led3);
  gpio_set_direction(led3,GPIO_MODE_OUTPUT);
  gpio_reset_pin(led4);
  gpio_set_direction(led4,GPIO_MODE_OUTPUT);

  gpio_reset_pin(dip1);
  gpio_set_pull_mode(dip1,GPIO_PULLDOWN_ENABLE);//DIPSWITCH 1
  gpio_reset_pin(dip2);
  gpio_set_pull_mode(dip2,GPIO_PULLDOWN_ENABLE);//DIPSWITCH 2
  gpio_reset_pin(dip3);
  gpio_set_pull_mode(dip3,GPIO_PULLDOWN_ENABLE);//DIPSWITCH 3
    return ESP_OK;

  }

esp_err_t blink_led(void){

  void animation1(){
  gpio_set_level(led1,1);
  gpio_set_level(led2,0);
  gpio_set_level(led3,0);
  gpio_set_level(led4,1);
  
}
void animation2(){
  gpio_set_level(led1,1);
  gpio_set_level(led2,1);
  gpio_set_level(led3,0);
  gpio_set_level(led4,0);
}

    s_led_state = !s_led_state;
    s_led_state2 = !s_led_state2;
    gpio_set_level(led1, s_led_state);
    gpio_set_level(led2, s_led_state2);
    gpio_set_level(led3, s_led_state);
    gpio_set_level(led4, s_led_state2);

    if(gpio_get_level(dip1)){
      animation1();
    } else if (gpio_get_level(dip2)){
      animation2();
    }
    return ESP_OK;

  }

void app_main(void)
{
  xTaskCreate(dht_test, "dht_test", configMINIMAL_STACK_SIZE * 3, NULL, 5, NULL);
  init_led();
  while(1){
    //vTaskDelay(1000 / portTICK_PERIOD_MS);
    blink_led();
  }
}

$abcdeabcde151015202530fghijfghij
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
r1:1
r1:2