dht22 calculates temperature incorrectly at negative values
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 62/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 停滞
- 技术栈
- python
- 领域
- embedded-iot
调研方向
从 dht.py 中的 DHT22 温度计算开始,复现提供的 buffer 示例。将当前结果与建议的计算进行比较,然后验证示例报告为 -2.2°C,且湿度仍为 69.0%。
由索引模型根据 Issue 内容生成。
描述
I recently installed DHT22, and to my surprise, after a few days of frost, it showed a temperature of -3274.5.
The calculations performed by dht.py are consistent with the documentation, but they are incorrect.
Example and proposal for new calculation:
class DHTBase:
def xbuf(self, buf):
self.buf = buf
class DHT22(DHTBase):
def humidity(self):
return (self.buf[0] << 8 | self.buf[1]) * 0.1
def temperature(self):
t = (self.buf[2] & 0x7f) << 8 | self.buf[3]
if self.buf[2] & 0x80:
t = - t ^ 0x7fff
return t*0.1
def main():
# hum = 69, temp=-3274.5 = -2.2
cls = DHT22()
cls.xbuf([2, 183, 255, 233, 162])
temp = cls.temperature()
hum = cls.humidity()
print(f'temp={temp:.1f} hum={hum:.1f}')
main()
- 主要语言
- Python
- 星标
- 2.9k
- 派生
- 1.1k
- 平均合并
- 7 天 6 小时
- 30 天内合并 PR
- 3
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
micropython/micropython-lib 的其他 Issue
-
needs-info
难度 1/5 1 小时以内 新手友好度 72/100
micropython/micropython-lib#943 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
micropython/micropython-lib#931 · 1 条评论 ·
-
难度 1/5 1 小时以内 新手友好度 62/100
micropython/micropython-lib#795 · 2 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 62/100
micropython/micropython-lib#762 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
micropython/micropython-lib#342 ·
查看 micropython/micropython-lib 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 86/100
zostera/django-bootstrap4#894 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
use-agent-os/agent-os#3276 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
zephyrproject-rtos/zephyr#119726 ·
-
area/auth bug comp/agent P3 platform/discord type/security
难度 2/5 1-3 小时 新手友好度 88/100
NousResearch/hermes-agent#117848 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
zilliztech/memsearch#759 ·