main.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. PROJECT = "aliyundemo"
  2. VERSION = "1.0.0"
  3. local sys = require "sys"
  4. require "aliyun"
  5. --根据自己的服务器修改以下参数
  6. local mqtt_host = "你的实例id.mqtt.iothub.aliyuncs.com" --你公共实例的地址
  7. local mqtt_port = 1883 --端口
  8. local mqtt_isssl = true -- 是否为ssl加密连接,默认不加密,true为无证书最简单的加密,table为有证书的加密
  9. local ProductKey = "你的key" --产品证书
  10. local ProductSecret = "你的产品密钥" --产品密钥
  11. local DeviceName = "你的设备id" --设备id
  12. local Registration = false --如果预注册了的话就不需要改 false true
  13. local InstanceId = "iot-你的实例id" --如果没有注册需要填写实例id,在阿里云的实例详情页面
  14. local DeviceSecret = "你的设备秘钥" --一机一密需要的设备密钥
  15. ---数据接收的处理函数
  16. -- @string topic,UTF8编码的消息主题
  17. -- @number qos,消息质量等级
  18. -- @string payload,原始编码的消息负载
  19. local function rcvCbFnc(topic,qos,payload)
  20. log.info("aliyun.rcvCbFnc",topic,qos,payload)
  21. end
  22. --- 连接结果的处理函数
  23. -- @bool result,连接结果,true表示连接成功,false或者nil表示连接失败
  24. local function connectCbFnc(result)
  25. log.info("aliyun.connectCbFnc",result)
  26. if result then
  27. --订阅主题,不需要考虑订阅结果,如果订阅失败,aliyun库中会自动重连
  28. --根据自己的项目需要订阅主题,下面注释掉的一行代码中的主题是非法的,所以不能打开,一旦打开,会导致订阅失败
  29. --aliyun.subscribe({["/"..PRODUCT_KEY.."/"..getDeviceName().."/get"]=0, ["/"..PRODUCT_KEY.."/"..getDeviceName().."/get"]=1})
  30. aliyun.subscriber("/ht6f7kmyFFQ/861551056421746/user/ceshi",1)
  31. --注册数据接收的处理函数
  32. aliyun.on("receive",rcvCbFnc)
  33. aliyun.publish("/"..ProductKey.."/"..DeviceName.."/user/get",0,"LUATOS_CESHI")
  34. end
  35. end
  36. aliyun.on("connect",connectCbFnc)
  37. --一型一密
  38. -- aliyun.operation(Registration,DeviceName,ProductKey,ProductSecret,InstanceId,mqtt_host,mqtt_port,mqtt_isssl)
  39. --一机一密
  40. aliyun.confiDentialTask(DeviceName,ProductKey,DeviceSecret,mqtt_host,mqtt_port,mqtt_isssl)
  41. -- 用户代码已结束---------------------------------------------
  42. -- 结尾总是这一句
  43. sys.run()
  44. -- sys.run()之后后面不要加任何语句!!!!!