Move master branch from from mios git repo
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
/******************************************************************
|
||||
DHT Temperature & Humidity Sensor library for Arduino.
|
||||
|
||||
Features:
|
||||
- Support for DHT11 and DHT22/AM2302/RHT03
|
||||
- Auto detect sensor model
|
||||
- Very low memory footprint
|
||||
- Very small code
|
||||
|
||||
http://www.github.com/markruys/arduino-DHT
|
||||
|
||||
Written by Mark Ruys, mark@paracas.nl.
|
||||
|
||||
BSD license, check license.txt for more information.
|
||||
All text above must be included in any redistribution.
|
||||
|
||||
Datasheets:
|
||||
- http://www.micro4you.com/files/sensor/DHT11.pdf
|
||||
- http://www.adafruit.com/datasheets/DHT22.pdf
|
||||
- http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Weather/RHT03.pdf
|
||||
- http://meteobox.tk/files/AM2302.pdf
|
||||
|
||||
Changelog:
|
||||
2013-06-10: Initial version
|
||||
2013-06-12: Refactored code
|
||||
2013-07-01: Add a resetTimer method
|
||||
******************************************************************/
|
||||
|
||||
#ifndef dht_h
|
||||
#define dht_h
|
||||
|
||||
#if ARDUINO < 100
|
||||
#include <WProgram.h>
|
||||
#else
|
||||
#include <Arduino.h>
|
||||
#endif
|
||||
|
||||
class DHT
|
||||
{
|
||||
public:
|
||||
|
||||
typedef enum {
|
||||
AUTO_DETECT,
|
||||
DHT11,
|
||||
DHT22,
|
||||
AM2302, // Packaged DHT22
|
||||
RHT03 // Equivalent to DHT22
|
||||
}
|
||||
DHT_MODEL_t;
|
||||
|
||||
typedef enum {
|
||||
ERROR_NONE = 0,
|
||||
ERROR_TIMEOUT,
|
||||
ERROR_CHECKSUM
|
||||
}
|
||||
DHT_ERROR_t;
|
||||
|
||||
void setup(uint8_t pin, DHT_MODEL_t model=AUTO_DETECT);
|
||||
void resetTimer();
|
||||
|
||||
float getTemperature();
|
||||
float getHumidity();
|
||||
|
||||
DHT_ERROR_t getStatus() { return error; };
|
||||
const char* getStatusString();
|
||||
|
||||
DHT_MODEL_t getModel() { return model; }
|
||||
|
||||
int getMinimumSamplingPeriod() { return model == DHT11 ? 1000 : 2000; }
|
||||
|
||||
int8_t getNumberOfDecimalsTemperature() { return model == DHT11 ? 0 : 1; };
|
||||
int8_t getLowerBoundTemperature() { return model == DHT11 ? 0 : -40; };
|
||||
int8_t getUpperBoundTemperature() { return model == DHT11 ? 50 : 125; };
|
||||
|
||||
int8_t getNumberOfDecimalsHumidity() { return 0; };
|
||||
int8_t getLowerBoundHumidity() { return model == DHT11 ? 20 : 0; };
|
||||
int8_t getUpperBoundHumidity() { return model == DHT11 ? 90 : 100; };
|
||||
|
||||
static float toFahrenheit(float fromCelcius) { return 1.8 * fromCelcius + 32.0; };
|
||||
static float toCelsius(float fromFahrenheit) { return (fromFahrenheit - 32.0) / 1.8; };
|
||||
|
||||
protected:
|
||||
void readSensor();
|
||||
|
||||
float temperature;
|
||||
float humidity;
|
||||
|
||||
uint8_t pin;
|
||||
|
||||
private:
|
||||
DHT_MODEL_t model;
|
||||
DHT_ERROR_t error;
|
||||
unsigned long lastReadTime;
|
||||
};
|
||||
|
||||
#endif /*dht_h*/
|
||||
Reference in New Issue
Block a user