main.lua 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "sht20demo"
  3. VERSION = "1.0.0"
  4. -- sys库是标配
  5. sys = require("sys")
  6. -- 接线
  7. --[[
  8. SHT20 --- 模块
  9. SDA - I2C_SDA
  10. SCL - I2C_SCL
  11. VCC - VDDIO
  12. GND - GND
  13. ]]
  14. --电平设置为3.3v
  15. pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)
  16. --设置gpio2输出,给camera_sda、camera_scl引脚提供上拉
  17. gpio.setup(2, 1)
  18. -- 启动个task, 定时查询SHT20的数据
  19. sys.taskInit(function()
  20. local tmp,hum -- 原始数据
  21. local temp,hump -- 真实值
  22. --1010 000x
  23. local addr = 0x40
  24. -- 按实际修改哦
  25. local id = 1
  26. log.info("i2c", "initial",i2c.setup(id))
  27. while true do
  28. --第一种方式
  29. i2c.send(id, addr, string.char(0xF3))
  30. sys.wait(100)
  31. tmp = i2c.recv(id, addr, 2)
  32. log.info("SHT20", "read tem data", tmp:toHex())
  33. i2c.send(id, addr, string.char(0xF5))
  34. sys.wait(100)
  35. hum = i2c.recv(id, addr, 2)
  36. log.info("SHT20", "read hum data", hum:toHex())
  37. local _,tval = pack.unpack(tmp,'>H')
  38. local _,hval = pack.unpack(hum,'>H')
  39. if tval and hval then
  40. temp = (((17572 * tval) >> 16) - 4685)/100
  41. hump = (((12500 * hval) >> 16) - 600)/100
  42. log.info("SHT20", "temp,humi",temp,hump)
  43. end
  44. sys.wait(1000)
  45. end
  46. end)
  47. -- 用户代码已结束---------------------------------------------
  48. -- 结尾总是这一句
  49. sys.run()
  50. -- sys.run()之后后面不要加任何语句!!!!!