main.lua 1.8 KB

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