ESP8266基于Lua读取dht11温度数据

ESP8266基于Lua读取DHT11温度数据


  • ✨刚开始学,很是瞧不起这个小语言在嵌入式领域的应用场景。如同Micropython一样,有着小巧和灵活性在物联网应用领域开发中发挥这不小的作用,比起传统的嵌入式C语言相比,更简便和灵活,易扩展。
  • 📍ESP8266 Lua 固件官网dht11模块介绍:https://nodemcu.readthedocs.io/en/release/modules/dht/
  • 📋版本和所加载的模块信息如下:
modules: dht,file,gpio,i2c,net,node,pwm,tmr,uart,wifi,ws2812
 build 2023-04-30 14:49 powered by Lua 5.1.4 on SDK 3.0.1-dev(fce080e)
cannot open init.lua: 
> print(uart.setup(0, 115200, 8, 0, 1, 1 ))
115200
  • 🌿串口监视器打印:
    在这里插入图片描述

  • 🌿nodemcu引脚参考:
    在这里插入图片描述

📝Lua代码

dht11Pin = 2 --定义dht11数据引脚  对应nodemcu GPIO 4(D2)
mytimer = tmr.create()
mytimer:register(3500, tmr.ALARM_AUTO, function() 
     status, temp, humi, temp_dec, humi_dec = dht.read11(dht11Pin)  -- 读取dht11数据
    if status == dht.OK then  --根据返回的状态
        print("DHT OK")
        print(string.format("DHT Temperature:%d.%03d;Humidity:%d.%03d\r\n",
              math.floor(temp), temp_dec, math.floor(humi), humi_dec))
        
    elseif status == dht.ERROR_CHECKSUM then -- 访问出错
        print( "DHT Checksum error." )
        print(string.format("DHT Temperature:%d.%03d;Humidity:%d.%03d\r\n",
              math.floor(temp), temp_dec, math.floor(humi), humi_dec))
     
    elseif status == dht.ERROR_TIMEOUT then  -- 访问超时
        print( "DHT timed out." )
        print(string.format("DHT Temperature:%d.%03d;Humidity:%d.%03d\r\n",
              math.floor(temp), temp_dec, math.floor(humi), humi_dec))
         --通过print组合数据并通过串口打印
    end
end)
mytimer:start()
--3.5s循环读取一次DHT11数据

📚所使用的ESP8266 Lua固件(integer和float)

链接: https://pan.baidu.com/s/14Sgxu83UPvw4Hu7wBQKMqA
提取码: n997
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值