This article shows how to connect a DHT12 to a Chipkit Max32
The DHt12 is an upgraded version of the classic DHT11 humidity temperature sensor, it is fully downward compatible, more precise and adds an I2C interface.
Features:
compact size
low power consumption
low voltage operation
Standard I2C and 1-wire interface.
Sensing range
Temperature: -20 ~ +60 C
Humidity: 20-95 RH
Humidity:
Resolution: 0.1%RH
Repeat: -+ 1%RH
Precision 25C @ -+5RH
Temperature:
Resolution: 0.1C
Repeat: -+0.2C
Precision: 25C @ -+0.5C
Power: DC 2.7-5.5V
Normal current 1mA
Standby current 60uA
Sample cycle: > 2 seconds
Pin interface: 1. VDD 2. SDA 3. GND 4. SCL (connect to GND when use as 1-wire)
Layout
This shows how to connect the DHT12 to an Arduino Uno
Code
This is from https://github.com/dplasa/dht
[codesyntax lang=”cpp”]
#include <Wire.h> #include <dht.h> dht12 DHT(0x5c); void setup() { Serial.begin(9600); Serial.println(F("DHT12 TEST PROGRAM")); } void loop() { unsigned long b = micros(); dht::ReadStatus chk = DHT.read(); unsigned long e = micros(); Serial.print(F("Read sensor: ")); switch (chk) { case dht::OK: Serial.print(F("OK, took ")); Serial.print (e - b); Serial.print(F(" usec, ")); break; case dht::ERROR_CHECKSUM: Serial.println(F("Checksum error")); break; case dht::ERROR_TIMEOUT: Serial.println(F("Timeout error")); break; case dht::ERROR_CONNECT: Serial.println(F("Connect error")); break; case dht::ERROR_ACK_L: Serial.println(F("AckL error")); break; case dht::ERROR_ACK_H: Serial.println(F("AckH error")); break; default: Serial.println(F("Unknown error")); break; } Serial.print(F("Humidity: ")); Serial.print((float)DHT.getHumidity()/(float)10); Serial.print(F("%, ")); Serial.print(F(". Temperature (degrees C): ")); Serial.print((float)DHT.getTemperature()/(float)10); Serial.print(F(", Dew Point (degrees C): ")); Serial.println(DHT.dewPoint()); delay(4000); }
[/codesyntax]
Output
Open the serial monitor and you should see something like this
DHT12 TEST PROGRAM
Read sensor: OK, took 8555 usec, Humidity: 61.90%, . Temperature (degrees C): 23.60, Dew Point (degrees C): 15.86
Read sensor: OK, took 8000 usec, Humidity: 62.00%, . Temperature (degrees C): 23.60, Dew Point (degrees C): 15.88
Read sensor: OK, took 8000 usec, Humidity: 62.10%, . Temperature (degrees C): 23.60, Dew Point (degrees C): 15.91
Read sensor: OK, took 8000 usec, Humidity: 62.10%, . Temperature (degrees C): 23.60, Dew Point (degrees C): 15.91
Read sensor: OK, took 8000 usec, Humidity: 62.20%, . Temperature (degrees C): 23.50, Dew Point (degrees C): 15.84
Read sensor: OK, took 8000 usec, Humidity: 62.20%, . Temperature (degrees C): 23.50, Dew Point (degrees C): 15.84
Read sensor: OK, took 8000 usec, Humidity: 62.30%, . Temperature (degrees C): 23.60, Dew Point (degrees C): 15.96
Read sensor: OK, took 8000 usec, Humidity: 62.40%, . Temperature (degrees C): 23.60, Dew Point (degrees C): 15.99
Read sensor: OK, took 8000 usec, Humidity: 62.40%, . Temperature (degrees C): 23.50, Dew Point (degrees C): 15.89
Link
Under $1 for one of these sensors
1pcs DHT-12 DHT12 sensor Digital output Temperature and Humidity Sensor high quality