main.lua 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "httpdnsdemo"
  3. VERSION = "1.0.0"
  4. --[[
  5. 本demo需要http库, 大部分能联网的设备都具有这个库
  6. http也是内置库, 无需require
  7. ]]
  8. -- sys库是标配
  9. _G.sys = require("sys")
  10. --[[特别注意, 使用http库需要下列语句]]
  11. _G.sysplus = require("sysplus")
  12. httpdns = require "httpdns"
  13. -- Air780E的AT固件默认会为开机键防抖, 导致部分用户刷机很麻烦
  14. if rtos.bsp() == "EC618" and pm and pm.PWK_MODE then
  15. pm.power(pm.PWK_MODE, false)
  16. end
  17. sys.taskInit(function()
  18. -----------------------------
  19. -- 统一联网函数, 可自行删减
  20. ----------------------------
  21. if wlan and wlan.connect then
  22. -- wifi 联网, ESP32系列均支持
  23. local ssid = "luatos1234"
  24. local password = "12341234"
  25. log.info("wifi", ssid, password)
  26. -- TODO 改成esptouch配网
  27. -- LED = gpio.setup(12, 0, gpio.PULLUP)
  28. wlan.init()
  29. -- wlan.setMode(wlan.STATION)
  30. wlan.connect(ssid, password, 1)
  31. local result, data = sys.waitUntil("IP_READY", 30000)
  32. log.info("wlan", "IP_READY", result, data)
  33. device_id = wlan.getMac()
  34. elseif rtos.bsp() == "AIR105" then
  35. -- w5500 以太网, 当前仅Air105支持
  36. w5500.init(spi.HSPI_0, 24000000, pin.PC14, pin.PC01, pin.PC00)
  37. w5500.config() --默认是DHCP模式
  38. w5500.bind(socket.ETH0)
  39. -- LED = gpio.setup(62, 0, gpio.PULLUP)
  40. sys.wait(1000)
  41. -- TODO 获取mac地址作为device_id
  42. elseif mobile then
  43. -- Air780E/Air600E系列
  44. --mobile.simid(2)
  45. -- LED = gpio.setup(27, 0, gpio.PULLUP)
  46. device_id = mobile.imei()
  47. -- log.info("ipv6", mobile.ipv6(true))
  48. sys.waitUntil("IP_READY", 30000)
  49. end
  50. log.info("已联网")
  51. sys.publish("net_ready")
  52. end)
  53. sys.taskInit(function()
  54. sys.waitUntil("net_ready")
  55. while 1 do
  56. sys.wait(1000)
  57. -- 通过阿里DNS获取结果
  58. local ip = httpdns.ali("air32.cn")
  59. log.info("httpdns", "air32.cn", ip)
  60. -- 通过腾讯DNS获取结果
  61. local ip = httpdns.tx("openluat.com")
  62. log.info("httpdns", "openluat.com", ip)
  63. end
  64. end)
  65. -- 用户代码已结束---------------------------------------------
  66. -- 结尾总是这一句
  67. sys.run()
  68. -- sys.run()之后后面不要加任何语句!!!!!