Library for reading data from the RHT03 / DHT22 digital humidity & temperature sensor.

Dependents:   Pachube-v2_DHT22 DHT_TEST2 DHT_CANSAT Projeto_Monit_Remoto ... more

Files at this revision

API Documentation at this revision

Comitter:
Julepalme
Date:
Thu Oct 27 15:11:06 2011 +0000
Commit message:
First Draft

Changed in this revision

DHT22.cpp Show annotated file Show diff for this revision Revisions of this file
DHT22.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 7fd3ff04ae95 DHT22.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DHT22.cpp	Thu Oct 27 15:11:06 2011 +0000
@@ -0,0 +1,49 @@
+#include "DHT22.h"
+
+
+DHT22::DHT22(PinName pin) {
+    _data_pin = pin;
+}
+
+int DHT22::getTemperature() {
+    return _temperature;
+}
+
+int DHT22::getHumidity() {
+    return _humidity;
+}
+
+bool DHT22::sample() {
+    DigitalInOut DHT22(_data_pin);
+    int dht22_dat [5];
+    DHT22.output();
+    DHT22.write(0);
+    wait_ms(18);
+    DHT22.write(1);
+    DHT22.input();
+    wait_us(40);
+    wait_us(80);
+    int i,j,result=0;
+    for (i=0; i<5; i++) {
+        result=0;
+        for (j=0; j<8; j++) {
+            while (DHT22);
+            while (!DHT22);
+            wait_us(50);
+            int p;
+            p=DHT22;
+            p=p <<(7-j);
+            result=result|p;
+        }
+        dht22_dat[i] = result;
+    }
+    int dht22_check_sum;
+    dht22_check_sum=dht22_dat[0]+dht22_dat[1]+dht22_dat[2]+dht22_dat[3];
+    dht22_check_sum= dht22_check_sum%256;
+    if (dht22_check_sum==dht22_dat[4]) {
+        _humidity=dht22_dat[0]*256+dht22_dat[1];
+        _temperature=dht22_dat[2]*256+dht22_dat[3];
+        return true;
+    }
+    return false;
+}
diff -r 000000000000 -r 7fd3ff04ae95 DHT22.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DHT22.h	Thu Oct 27 15:11:06 2011 +0000
@@ -0,0 +1,17 @@
+#ifndef MBED_DHT22_H
+#define MBED_DHT22_H
+
+#include "mbed.h"
+
+class DHT22 {
+private:
+    int _temperature,_humidity;
+    PinName _data_pin;
+public:
+    DHT22(PinName);
+    bool sample();
+    int getTemperature();
+    int getHumidity();
+};
+
+#endif
\ No newline at end of file