unleashed-firmware/applications/plugins/dht_temp_sensor/DHT.h
2022-11-04 17:51:56 +03:00

40 lines
1.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef DHT_H_
#define DHT_H_
#include <furi_hal_resources.h>
/* Настройки */
#define DHT_TIMEOUT 65534 //Количество итераций, после которых функция вернёт пустые значения
#define DHT_POLLING_CONTROL 1 //Включение проверки частоты опроса датчика
#define DHT_POLLING_INTERVAL_DHT11 \
2000 //Интервал опроса DHT11 (0.5 Гц по даташиту). Можно поставить 1500, будет работать
//Костыль, временно 2 секунды для датчика AM2302
#define DHT_POLLING_INTERVAL_DHT22 2000 //Интервал опроса DHT22 (1 Гц по даташиту)
#define DHT_IRQ_CONTROL //Выключать прерывания во время обмена данных с датчиком
/* Структура возвращаемых датчиком данных */
typedef struct {
float hum;
float temp;
} DHT_data;
/* Тип используемого датчика */
typedef enum { DHT11, DHT22 } DHT_type;
/* Структура объекта датчика */
typedef struct {
char name[11];
const GpioPin* GPIO; //Пин датчика
DHT_type type; //Тип датчика (DHT11 или DHT22)
//Контроль частоты опроса датчика. Значения не заполнять!
#if DHT_POLLING_CONTROL == 1
uint32_t lastPollingTime; //Время последнего опроса датчика
float lastTemp; //Последнее значение температуры
float lastHum; //Последнее значение влажности
#endif
} DHT_sensor;
/* Прототипы функций */
DHT_data DHT_getData(DHT_sensor* sensor); //Получить данные с датчика
#endif