#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();
}
}
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