Ameba Arduino: [RTL8195AM] [RTL8710AF] GPIO - Measuring the temperature and humidity
- Ameba x 1
- DHT11 or DHT22 or DHT21
There are 4 pins on the sensor:
Since one of the 4 pins has no function, there are temperature/humidity sensors with only 3 pins on the market:
DHT is normally in the sleeping mode. To get the temperature/humidity data, please follow the steps:
- Awake DHT: Ameba toggles low its DATA pin of GPIO. Now the DATA pin of GPIO serves as digital out to Ameba.
- DHT response: DHT also toggle low its DATA pin of GPIO. Now the DATA pin of GPIO serves as digital in to Ameba.
- DHT sends data: DHT sends out the temperature/humidity data (which has size 5 bytes) in a bit by bit manner. To represent each bit, DHT first pull low the DATA GPIO pin for a while and then pull high. If the duration of high is smaller than low, it stands for bit 0. Otherwise it stands for bit 1.
The wiring details:
Open the sample code in “Files” -> “Examples” -> “AmebaGPIO” -> “DHTtester”. Compile and upload to Ameba, then press the reset button. The result would be shown on the Serial Monitor.
dht.readHumidity()read the humidity value, and use
dht.readTemperature()to read the temperature value.
Every time we read the temperature/humidity data, Ameba uses the buffered temperature/humidity data unless it found the data has expired (i.e., has not been updated for over 2 seconds). If the data is expired, Ameba issues a request to DHT to read the latest data.