main.lua 2.7 KB

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