diff --git a/examples/idDHT11_Lib_example_Simple/idDHT11_Lib_example_Simple.ino b/examples/idDHT11_Lib_example_Simple/idDHT11_Lib_example_Simple.ino new file mode 100644 index 0000000..fe3b65b --- /dev/null +++ b/examples/idDHT11_Lib_example_Simple/idDHT11_Lib_example_Simple.ino @@ -0,0 +1,84 @@ +/* + Board int.0 int.1 int.2 int.3 int.4 int.5 + Uno, Ethernet 2 3 + Mega2560 2 3 21 20 19 18 + Leonardo 3 2 0 1 + Due (any pin, more info http://arduino.cc/en/Reference/AttachInterrupt) + + This example, as difference to the other, make use of the new method acquireAndWait() + */ + +#include + +int idDHT11pin = 2; //Digital pin for comunications +int idDHT11intNumber = 0; //interrupt number (must be the one that use the previus defined pin (see table above) + +//declaration +void dht11_wrapper(); + +// Lib instantiate +idDHT11 DHT11(idDHT11pin,idDHT11intNumber,dht11_wrapper); + +void setup() +{ + Serial.begin(9600); + Serial.println("idDHT11 Example program"); + Serial.print("LIB version: "); + Serial.println(IDDHT11LIB_VERSION); + Serial.println("---------------"); +} +void dht11_wrapper() { + DHT11.isrCallback(); +} +void loop() +{ + Serial.print("\nRetrieving information from sensor: "); + Serial.print("Read sensor: "); + //delay(100); + + int result = DHT11.acquireAndWait(); + switch (result) + { + case IDDHTLIB_OK: + Serial.println("OK"); + break; + case IDDHTLIB_ERROR_CHECKSUM: + Serial.println("Error\n\r\tChecksum error"); + break; + case IDDHTLIB_ERROR_TIMEOUT: + Serial.println("Error\n\r\tTime out error"); + break; + case IDDHTLIB_ERROR_ACQUIRING: + Serial.println("Error\n\r\tAcquiring"); + break; + case IDDHTLIB_ERROR_DELTA: + Serial.println("Error\n\r\tDelta time to small"); + break; + case IDDHTLIB_ERROR_NOTSTARTED: + Serial.println("Error\n\r\tNot started"); + break; + default: + Serial.println("Unknown error"); + break; + } + Serial.print("Humidity (%): "); + Serial.println(DHT11.getHumidity(), 2); + + Serial.print("Temperature (oC): "); + Serial.println(DHT11.getCelsius(), 2); + + Serial.print("Temperature (oF): "); + Serial.println(DHT11.getFahrenheit(), 2); + + Serial.print("Temperature (K): "); + Serial.println(DHT11.getKelvin(), 2); + + Serial.print("Dew Point (oC): "); + Serial.println(DHT11.getDewPoint()); + + Serial.print("Dew Point Slow (oC): "); + Serial.println(DHT11.getDewPointSlow()); + + delay(2000); +} + diff --git a/idDHT11.cpp b/idDHT11.cpp index 7fc0a19..b67ed01 100644 --- a/idDHT11.cpp +++ b/idDHT11.cpp @@ -56,6 +56,12 @@ int idDHT11::acquire() { } else return IDDHTLIB_ERROR_ACQUIRING; } +int idDHT11::acquireAndWait() { + acquire(); + while(acquiring()) + ; + return getStatus(); +} void idDHT11::isrCallback() { int newUs = micros(); int delta = (newUs-us); diff --git a/idDHT11.h b/idDHT11.h index 4bc2c08..384cc44 100644 --- a/idDHT11.h +++ b/idDHT11.h @@ -45,6 +45,7 @@ public: void init(int pin, int intNumber,void (*isrCallback_wrapper)()); void isrCallback(); int acquire(); + int acquireAndWait(); float getCelsius(); float getFahrenheit(); float getKelvin();