diff --git a/tests/driver_dht/Makefile b/tests/driver_dht/Makefile new file mode 100644 index 0000000000..aba9f8731b --- /dev/null +++ b/tests/driver_dht/Makefile @@ -0,0 +1,27 @@ +APPLICATION = driver_dht +include ../Makefile.tests_common + +FEATURES_REQUIRED = periph_gpio + +# define default pin mappings for some boards: +ifneq (,$(filter stm32f4discovery,$(BOARD))) + export DHT_GPIO ?= GPIO_4 +endif + +USEMODULE += dht + +ifneq (,$(DHT_TYPE)) + CFLAGS += -DDHT_TYPE=$(DHT_TYPE) +else + # set random default + CFLAGS += -DDHT_TYPE=DHT11 +endif + +ifneq (,$(DHT_GPIO)) + CFLAGS += -DDHT_GPIO=$(DHT_GPIO) +else + # set random default + CFLAGS += -DDHT_GPIO=GPIO_0 +endif + +include $(RIOTBASE)/Makefile.include diff --git a/tests/driver_dht/main.c b/tests/driver_dht/main.c new file mode 100644 index 0000000000..d36088fee8 --- /dev/null +++ b/tests/driver_dht/main.c @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2015 Ludwig Ortmann, Christian Mehlis + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup tests + * @{ + * + * @file + * @brief Test application for the dht humidity and temperature sensor driver + * + * @author Ludwig Ortmann + * @author Christian Mehlis + * + * @} + */ + +#ifndef DHT_TYPE +#error "DHT_TYPE not defined" +#endif + +#ifndef DHT_GPIO +#error "DHT_GPIO not defined" +#endif + +#include + +#include "hwtimer.h" +#include "timex.h" + +#include "dht.h" + +int main(void) +{ + dht_t dev; + + puts("DHT temperature and humidity sensor test application\n"); + + printf("Initializing DHT sensor at GPIO_%i... ", DHT_GPIO); + if (dht_init(&dev, DHT_TYPE, DHT_GPIO) == 0) { + puts("[OK]\n"); + } + else { + puts("[Failed]"); + return 1; + } + + dht_data_t data; + float temp, hum; + while (1) { + + if (dht_read_raw(&dev, &data) == -1) { + puts("error reading data"); + } + dht_parse(&dev, &data, &hum, &temp); + printf("raw relative humidity: %i\nraw temperature: %i C\n", data.humidity, data.temperature); + printf("relative humidity: %i\ntemperature: %i C\n", (int) hum, (int) temp); + hwtimer_wait(HWTIMER_TICKS(2000 * MS_IN_USEC)); + } + + return 0; +}