main.lua 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "air8000_gpio_ext"
  3. VERSION = "1.0.5"
  4. -- sys库是标配
  5. _G.sys = require("sys")
  6. require "sysplus"
  7. dnsproxy = require("dnsproxy")
  8. dhcpsrv = require("dhcpsrv")
  9. httpplus = require("httpplus")
  10. PWR8000S = gpio.setup(23, 0, gpio.PULLUP) -- 关闭Air8000S的LDO供电
  11. function test_ap()
  12. wlan.createAP("uiot5678", "12345678")
  13. netdrv.ipv4(socket.LWIP_AP, "192.168.4.1", "255.255.255.0", "0.0.0.0")
  14. sys.wait(100)
  15. dnsproxy.setup(socket.LWIP_AP, socket.LWIP_GP)
  16. dhcpsrv.create({adapter=socket.LWIP_AP})
  17. while 1 do
  18. if netdrv.ready(socket.LWIP_GP) then
  19. netdrv.napt(socket.LWIP_GP)
  20. break
  21. end
  22. sys.wait(1000)
  23. end
  24. end
  25. function test_sta()
  26. wlan.connect("luatos1234", "12341234")
  27. netdrv.dhcp(socket.LWIP_STA, true)
  28. netdrv.napt(socket.LWIP_STA)
  29. while 1 do
  30. -- log.info("MAC地址", netdrv.mac(socket.LWIP_STA))
  31. -- log.info("IP地址", netdrv.ipv4(socket.LWIP_STA))
  32. -- log.info("ready?", netdrv.ready(socket.LWIP_STA))
  33. sys.wait(1000)
  34. log.info("执行http请求")
  35. -- local code = http.request("GET", "http://192.168.1.15:8000/README.md", nil, nil, {adapter=socket.LWIP_STA,timeout=3000}).wait()
  36. local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil, {adapter=socket.LWIP_STA,timeout=3000}).wait()
  37. log.info("http执行结果", code, headers, body and #body)
  38. end
  39. end
  40. function test_scan()
  41. while 1 do
  42. log.info("执行wifi扫描")
  43. wlan.scan()
  44. sys.wait(30 * 1000)
  45. end
  46. end
  47. sys.subscribe("WLAN_SCAN_DONE", function ()
  48. local results = wlan.scanResult()
  49. log.info("scan", "results", #results)
  50. for k,v in pairs(results) do
  51. log.info("scan", v["ssid"], v["rssi"], (v["bssid"]:toHex()))
  52. end
  53. end)
  54. -- 每隔6秒打印一次airlink统计数据, 调试用
  55. sys.taskInit(function()
  56. while 1 do
  57. sys.wait(6000)
  58. airlink.statistics()
  59. end
  60. end)
  61. sys.taskInit(function()
  62. -- 稍微缓一下
  63. sys.wait(10)
  64. -- 初始化airlink
  65. airlink.init()
  66. -- 启动底层线程, 从机模式
  67. airlink.start(1)
  68. PWR8000S(1)
  69. netdrv.setup(socket.LWIP_STA, netdrv.WHALE)
  70. netdrv.setup(socket.LWIP_AP, netdrv.WHALE)
  71. sys.wait(100)
  72. wlan.init()
  73. sys.wait(100)
  74. -- 启动AP测试
  75. test_ap()
  76. -- 连接STA测试
  77. -- test_sta()
  78. -- wifi扫描测试
  79. -- test_scan()
  80. end)
  81. -- 用户代码已结束---------------------------------------------
  82. -- 结尾总是这一句
  83. sys.run()
  84. -- sys.run()之后后面不要加任何语句!!!!!