main.lua 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "air302_disp_demo"
  3. VERSION = "1.0.0"
  4. -- sys库是标配
  5. _G.sys = require("sys")
  6. -- 网络灯
  7. local NETLED = gpio.setup(19, 0)
  8. ----------------------------------------------------------------------
  9. -- 对接SSD1306
  10. function display_str(str)
  11. disp.clear()
  12. disp.drawStr(str, 1, 18)
  13. disp.update()
  14. end
  15. function ui_update()
  16. disp.clear() -- 清屏
  17. disp.drawStr(os.date("%Y-%m-%d %H:%M:%S"), 1, 12) -- 写日期
  18. disp.drawStr("Luat@Air302" .. " " .. _VERSION, 1, 24) -- 写版本号
  19. if socket.isReady() then
  20. disp.drawStr("net ready", 1, 36) -- 写网络状态
  21. else
  22. disp.drawStr("net not ready", 1, 36)
  23. end
  24. --disp.drawStr("rssi: " .. tostring(nbiot.rssi()), 1, 36)
  25. disp.update()
  26. end
  27. -- 初始化显示屏
  28. log.info(TAG, "init ssd1306") -- log库是内置库,内置库均不需要require
  29. disp.init({mode="i2c_sw", pin0=17, pin1=18}) -- 通过GPIO17/GPIO18模拟, 也可以用硬件i2c脚
  30. display_str("Booting ...")
  31. sys.taskInit(function()
  32. while 1 do
  33. sys.wait(1000)
  34. log.info("disp", "ui update", rtos.meminfo()) -- rtos是也是内置库
  35. ui_update()
  36. end
  37. end)
  38. sys.taskInit(function()
  39. while 1 do
  40. if socket.isReady() then
  41. NETLED(1)
  42. sys.wait(100)
  43. NETLED(0)
  44. sys.wait(1900)
  45. else
  46. NETLED(1)
  47. sys.wait(500)
  48. NETLED(0)
  49. sys.wait(500)
  50. end
  51. end
  52. end)
  53. -- 用户代码已结束---------------------------------------------
  54. -- 结尾总是这一句
  55. sys.run()
  56. -- sys.run()之后后面不要加任何语句!!!!!