main.lua 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "sht40demo"
  3. VERSION = "1.0.0"
  4. -- sys库是标配
  5. sys = require("sys")
  6. -- 接线
  7. --[[
  8. SHT40 --- 模块
  9. SDA - I2C_SDA
  10. SCL - I2C_SCL
  11. VCC - 3.3V
  12. GND - GND
  13. SHT40手册: https://www.mouser.cn/datasheet/2/682/Datasheet_SHT4x-3003109.pdf
  14. ]]
  15. -- 启动个task, 定时查询SHT40的数据
  16. sys.taskInit(function()
  17. local tmp,hum -- 原始数据
  18. local temp,hump -- 真实值
  19. local addr = 0x44
  20. -- 按实际修改哦
  21. local id = 0
  22. log.info("i2c", "initial",i2c.setup(id))
  23. while 1 do
  24. sys.wait(400)
  25. local serial_num = i2c.readReg(addr, 0x89, 6)
  26. if serial_num and #serial_num ~= 6 then
  27. break
  28. end
  29. log.info("sht40", "尚未检测到设备")
  30. end
  31. while true do
  32. local tmp = i2c.readReg(addr, 0xFD, 6)
  33. if tmp and #tmp == 6 then
  34. local _,tval,crc1,hval,crc2 = pack.unpack(tmp,'>HbHb')
  35. if tval and hval then
  36. temp = (((17572 * tval) >> 16) - 4685)/100
  37. hump = (((12500 * hval) >> 16) - 600)/100
  38. log.info("SHT40", "temp,humi",temp,hump)
  39. end
  40. end
  41. sys.wait(1000)
  42. end
  43. end)
  44. -- 用户代码已结束---------------------------------------------
  45. -- 结尾总是这一句
  46. sys.run()
  47. -- sys.run()之后后面不要加任何语句!!!!!