项目作者: Fonger

项目描述 :
ESP8266_RTOS_SDK library for DHT11, DHT22 or SI7021
高级语言: C
项目地址: git://github.com/Fonger/ESP8266-RTOS-DHT.git
创建时间: 2019-09-11T09:04:31Z
项目社区:https://github.com/Fonger/ESP8266-RTOS-DHT

开源协议:BSD 3-Clause "New" or "Revised" License

下载


ESP8266-RTOS-DHT

ESP8266_RTOS_SDK library for DHT11, DHT22 or SI7021.
This is a port from esp-open-rtos for espressif official SDK ESP8266_RTOS_SDK.

Compatibility

espressif/ESP8266_RTOS_SDK v3.2+

Usage

Clone this project in your components folder.

  1. #include <stdio.h>
  2. #include <freertos/FreeRTOS.h>
  3. #include <freertos/task.h>
  4. #include <esp_err.h>
  5. #include <dht/dht.h>
  6. #define DHT_GPIO 5 // D1 pin
  7. void temperature_task(void *arg)
  8. {
  9. ESP_ERROR_CHECK(dht_init(DHT_GPIO, false));
  10. vTaskDelay(2000 / portTICK_PERIOD_MS);
  11. while (1)
  12. {
  13. int humidity = 0;
  14. int temperature = 0;
  15. if (dht_read_data(DHT_TYPE_DHT22, DHT_GPIO, &humidity, &temperature) == ESP_OK) {
  16. // e.g. in dht22, 604 = 60.4%, 252 = 25.2 C
  17. // If you want to print float data, you should run `make menuconfig`
  18. // to enable full newlib and call dht_read_float_data() here instead
  19. printf("Humidity: %d Temperature: %d\n", humidity, temperature);
  20. } else {
  21. printf("Fail to get dht temperature data\n");
  22. }
  23. vTaskDelay(5000 / portTICK_PERIOD_MS);
  24. }
  25. vTaskDelete(NULL);
  26. }
  27. void app_main() {
  28. xTaskCreate(temperature_task, "temperature task", 2048, NULL, tskIDLE_PRIORITY, NULL);
  29. }