en:pfw:dht22tmpformat
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:pfw:dht22tmpformat [2025-04-26 13:37] – [The good modules] mka | en:pfw:dht22tmpformat [2025-04-27 13:39] (current) – [A Strange DHT22 Module] mka | ||
---|---|---|---|
Line 1: | Line 1: | ||
{{pfw: | {{pfw: | ||
- | ====== The document | + | ====== The DHT22 Document |
- | [[https:// | + | [[https:// |
+ | //Example 1// first shows the interpretation of temperatures above 0 °C and then, as a " | ||
+ | Check it out there. | ||
- | **Page 5** provides an example of how to handle the data. | + | ====== The Reality ====== |
- | //Example 1// first shows the interpretation of temperatures above 0 °C and then, as a " | + | But then I was confused because |
- | ====== The reality ====== | + | ===== A Strange |
- | + | ||
- | ===== A strange | + | |
- | + | ||
- | But then I was confused because the sensor I was using delivered something different. | + | |
- | + | ||
- | Bild vom sensor0 signal | + | |
- | Terminalausgabe sensor 00 | + | |
Near the freezing point of water, a value of around 4095 decimal was output. | Near the freezing point of water, a value of around 4095 decimal was output. | ||
Line 38: | Line 33: | ||
| | ||
You can see that the MSB in the upper byte is 0, but all other bits are set. | You can see that the MSB in the upper byte is 0, but all other bits are set. | ||
- | If you only take the lower byte, it's $72, which is &114. So, -11.4°C should be displayed here. However, this format didn't correspond to the specification in the datasheet. Instead, it resembled | + | If you only take the lower byte, it's $72, which is &114. So, -11.4°C should be displayed here. However, this format didn't correspond to the specification in the datasheet. Instead, it resembled |
Using the logic analyzer, it was possible to verify that this was not a read error during the SDA bitbang, but that the read routine was actually working correctly. | Using the logic analyzer, it was possible to verify that this was not a read error during the SDA bitbang, but that the read routine was actually working correctly. | ||
+ | {{: | ||
- | ===== The good modules | + | There have been numerous questions online about the problem of a DHT22 module malfunctioning in sub-zero temperatures. But ultimately, there was no conclusive explanation as to what exactly is going wrong. I don't know what has to happen in the module itself for this error to occur. But it seems to me that you can program around it. However, that would mean rewriting the driver from a library. But now that we see what's causing it, it could also be done in C, right? Such a routine could also check whether this strange 12-bit representation is present and then display the temperature accordingly. These modules are supposed to be calibrated. Let's see... |
+ | :) | ||
+ | |||
+ | |||
+ | ===== The Good Modules | ||
After purchasing additional DHT22 modules (am2302), it became clear that only one sensor was delivering these strange temperature values. Three others behaved as specified in the datasheet. | After purchasing additional DHT22 modules (am2302), it became clear that only one sensor was delivering these strange temperature values. Three others behaved as specified in the datasheet. | ||
Line 57: | Line 57: | ||
\ 7654321076543210 | \ 7654321076543210 | ||
0000001000100000 1000000010101010 01001100 | 0000001000100000 1000000010101010 01001100 | ||
- | 0000001000100000 | + | 0000001000100000 |
- | | + | |
</ | </ | ||
Line 65: | Line 65: | ||
bn 10101010 dm . 170 OK.1 | bn 10101010 dm . 170 OK.1 | ||
</ | </ | ||
- | In the source code, the Forth word '' | + | In the source code, the Forth word '' |
+ | When printed formatted, it shows -17.0 °C. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | [[https:// | ||
- | Bild?? |
en/pfw/dht22tmpformat.1745667457.txt.gz · Last modified: 2025-04-26 13:37 by mka