• 欢迎大家分享资料!前往留言板评论即可!

读取DHT12的温湿度

合宙 模组资料网 2年前 (2021-05-15) 373次浏览 0个评论 扫描二维码
-- 初始化并打开I2C操作DHT12
local function read_dht12(id)
    if i2c.setup(id, i2c.SLOW) ~= i2c.SLOW then
        log.error("I2C.init is: ", "fail")
        i2c.close(id)
        return
    end
    i2c.send(id, 0x5C, 0x00)
    local data = i2c.recv(id, 0x5C, 5)
    i2c.close(id)
    log.info("DHT12 HEX data: ", data:toHex())
    -- 分别是湿度整数,湿度小数,温度整数,温度湿度
    local _, h_H, h_L, t_H, t_L = pack.unpack(data, 'b4')
    log.info("DHT12 data: ", h_H, h_L, t_H, t_L)
    -- 需要考虑温度低于0度的情况, t_L第0位是符号位
    local t_L2 = tonumber(t_L)
    if t_L2 > 127 then
        return h_H .. ".".. h_L, "-" .. t_H .. "." .. tostring(t_L2 - 128)
    else
        return h_H .. ".".. h_L, t_H .. "." .. t_L
    end
end

转载请注明原文链接:读取DHT12的温湿度
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址