main.lua 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "ec618_w5500"
  3. VERSION = "1.2"
  4. -- PRODUCT_KEY = "s1uUnY6KA06ifIjcutm5oNbG3MZf5aUv" --换成自己的
  5. -- sys库是标配
  6. _G.sys = require("sys")
  7. _G.sysplus = require("sysplus")
  8. log.style(1)
  9. --[[
  10. 本demo是 Air780E + w5500. 以 Air780E开发板为例, 接线如下:
  11. Air780E W5500
  12. GND(任意) GND
  13. GPIO18 IRQ/INT,中断
  14. GPIO01 RST, 复位
  15. GPIO08/SPI0_CS CS/SCS,片选
  16. GPIO11/SPI0_SLK SLK,时钟
  17. GPIO09/SPI0_MOSI MOSI,主机输出,从机输入
  18. GPIO10/SPI0_MISO MISO,主机输入,从机输出
  19. 最后是供电, 这样要根据W5500的板子来选:
  20. 1. 如果是5V的, 那么接780E开发板的5V
  21. 2. 如果是3.3V的, 另外找一个3.3V, 例如CH340小板子, 额外供电
  22. 注意: 额外供电时候, W5500的GND和Air780E依然需要接起来.
  23. ]]
  24. -- 配置W5500
  25. -- 0 -- SPI0
  26. -- 25600000 -- 25.6M波特率, Air780E的最高波特率
  27. -- 8 -- CS片选脚
  28. -- 18 -- INT/IRQ中断脚
  29. -- 1 -- RST复位脚
  30. w5500.init(0, 25600000, 8, 18, 1)
  31. w5500.config() --默认是DHCP模式,其他模块请查阅w5500库的API
  32. w5500.bind(socket.ETH0) -- 固定写法
  33. ----------------------------------------
  34. -- 报错信息自动上报到平台,默认是iot.openluat.com
  35. -- 支持自定义, 详细配置请查阅API手册
  36. -- 开启后会上报开机原因, 这需要消耗流量,请留意
  37. -- if errDump then
  38. -- errDump.config(true, 600)
  39. -- end
  40. ----------------------------------------
  41. -- 如果运营商自带的DNS不好用,可以用下面的公用DNS
  42. -- socket.setDNS(nil,1,"223.5.5.5")
  43. -- socket.setDNS(nil,2,"114.114.114.114")
  44. -- NTP 按需开启
  45. -- socket.sntp()
  46. --socket.sntp("ntp.aliyun.com") --自定义sntp服务器地址
  47. --socket.sntp({"ntp.aliyun.com","ntp1.aliyun.com","ntp2.aliyun.com"}) --sntp自定义服务器地址
  48. -- sys.subscribe("NTP_UPDATE", function()
  49. -- log.info("sntp", "time", os.date())
  50. -- end)
  51. -- sys.subscribe("NTP_ERROR", function()
  52. -- log.info("socket", "sntp error")
  53. -- socket.sntp()
  54. -- end)
  55. -- 780E和W5500都有IP_READY/IP_LOSE消息,通过adapter区分
  56. sys.subscribe("IP_READY", function(ip, adapter)
  57. log.info("ipready", ip, adapter)
  58. end)
  59. sys.subscribe("IP_LOSE", function(adapter)
  60. log.info("iplose", adapter)
  61. end)
  62. -----------------------------------------------------------------------------
  63. -- netlab.luatos.com上打开TCP,然后修改IP和端口号,自动回复netlab下发的数据,自收自发测试
  64. -- 以下端口号均为临时端口, 要改成自己的值
  65. -----------------------------------------------------------------------------
  66. server_ip = "152.70.80.204"
  67. server_port = 55026 -- TCP测试的端口
  68. UDP_port = 55026 -- UDP测试的端口
  69. ssl_port = 55026 -- TCP-SSL的测试端口
  70. -- 与日常写法最大的区别,就是创建socket/http/ftp/mqtt时需要指定网卡 socket.ETH0
  71. require "async_socket_demo"
  72. socketDemo()
  73. -- 用户代码已结束---------------------------------------------
  74. -- 结尾总是这一句
  75. sys.run()
  76. -- sys.run()之后后面不要加任何语句!!!!!