فهرست منبع

删除 各个模组型号的 iotcloud demo

qinpeng@openluat.com 5 ماه پیش
والد
کامیت
caebd5842b
29فایلهای تغییر یافته به همراه0 افزوده شده و 2931 حذف شده
  1. 0 161
      module/Air780E/demo/iotcloud/oneNET/main.lua
  2. 0 83
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/aliyun/示例1 一型一密(免预注册,但需要是企业版实例平台)方式连接云平台/main.lua
  3. 0 82
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/aliyun/示例2 一型一密(预注册)方式连接云平台/main.lua
  4. 0 82
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/aliyun/示例3 一机一密方式连接云平台/main.lua
  5. 0 70
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/baiduiot/main.lua
  6. 0 88
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/huaweiiot/main.lua
  7. 0 157
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/onenet/main.lua
  8. 0 79
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/tencentiot/main.lua
  9. 0 132
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/tlink/main.lua
  10. 0 70
      module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/tuyaiot/示例1 一机一密/main.lua
  11. 0 83
      module/Air780EPM/demo/iotcloud/aliyun/示例1 一型一密(免预注册,但需要是企业版实例平台)方式连接云平台/main.lua
  12. 0 82
      module/Air780EPM/demo/iotcloud/aliyun/示例2 一型一密(预注册)方式连接云平台/main.lua
  13. 0 82
      module/Air780EPM/demo/iotcloud/aliyun/示例3 一机一密方式连接云平台/main.lua
  14. 0 70
      module/Air780EPM/demo/iotcloud/baiduiot/main.lua
  15. 0 88
      module/Air780EPM/demo/iotcloud/huaweiiot/main.lua
  16. 0 157
      module/Air780EPM/demo/iotcloud/onenet/main.lua
  17. 0 79
      module/Air780EPM/demo/iotcloud/tencentiot/main.lua
  18. 0 132
      module/Air780EPM/demo/iotcloud/tlink/main.lua
  19. 0 70
      module/Air780EPM/demo/iotcloud/tuyaiot/示例1 一机一密/main.lua
  20. 0 284
      module/Air8000/demo/GPS/agps_icoe.lua
  21. 0 89
      module/Air8000/demo/GPS/main.lua
  22. 0 83
      module/Air8000/demo/iotcloud/aliyun/示例1 一型一密(免预注册,但需要是企业版实例平台)方式连接云平台/main.lua
  23. 0 82
      module/Air8000/demo/iotcloud/aliyun/示例2 一型一密(预注册)方式连接云平台/main.lua
  24. 0 82
      module/Air8000/demo/iotcloud/aliyun/示例3 一机一密方式连接云平台/main.lua
  25. 0 70
      module/Air8000/demo/iotcloud/baiduiot/main.lua
  26. 0 88
      module/Air8000/demo/iotcloud/huaweiiot/main.lua
  27. 0 157
      module/Air8000/demo/iotcloud/onenet/main.lua
  28. 0 79
      module/Air8000/demo/iotcloud/tencentiot/main.lua
  29. 0 70
      module/Air8000/demo/iotcloud/tuyaiot/示例1 一机一密/main.lua

+ 0 - 161
module/Air780E/demo/iotcloud/oneNET/main.lua

@@ -1,161 +0,0 @@
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "oneNET_demo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-lbsLoc2 = require("lbsLoc2")
-local iotcloud = require("iotcloud")
-mobile.simid(2, true)
--- Air780E的AT固件默认会为开机键防抖, 导致部分用户刷机很麻烦
-if rtos.bsp() == "EC618" and pm and pm.PWK_MODE then
-    pm.power(pm.PWK_MODE, false)
-end
-
-local produt_id = "4qM5N1Sa4T"
-local userid = "226691"
-local userkey = "pk1M3FKXBvvmjF8If/xDfSFFmr96NZCEg00sxlLBMjjh9vOD5hpIs42rmAYnMh5b3m9B1+0rmYdqzUyoQVrxow=="
-local device_name = mobile.imei()
-local send_data_time = 5 * 60 * 1000 -- 定时发送数据的时间,单位ms
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- ONENET云
-    -- 动态注册
-    iotcloudc = iotcloud.new(iotcloud.ONENET, {
-        device_name = device_name,
-        produt_id = produt_id,
-        userid = userid,
-        userkey = userkey
-    })
-    -- 一型一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",product_secret = "xxx"})
-    -- 一机一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
--- 发布和订阅的主题
-
-local oneNET_sub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post/reply"
-
-local oneNET_pub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post"
-
-local function oneNET_send_data()
-    log.info("oneNET 链接成功,准备开始发送数据")
-    while 1 do
-        -- 没有mobile库就没有基站定位
-        mobile.reqCellInfo(15)
-        -- 由于基站定位需要等待扫描周围基站,推荐扫描时间为15S
-        sys.waitUntil("CELL_INFO_UPDATE", 15000)
-        local lat, lng, t = lbsLoc2.request(5000)
-        log.info("lbsLoc2", lat, lng, (json.encode(t or {})))
-        -- 如果没扫描到基站则给lat和lng赋值为0
-        if lat and lng then
-            log.info("扫描到了,有位置信息")
-        else
-            lat = "0"
-            lng = "0"
-        end
-        -- 读取CPU温度, 单位为0.001摄氏度, 是内部温度, 非环境温度
-        adc.open(adc.CH_CPU)
-        local cpu_temp = adc.get(adc.CH_CPU)
-        adc.close(adc.CH_CPU)
-        local gpio_pin = 6 -- GPIO编号
-        local gpio_state = gpio.get(gpio_pin)
-        local send_data = {
-            id = "123",
-            verson = VERSION,
-            params = {
-                gpio_state = {
-                    value = gpio_state
-                },
-                cpu_temp = {
-                    value = cpu_temp / 1000
-                },
-                lbs_lat = {
-                    value = tonumber(lat)
-                },
-                lbs_lng = {
-                    value = tonumber(lng)
-                    -- value = lng
-                }
-            }
-        }
-        local send_data = json.encode(send_data)
-        log.info("发送的数据为", send_data)
-        -- 正式发布数据
-        iotcloudc:publish(oneNET_pub, send_data)
-        -- 循环发送数据的定时时间
-        sys.wait(send_data_time)
-    end
-
-end
-
-local con = 0
---oneNET断开后的处理函数,
-local function oneNET_DISCONNECT()
-    log.info("云平台断开了,隔一分钟重连一次,如果10次都没有连上则重启设备")
-    while con < 10 do
-        sys.wait(60*1000)
-        log.info("oneNET reconnection",con)
-        iotcloudc:connect()
-    end
-    pm.reboot()
-end
-sys.subscribe("iotcloud", function(cloudc, event, data, payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        log.info("iotcloud", "CONNECT", "oneNET平台连接成功")
-        iotcloudc:subscribe({
-            [oneNET_sub] = 1
-        }) -- 订阅服务器下发数据的主题
-        -- 链接成功,启动一个task专门用来定时发消息
-        sys.taskInit(oneNET_send_data)
-
-    elseif event == iotcloud.RECEIVE then
-        log.info("收到服务器下发的数据")
-        log.info("iotcloud", "topic", data, "payload", payload)
-
-        -- 用户处理代码
-        if payload then
-            payload = json.decode(payload)
-            if payload["code"] == 200 then
-                log.info("服务器收到了刚刚上传的数据", payload["msg"])
-            else
-                log.info("服务器接收数据有误", "错误码为", payload["code"], "错误信息为",
-                    payload["msg"])
-            end
-        end
-
-    elseif event == iotcloud.SEND then
-        log.info("发送数据成功")
-
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-       sys.taskInit(oneNET_DISCONNECT)
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 83
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/aliyun/示例1 一型一密(免预注册,但需要是企业版实例平台)方式连接云平台/main.lua

@@ -1,83 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yxym_myzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 82
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/aliyun/示例2 一型一密(预注册)方式连接云平台/main.lua

@@ -1,82 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yxym_yzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 82
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/aliyun/示例3 一机一密方式连接云平台/main.lua

@@ -1,82 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yjym_yzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 70
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/baiduiot/main.lua

@@ -1,70 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- 百度云
-    -- 密钥认证(手动注册)
-    -- iotcloudc = iotcloud.new(iotcloud.BAIDU,{produt_id = "aakyhyw",device_name = "869329069169988",device_secret = "IzNIWqXdGRPEoUlS"})
-    -- 证书认证(自动注册)
-    iotcloudc = iotcloud.new(iotcloud.BAIDU,{produt_id = "aakyhyw",device_name = "869329069169988"},{tls={server_cert=io.readFile("/luadb/GlobalSign.cer"),client_cert=io.readFile("/luadb/client_cert.txt"),client_key=io.readFile("/luadb/client_private_key.txt")}})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("$iot/869329069169988/user/fortest") -- 可以自由订阅主题等
-
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        if payload == "open" then
-            log.info("main", "收到云平台下发的指令")
-            LED(1)
-        elseif payload == "close" then
-            LED(0)
-        end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 88
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/huaweiiot/main.lua

@@ -1,88 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        -- LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- -- 华为云
-    -- -- 动态注册(免预注册)
-    -- iotcloudc = iotcloud.new(iotcloud.HUAWEI,{produt_id = "670c7b2dfc8d5a4ea71c6a79",
-    --                                             project_id = "c086a58ebd714bfcb1a0fea2f0edde36",
-    --                                             endpoint = "9098a2ff3c.st1",
-    --                                             iam_username="hao",
-    --                                             iam_password="Wsh1322764769",
-    --                                             iam_domain="hao15738882476"})
-    -- 密钥校验 (预注册)
-    iotcloudc = iotcloud.new(iotcloud.HUAWEI,{produt_id = "670c7b2dfc8d5a4ea71c6a79",endpoint = "5341624af8.st1",device_name = "869329069169988",device_secret = "XXX"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        -- iotcloudc:subscribe("/huawei/down/869329069169988") -- 可以自由定阅主题等
-        -- iotcloudc:subscribe("$oc/devices/869329069169988/user/869329069169988")
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- local test_value = json.decode(payload).content.switch
-        -- print("test value:", test_value)
-
-        -- if test_value == 1 then
-        --     LED(1)
-        -- elseif test_value == 0 then
-        --     LED(0)
-        -- end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
--- -- 每隔2秒发布一次qos为1的消息到云平台
--- sys.taskInit(function()
---     while 1 do
---         sys.wait(2000)
---         if iotcloudc then
---             iotcloudc:publish("$oc/devices/869329069169988/user/869329069169988", "hello world!", 1) -- 上传数据
---         end
---     end
--- end)
-
-
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 157
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/onenet/main.lua

@@ -1,157 +0,0 @@
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "oneNET_demo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-lbsLoc2 = require("lbsLoc2")
-local iotcloud = require("iotcloud")
-mobile.simid(2, true)
-
-local produt_id = "4qM5N1Sa4T"
-local userid = "226691"
-local userkey = "pk1M3FKXBvvmjF8If/xDfSFFmr96NZCEg00sxlLBMjjh9vOD5hpIs42rmAYnMh5b3m9B1+0rmYdqzUyoQVrxow=="
-local device_name = mobile.imei()
-local send_data_time = 5 * 60 * 1000 -- 定时发送数据的时间,单位ms
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- ONENET云
-    -- 动态注册
-    iotcloudc = iotcloud.new(iotcloud.ONENET, {
-        device_name = device_name,
-        produt_id = produt_id,
-        userid = userid,
-        userkey = userkey
-    })
-    -- 一型一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",product_secret = "xxx"})
-    -- 一机一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
--- 发布和订阅的主题
-
-local oneNET_sub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post/reply"
-
-local oneNET_pub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post"
-
-local function oneNET_send_data()
-    log.info("oneNET 链接成功,准备开始发送数据")
-    while 1 do
-        -- 没有mobile库就没有基站定位
-        mobile.reqCellInfo(15)
-        -- 由于基站定位需要等待扫描周围基站,推荐扫描时间为15S
-        sys.waitUntil("CELL_INFO_UPDATE", 15000)
-        local lat, lng, t = lbsLoc2.request(5000)
-        log.info("lbsLoc2", lat, lng, (json.encode(t or {})))
-        -- 如果没扫描到基站则给lat和lng赋值为0
-        if lat and lng then
-            log.info("扫描到了,有位置信息")
-        else
-            lat = "0"
-            lng = "0"
-        end
-        -- 读取CPU温度, 单位为0.001摄氏度, 是内部温度, 非环境温度
-        adc.open(adc.CH_CPU)
-        local cpu_temp = adc.get(adc.CH_CPU)
-        adc.close(adc.CH_CPU)
-        local gpio_pin = 6 -- GPIO编号
-        local gpio_state = gpio.get(gpio_pin)
-        local send_data = {
-            id = "123",
-            verson = VERSION,
-            params = {
-                gpio_state = {
-                    value = gpio_state
-                },
-                cpu_temp = {
-                    value = cpu_temp / 1000
-                },
-                lbs_lat = {
-                    value = tonumber(lat)
-                },
-                lbs_lng = {
-                    value = tonumber(lng)
-                    -- value = lng
-                }
-            }
-        }
-        local send_data = json.encode(send_data)
-        log.info("发送的数据为", send_data)
-        -- 正式发布数据
-        iotcloudc:publish(oneNET_pub, send_data)
-        -- 循环发送数据的定时时间
-        sys.wait(send_data_time)
-    end
-
-end
-
-local con = 0
---oneNET断开后的处理函数,
-local function oneNET_DISCONNECT()
-    log.info("云平台断开了,隔一分钟重连一次,如果10次都没有连上则重启设备")
-    while con < 10 do
-        sys.wait(60*1000)
-        log.info("oneNET reconnection",con)
-        iotcloudc:connect()
-    end
-    pm.reboot()
-end
-sys.subscribe("iotcloud", function(cloudc, event, data, payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        log.info("iotcloud", "CONNECT", "oneNET平台连接成功")
-        iotcloudc:subscribe({
-            [oneNET_sub] = 1
-        }) -- 订阅服务器下发数据的主题
-        -- 链接成功,启动一个task专门用来定时发消息
-        sys.taskInit(oneNET_send_data)
-
-    elseif event == iotcloud.RECEIVE then
-        log.info("收到服务器下发的数据")
-        log.info("iotcloud", "topic", data, "payload", payload)
-
-        -- 用户处理代码
-        if payload then
-            payload = json.decode(payload)
-            if payload["code"] == 200 then
-                log.info("服务器收到了刚刚上传的数据", payload["msg"])
-            else
-                log.info("服务器接收数据有误", "错误码为", payload["code"], "错误信息为",
-                    payload["msg"])
-            end
-        end
-
-    elseif event == iotcloud.SEND then
-        log.info("发送数据成功")
-
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-       sys.taskInit(oneNET_DISCONNECT)
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 79
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/tencentiot/main.lua

@@ -1,79 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- -- 腾讯云
-    -- -- 动态注册
-    -- iotcloudc = iotcloud.new(iotcloud.TENCENT,{produt_id = "ZAJCHA24SH" ,product_secret = "vGGwnSkyM4eD5ddbNrQoGJox"})
-    -- -- 密钥校验
-    iotcloudc = iotcloud.new(iotcloud.TENCENT,{produt_id = "ZAJCHA24SH",device_name = "869329069169988",device_secret = "xNWcxDX0qzSM74oFteehvw=="})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("$thing/down/property/ZAJCHA24SH/869329069169988") -- 可以自由定阅主题等
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        local test_value = json.decode(payload).params.switch
-        print("test value:", test_value)
-
-        if test_value == 1 then
-            LED(1)
-        elseif test_value == 0 then
-            LED(0)
-        end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("$thing/up/property/ZAJCHA24SH/869329069169988", "hello world!", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 132
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/tlink/main.lua

@@ -1,132 +0,0 @@
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "IOTCLOUD_TLINK"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- TLINK平台设备序列号
-local serialNumber = "XXXXXXXXXXXXXX"
--- TLINK平台登录账号
-local username = "XXXXXXXXXXXXXX"
--- TLINK平台登录密码
-local password = "XXXXXXXXXXXXXX"
-
--- TLINK平台添加的传感器ID
-local sensorsId = "XXXXXXXXXXXXXX"
-
--- TLINK平台添加的传感器对应的TOPIC,iotcloud库会自动为设备订阅通配主题,用户只需判断报文是否来自该传感器的TOPIC即可
-local tlinkSubTopic = serialNumber .. "/" .. sensorsId
-
--- 是否使用自动重连
-local autoReconnect = false
-local connectConfig = {
-    keepalive = 60 -- mqtt心跳设置为60秒
-}
-
--- 手动重连定时器ID
-local reconnectTimerId
-
-if autoReconnect then
-    connectConfig.autoreconn = 3000 -- 云平台断开3秒后自动重连
-end
-
--- TLINK平台switch类型传感器回传报文
-local function switchSensorPub(cloudc, switch)
-    local tmp = {
-        sensorDatas = {{
-            sensorsId = sensorsId,
-            switcher = switch
-        }}
-    }
-    local payload = json.encode(tmp)
-    log.info("回传的报文", payload)
-    cloudc:publish(serialNumber, payload)
-end
-
--- 将gpio27设置为输出模式,低电平,gpio27在开发板上控制的是蓝灯
-local ledCtrl = gpio.setup(27, 0)
-
--- 订阅来自iotcloud库发布的消息主题
-sys.subscribe("iotcloud", function(cloudc, event, data, payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台连上了
-        if not autoReconnect then
-            if reconnectTimerId and sys.timerIsActive(reconnectTimerId) then
-                sys.timerStop(reconnectTimerId)
-            end
-        end
-        log.info("TLINK 云平台连接成功")
-        -- cloudc:subscribe("test") -- 可以自由订阅主题,详情可参考TLINK开发文档
-    elseif event == iotcloud.RECEIVE then
-        log.info("TLINK 发布消息", "topic", data, "payload", payload)
-        -- 判断主题是否来自sensorsId的报文
-        if data == tlinkSubTopic then
-            -- json解析
-            local userPayload, result, err = json.decode(payload)
-            -- 防止异常的措施,防止json解析失败代码运行异常
-            if result == 1 and userPayload and type(userPayload) == "table" then
-                if userPayload.sensorDatas and userPayload.sensorDatas[1] then
-                    local switch = userPayload.sensorDatas[1].switcher
-                    -- 如果开关状态等于1,则打开蓝灯,否则关闭蓝灯
-                    if switch == 1 then
-                        ledCtrl(1)
-                    else
-                        ledCtrl(0)
-                    end
-                    -- 回传报文
-                    switchSensorPub(cloudc, switch)
-                end
-            end
-        end
-    elseif event == iotcloud.OTA then
-        -- 用户处理代码
-        -- TLINK 不会有这条消息上报,可忽略
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        log.info("云平台连接断开")
-        if not autoReconnect then
-            if reconnectTimerId and sys.timerIsActive(reconnectTimerId) then
-                sys.timerStop(reconnectTimerId)
-            end
-            reconnectTimerId = sys.timerStart(function()
-                cloudc:connect()
-            end, 3000)
-        end
-    end
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local result
-    while true do
-        log.info("等待联网")
-        result = sys.waitUntil("IP_READY", 30000)
-        if result then
-            break
-        end
-    end
-    log.info("联网成功")
-
-    -- 创建TLINK云平台实例,在iotcloud TLINK平台中,device_name对应mqtt三元组的clientId,product_id对应mqtt三元组的username,product_secret对应mqtt三元组的password
-    iotcloudc = iotcloud.new(iotcloud.TLINK, {
-        device_name = serialNumber,
-        produt_id = username,
-        product_secret = password
-    }, connectConfig)
-    -- 创建成功,则连接,创建失败,就结束程序
-    if iotcloudc then
-        iotcloudc:connect()
-    else
-        log.error("iotcloud", "创建失败, 请检查参数")
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 70
module/Air780EHM_Air780EHV_Air780EGH/demo/iotcloud/tuyaiot/示例1 一机一密/main.lua

@@ -1,70 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    -----------------------------
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- -- 涂鸦云 
-    iotcloudc = iotcloud.new(iotcloud.TUYA,{device_name = "xxx",device_secret = "xxx"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    else
-        log.error("iotcloud", "创建失败, 请检查参数")
-    end
-    
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc : subscribe("tylink/${deviceId}/thing/property/set") -- 订阅信息
-        iotcloudc : publish("tylink/${deviceId}/thing/property/report" , '{"data":{"device_status":"999"}}' , 1) -- 上报信息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 83
module/Air780EPM/demo/iotcloud/aliyun/示例1 一型一密(免预注册,但需要是企业版实例平台)方式连接云平台/main.lua

@@ -1,83 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yxym_myzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 82
module/Air780EPM/demo/iotcloud/aliyun/示例2 一型一密(预注册)方式连接云平台/main.lua

@@ -1,82 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yxym_yzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 82
module/Air780EPM/demo/iotcloud/aliyun/示例3 一机一密方式连接云平台/main.lua

@@ -1,82 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yjym_yzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{product_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",product_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 70
module/Air780EPM/demo/iotcloud/baiduiot/main.lua

@@ -1,70 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- 百度云
-    -- 密钥认证(手动注册)
-    -- iotcloudc = iotcloud.new(iotcloud.BAIDU,{produt_id = "aakyhyw",device_name = "869329069169988",device_secret = "IzNIWqXdGRPEoUlS"})
-    -- 证书认证(自动注册)
-    iotcloudc = iotcloud.new(iotcloud.BAIDU,{produt_id = "aakyhyw",device_name = "869329069169988"},{tls={server_cert=io.readFile("/luadb/GlobalSign.cer"),client_cert=io.readFile("/luadb/client_cert.txt"),client_key=io.readFile("/luadb/client_private_key.txt")}})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("$iot/869329069169988/user/fortest") -- 可以自由订阅主题等
-
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        if payload == "open" then
-            log.info("main", "收到云平台下发的指令")
-            LED(1)
-        elseif payload == "close" then
-            LED(0)
-        end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 88
module/Air780EPM/demo/iotcloud/huaweiiot/main.lua

@@ -1,88 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        -- LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- -- 华为云
-    -- -- 动态注册(免预注册)
-    -- iotcloudc = iotcloud.new(iotcloud.HUAWEI,{produt_id = "670c7b2dfc8d5a4ea71c6a79",
-    --                                             project_id = "c086a58ebd714bfcb1a0fea2f0edde36",
-    --                                             endpoint = "9098a2ff3c.st1",
-    --                                             iam_username="hao",
-    --                                             iam_password="Wsh1322764769",
-    --                                             iam_domain="hao15738882476"})
-    -- 密钥校验 (预注册)
-    iotcloudc = iotcloud.new(iotcloud.HUAWEI,{produt_id = "670c7b2dfc8d5a4ea71c6a79",endpoint = "5341624af8.st1",device_name = "869329069169988",device_secret = "XXX"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        -- iotcloudc:subscribe("/huawei/down/869329069169988") -- 可以自由定阅主题等
-        -- iotcloudc:subscribe("$oc/devices/869329069169988/user/869329069169988")
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- local test_value = json.decode(payload).content.switch
-        -- print("test value:", test_value)
-
-        -- if test_value == 1 then
-        --     LED(1)
-        -- elseif test_value == 0 then
-        --     LED(0)
-        -- end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
--- -- 每隔2秒发布一次qos为1的消息到云平台
--- sys.taskInit(function()
---     while 1 do
---         sys.wait(2000)
---         if iotcloudc then
---             iotcloudc:publish("$oc/devices/869329069169988/user/869329069169988", "hello world!", 1) -- 上传数据
---         end
---     end
--- end)
-
-
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 157
module/Air780EPM/demo/iotcloud/onenet/main.lua

@@ -1,157 +0,0 @@
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "oneNET_demo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-lbsLoc2 = require("lbsLoc2")
-local iotcloud = require("iotcloud")
-mobile.simid(2, true)
-
-local produt_id = "4qM5N1Sa4T"
-local userid = "226691"
-local userkey = "pk1M3FKXBvvmjF8If/xDfSFFmr96NZCEg00sxlLBMjjh9vOD5hpIs42rmAYnMh5b3m9B1+0rmYdqzUyoQVrxow=="
-local device_name = mobile.imei()
-local send_data_time = 5 * 60 * 1000 -- 定时发送数据的时间,单位ms
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- ONENET云
-    -- 动态注册
-    iotcloudc = iotcloud.new(iotcloud.ONENET, {
-        device_name = device_name,
-        produt_id = produt_id,
-        userid = userid,
-        userkey = userkey
-    })
-    -- 一型一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",product_secret = "xxx"})
-    -- 一机一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
--- 发布和订阅的主题
-
-local oneNET_sub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post/reply"
-
-local oneNET_pub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post"
-
-local function oneNET_send_data()
-    log.info("oneNET 链接成功,准备开始发送数据")
-    while 1 do
-        -- 没有mobile库就没有基站定位
-        mobile.reqCellInfo(15)
-        -- 由于基站定位需要等待扫描周围基站,推荐扫描时间为15S
-        sys.waitUntil("CELL_INFO_UPDATE", 15000)
-        local lat, lng, t = lbsLoc2.request(5000)
-        log.info("lbsLoc2", lat, lng, (json.encode(t or {})))
-        -- 如果没扫描到基站则给lat和lng赋值为0
-        if lat and lng then
-            log.info("扫描到了,有位置信息")
-        else
-            lat = "0"
-            lng = "0"
-        end
-        -- 读取CPU温度, 单位为0.001摄氏度, 是内部温度, 非环境温度
-        adc.open(adc.CH_CPU)
-        local cpu_temp = adc.get(adc.CH_CPU)
-        adc.close(adc.CH_CPU)
-        local gpio_pin = 6 -- GPIO编号
-        local gpio_state = gpio.get(gpio_pin)
-        local send_data = {
-            id = "123",
-            verson = VERSION,
-            params = {
-                gpio_state = {
-                    value = gpio_state
-                },
-                cpu_temp = {
-                    value = cpu_temp / 1000
-                },
-                lbs_lat = {
-                    value = tonumber(lat)
-                },
-                lbs_lng = {
-                    value = tonumber(lng)
-                    -- value = lng
-                }
-            }
-        }
-        local send_data = json.encode(send_data)
-        log.info("发送的数据为", send_data)
-        -- 正式发布数据
-        iotcloudc:publish(oneNET_pub, send_data)
-        -- 循环发送数据的定时时间
-        sys.wait(send_data_time)
-    end
-
-end
-
-local con = 0
---oneNET断开后的处理函数,
-local function oneNET_DISCONNECT()
-    log.info("云平台断开了,隔一分钟重连一次,如果10次都没有连上则重启设备")
-    while con < 10 do
-        sys.wait(60*1000)
-        log.info("oneNET reconnection",con)
-        iotcloudc:connect()
-    end
-    pm.reboot()
-end
-sys.subscribe("iotcloud", function(cloudc, event, data, payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        log.info("iotcloud", "CONNECT", "oneNET平台连接成功")
-        iotcloudc:subscribe({
-            [oneNET_sub] = 1
-        }) -- 订阅服务器下发数据的主题
-        -- 链接成功,启动一个task专门用来定时发消息
-        sys.taskInit(oneNET_send_data)
-
-    elseif event == iotcloud.RECEIVE then
-        log.info("收到服务器下发的数据")
-        log.info("iotcloud", "topic", data, "payload", payload)
-
-        -- 用户处理代码
-        if payload then
-            payload = json.decode(payload)
-            if payload["code"] == 200 then
-                log.info("服务器收到了刚刚上传的数据", payload["msg"])
-            else
-                log.info("服务器接收数据有误", "错误码为", payload["code"], "错误信息为",
-                    payload["msg"])
-            end
-        end
-
-    elseif event == iotcloud.SEND then
-        log.info("发送数据成功")
-
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-       sys.taskInit(oneNET_DISCONNECT)
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 79
module/Air780EPM/demo/iotcloud/tencentiot/main.lua

@@ -1,79 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- -- 腾讯云
-    -- -- 动态注册
-    -- iotcloudc = iotcloud.new(iotcloud.TENCENT,{produt_id = "ZAJCHA24SH" ,product_secret = "vGGwnSkyM4eD5ddbNrQoGJox"})
-    -- -- 密钥校验
-    iotcloudc = iotcloud.new(iotcloud.TENCENT,{produt_id = "ZAJCHA24SH",device_name = "869329069169988",device_secret = "xNWcxDX0qzSM74oFteehvw=="})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("$thing/down/property/ZAJCHA24SH/869329069169988") -- 可以自由定阅主题等
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        local test_value = json.decode(payload).params.switch
-        print("test value:", test_value)
-
-        if test_value == 1 then
-            LED(1)
-        elseif test_value == 0 then
-            LED(0)
-        end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("$thing/up/property/ZAJCHA24SH/869329069169988", "hello world!", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 132
module/Air780EPM/demo/iotcloud/tlink/main.lua

@@ -1,132 +0,0 @@
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "IOTCLOUD_TLINK"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- TLINK平台设备序列号
-local serialNumber = "XXXXXXXXXXXXXX"
--- TLINK平台登录账号
-local username = "XXXXXXXXXXXXXX"
--- TLINK平台登录密码
-local password = "XXXXXXXXXXXXXX"
-
--- TLINK平台添加的传感器ID
-local sensorsId = "XXXXXXXXXXXXXX"
-
--- TLINK平台添加的传感器对应的TOPIC,iotcloud库会自动为设备订阅通配主题,用户只需判断报文是否来自该传感器的TOPIC即可
-local tlinkSubTopic = serialNumber .. "/" .. sensorsId
-
--- 是否使用自动重连
-local autoReconnect = false
-local connectConfig = {
-    keepalive = 60 -- mqtt心跳设置为60秒
-}
-
--- 手动重连定时器ID
-local reconnectTimerId
-
-if autoReconnect then
-    connectConfig.autoreconn = 3000 -- 云平台断开3秒后自动重连
-end
-
--- TLINK平台switch类型传感器回传报文
-local function switchSensorPub(cloudc, switch)
-    local tmp = {
-        sensorDatas = {{
-            sensorsId = sensorsId,
-            switcher = switch
-        }}
-    }
-    local payload = json.encode(tmp)
-    log.info("回传的报文", payload)
-    cloudc:publish(serialNumber, payload)
-end
-
--- 将gpio27设置为输出模式,低电平,gpio27在开发板上控制的是蓝灯
-local ledCtrl = gpio.setup(27, 0)
-
--- 订阅来自iotcloud库发布的消息主题
-sys.subscribe("iotcloud", function(cloudc, event, data, payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台连上了
-        if not autoReconnect then
-            if reconnectTimerId and sys.timerIsActive(reconnectTimerId) then
-                sys.timerStop(reconnectTimerId)
-            end
-        end
-        log.info("TLINK 云平台连接成功")
-        -- cloudc:subscribe("test") -- 可以自由订阅主题,详情可参考TLINK开发文档
-    elseif event == iotcloud.RECEIVE then
-        log.info("TLINK 发布消息", "topic", data, "payload", payload)
-        -- 判断主题是否来自sensorsId的报文
-        if data == tlinkSubTopic then
-            -- json解析
-            local userPayload, result, err = json.decode(payload)
-            -- 防止异常的措施,防止json解析失败代码运行异常
-            if result == 1 and userPayload and type(userPayload) == "table" then
-                if userPayload.sensorDatas and userPayload.sensorDatas[1] then
-                    local switch = userPayload.sensorDatas[1].switcher
-                    -- 如果开关状态等于1,则打开蓝灯,否则关闭蓝灯
-                    if switch == 1 then
-                        ledCtrl(1)
-                    else
-                        ledCtrl(0)
-                    end
-                    -- 回传报文
-                    switchSensorPub(cloudc, switch)
-                end
-            end
-        end
-    elseif event == iotcloud.OTA then
-        -- 用户处理代码
-        -- TLINK 不会有这条消息上报,可忽略
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        log.info("云平台连接断开")
-        if not autoReconnect then
-            if reconnectTimerId and sys.timerIsActive(reconnectTimerId) then
-                sys.timerStop(reconnectTimerId)
-            end
-            reconnectTimerId = sys.timerStart(function()
-                cloudc:connect()
-            end, 3000)
-        end
-    end
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local result
-    while true do
-        log.info("等待联网")
-        result = sys.waitUntil("IP_READY", 30000)
-        if result then
-            break
-        end
-    end
-    log.info("联网成功")
-
-    -- 创建TLINK云平台实例,在iotcloud TLINK平台中,device_name对应mqtt三元组的clientId,product_id对应mqtt三元组的username,product_secret对应mqtt三元组的password
-    iotcloudc = iotcloud.new(iotcloud.TLINK, {
-        device_name = serialNumber,
-        produt_id = username,
-        product_secret = password
-    }, connectConfig)
-    -- 创建成功,则连接,创建失败,就结束程序
-    if iotcloudc then
-        iotcloudc:connect()
-    else
-        log.error("iotcloud", "创建失败, 请检查参数")
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 70
module/Air780EPM/demo/iotcloud/tuyaiot/示例1 一机一密/main.lua

@@ -1,70 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    -----------------------------
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- -- 涂鸦云 
-    iotcloudc = iotcloud.new(iotcloud.TUYA,{device_name = "xxx",device_secret = "xxx"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    else
-        log.error("iotcloud", "创建失败, 请检查参数")
-    end
-    
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc : subscribe("tylink/${deviceId}/thing/property/set") -- 订阅信息
-        iotcloudc : publish("tylink/${deviceId}/thing/property/report" , '{"data":{"device_status":"999"}}' , 1) -- 上报信息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 284
module/Air8000/demo/GPS/agps_icoe.lua

@@ -1,284 +0,0 @@
---[[
-
-]]
-
-local agps_icoe = {
-    version = "1.0.1"
-}
-
-local sys = require("sys")
-
-function agps_icoe.setup(opts)
-    agps_icoe.opts = opts
-    if not agps_icoe.opts.uart_id then
-        agps_icoe.opts.uart_id = 2
-    end
-end
-
-function agps_icoe.start()
-    -- 初始化串口
-    local gps_uart_id = agps_icoe.opts.uart_id
-    local opts = agps_icoe.opts
-    -- local write = agps_icoe.writeCmd
-    uart.setup(gps_uart_id, 115200)
-    -- 是否为调试模式
-    if opts.debug then
-        libgnss.debug(true)
-    end
-    if agps_icoe.opts.uart_forward then
-        uart.setup(agps_icoe.opts.uart_forward, 115200)
-        libgnss.bind(gps_uart_id, agps_icoe.opts.uart_forward)
-    else
-        libgnss.bind(gps_uart_id)
-    end
-
-    -- 是否需要切换定位系统呢?
-    if opts.sys then
-        if type(opts.sys) == "number" then
-            if opts.sys == 1 then
-                uart.write(gps_uart_id, "$CFGSYS,H01\r\n")
-            elseif opts.sys == 2 then
-                uart.write(gps_uart_id, "$CFGSYS,H10\r\n")
-            elseif opts.sys == 5 then
-                uart.write(gps_uart_id, "$CFGSYS,H101\r\n")
-            else
-                uart.write(gps_uart_id, "$CFGSYS,H11\r\n")
-            end
-        end
-    end
-
-    if not opts.nmea_ver or opts.nmea_ver == 41 then
-        uart.write(gps_uart_id, "$CFGNMEA,h51\r\n") -- 切换到NMEA 4.1
-    end
-
-    -- 打开全部NMEA语句
-    if opts.rmc_only then
-        uart.write(gps_uart_id, "$CFGMSG,0,0,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,1,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,2,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,3,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,4,1\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,5,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,6,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,7,0\r\n")
-        sys.wait(20)
-    elseif agps_icoe.opts.no_nmea then
-        uart.write(gps_uart_id, "$CFGMSG,0,0,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,1,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,2,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,3,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,4,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,5,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,6,0\r\n")
-        sys.wait(20)
-        uart.write(gps_uart_id, "$CFGMSG,0,7,0\r\n")
-        sys.wait(20)
-    else
-        uart.write(gps_uart_id, "$CFGMSG,0,0,1\r\n") -- GGA
-        sys.wait(10)
-        uart.write(gps_uart_id, "$CFGMSG,0,1,1\r\n") -- GLL
-        sys.wait(10)
-        uart.write(gps_uart_id, "$CFGMSG,0,2,1\r\n") -- GSA
-        sys.wait(10)
-        uart.write(gps_uart_id, "$CFGMSG,0,3,1\r\n") -- GSV
-        sys.wait(10)
-        uart.write(gps_uart_id, "$CFGMSG,0,4,1\r\n") -- RMC
-        sys.wait(10)
-        uart.write(gps_uart_id, "$CFGMSG,0,5,1\r\n") -- VTG
-        sys.wait(10)
-        uart.write(gps_uart_id, "$CFGMSG,0,6,1\r\n") -- ZDA
-        sys.wait(10)
-        -- uart.write(gps_uart_id, "$CFGMSG,0,7,1\r\n") -- GST
-        -- sys.wait(10)
-    end
-end
-
--- function agps_icoe.writeCmd(cmd)
---     log.info("agps_icoe", "写入指令", cmd:trim())
---     uart.write(agps_icoe.opts.uart_id, cmd)
--- end
-
-function agps_icoe.reboot(mode)
-    local cmd = "$RESET,0,"
-    if not mode then
-        mode = 0
-    end
-    if mode == 2 then
-        cmd = cmd .. "hff\r\n"
-    elseif mode == 1 then
-        cmd = cmd .. "h01\r\n"
-    else
-        cmd = cmd .. "h00\r\n"
-    end
-    uart.write(agps_icoe.opts.uart_id, cmd)
-    if mode == 2 then
-        agps_icoe.agps_tm = nil
-    end
-    libgnss.clear()
-end
-
-function agps_icoe.stop()
-    uart.close(agps_icoe.opts.uart_id)
-end
-
-local function do_agps()
-    -- 首先, 发起位置查询
-    local lat, lng
-    if mobile then
-        mobile.reqCellInfo(6)
-        sys.waitUntil("CELL_INFO_UPDATE", 6000)
-        local lbsLoc2 = require("lbsLoc2")
-        lat, lng = lbsLoc2.request(5000)
-        -- local lat, lng, t = lbsLoc2.request(5000, "bs.openluat.com")
-        log.info("lbsLoc2", lat, lng)
-        if lat and lng then
-            lat = tonumber(lat)
-            lng = tonumber(lng)
-            log.info("lbsLoc2", lat, lng)
-            -- 转换单位
-            local lat_dd,lat_mm = math.modf(lat)
-            local lng_dd,lng_mm = math.modf(lng)
-            lat = lat_dd * 100 + lat_mm * 60
-            lng = lng_dd * 100 + lng_mm * 60
-        end
-    elseif wlan then
-        -- wlan.scan()
-        -- sys.waitUntil("WLAN_SCAN_DONE", 5000)
-    end
-    if not lat then
-        -- 获取最后的本地位置
-        local locStr = io.readFile("/hxxtloc")
-        if locStr then
-            local jdata = json.decode(locStr)
-            if jdata and jdata.lat then
-                lat = jdata.lat
-                lng = jdata.lng
-            end
-        end
-    end
-    -- 然后, 判断星历时间和下载星历
-    local now = os.time()
-    local agps_time = tonumber(io.readFile("/hxxt_tm") or "0") or 0
-
-    if now - agps_time > 3600 or io.fileSize("/hxxt.dat") < 1024 then
-        local url = agps_icoe.opts.url
-        if not agps_icoe.opts.url then
-            if agps_icoe.opts.sys and 2 == agps_icoe.opts.sys then
-                -- 单北斗
-                url = "http://download.openluat.com/9501-xingli/HXXT_BDS_AGNSS_DATA.dat"
-            else
-                url = "http://download.openluat.com/9501-xingli/HXXT_GPS_BDS_AGNSS_DATA.dat"
-            end
-        end
-        local code = http.request("GET", url, nil, nil, {dst="/hxxt.dat"}).wait()
-        if code and code == 200 then
-            log.info("agps_icoe", "下载星历成功", url)
-            sys.publish("GNSS_STATE", "AGPS_DOWNLOADED")
-            io.writeFile("/hxxt_tm", tostring(now))
-        else
-            log.info("agps_icoe", "下载星历失败", code)
-        end
-    else
-        log.info("agps_icoe", "星历不需要更新1", now - agps_time)
-    end
-
-    local gps_uart_id = agps_icoe.opts.uart_id or 2
-
-    -- 写入星历
-    local agps_data = io.readFile("/hxxt.dat")
-    if agps_data and #agps_data > 1024 then
-        log.info("agps_icoe", "写入星历数据", "长度", #agps_data)
-        for offset=1,#agps_data,512 do
-            log.info("gnss", "AGNSS", "write >>>", #agps_data:sub(offset, offset + 511))
-            uart.write(gps_uart_id, agps_data:sub(offset, offset + 511))
-            sys.wait(100) -- 等100ms反而更成功
-        end
-        -- uart.write(gps_uart_id, agps_data)
-    else
-        log.info("agps_icoe", "没有星历数据")
-        return
-    end
-
-    -- 写入参考位置
-    -- "lat":23.4068813,"min":27,"valid":true,"day":27,"lng":113.2317505
-    if not lat or not lng then
-        -- lat, lng = 23.4068813, 113.2317505
-        log.info("agps_icoe", "没有GPS坐标", lat, lng)
-        sys.publish("GNSS_STATE", "AGPS_LBS_LOC_ERR")
-        return -- TODO 暂时不写入参考位置
-    end
-    if socket.sntp then
-        socket.sntp()
-        sys.waitUntil("NTP_UPDATE", 1000)
-    end
-    local date = os.date("!*t")
-    if date.year > 2023 then
-        local str = string.format("$AIDTIME,%d,%d,%d,%d,%d,%d,000", date["year"], date["month"], date["day"],
-            date["hour"], date["min"], date["sec"])
-        log.info("agps_icoe", "参考时间", str)
-        uart.write(gps_uart_id, str .. "\r\n")
-        sys.wait(20)
-    end
-    sys.publish("GNSS_STATE", "AGPS_WIRTE_OK")
-    local str = string.format("$AIDPOS,%.7f,%s,%.7f,%s,1.0\r\n",
-    lat > 0 and lat or (0 - lat), lat > 0 and 'N' or 'S',
-    lng > 0 and lng or (0 - lng), lng > 0 and 'E' or 'W')
-    log.info("agps_icoe", "写入AGPS参考位置", str)
-    uart.write(gps_uart_id, str)
-    
-    -- 结束
-    agps_icoe.agps_tm = now
-end
-
-function agps_icoe.agps(force)
-    -- 如果不是强制写入AGPS信息, 而且是已经定位成功的状态,那就没必要了
-    if not force and libgnss.isFix() then return end
-    -- 先判断一下时间
-    local now = os.time()
-    if force or not agps_icoe.agps_tm or now - agps_icoe.agps_tm > 3600 then
-        -- 执行AGPS
-        log.info("agps_icoe", "开始执行AGPS")
-        do_agps()
-    else
-        log.info("agps_icoe", "暂不需要写入AGPS")
-    end
-end
-
-function agps_icoe.saveloc(lat, lng)
-    if not lat or not lng then
-        if libgnss.isFix() then
-            local rmc = libgnss.getRmc(3)
-            if rmc then
-                lat, lng = rmc.lat, rmc.lng
-            end
-        end
-    end
-    if lat and lng then
-        log.info("待保存的GPS位置", lat, lng)
-        local locStr = string.format('{"lat":%7f,"lng":%7f}', lat, lng)
-        log.info("agps_icoe", "保存GPS位置", locStr)
-        io.writeFile("/hxxtloc", locStr)
-    end
-end
-
-sys.subscribe("GNSS_STATE", function(event)
-    if event == "FIXED" then
-        agps_icoe.saveloc()
-    end
-end)
-
-
-return agps_icoe

+ 0 - 89
module/Air8000/demo/GPS/main.lua

@@ -1,89 +0,0 @@
---[[
-必须定义PROJECT和VERSION变量,Luatools工具会用到这两个变量,远程升级功能也会用到这两个变量
-PROJECT:项目名,ascii string类型
-        可以随便定义,只要不使用,就行
-VERSION:项目版本号,ascii string类型
-        如果使用合宙iot.openluat.com进行远程升级,必须按照"XXX.YYY.ZZZ"三段格式定义:
-            X、Y、Z各表示1位数字,三个X表示的数字可以相同,也可以不同,同理三个Y和三个Z表示的数字也是可以相同,可以不同
-            因为历史原因,YYY这三位数字必须存在,但是没有任何用处,可以一直写为000
-        如果不使用合宙iot.openluat.com进行远程升级,根据自己项目的需求,自定义格式即可
-
-本demo演示的功能为:
-使用Air8000核心板演示GPS定位功能以及agps辅助功能
-]]
-PROJECT = "air8000_gnss"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用http库需要下列语句]]
-_G.sysplus = require("sysplus")
-
--- mobile.flymode(0,true)
-if wdt then
-    --添加硬狗防止程序卡死,在支持的设备上启用这个功能
-    wdt.init(9000)--初始化watchdog设置为9s
-    sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
-end
-log.info("main", "air8000_gns11s")
-
-
-mcu.hardfault(0)    --死机后停机,一般用于调试状态
-pm.ioVol(pm.IOVOL_ALL_GPIO, 3300) -- 所有GPIO高电平输出3.3V
-
-local gnss = require("agps_icoe")
-function test_gnss()
-    log.debug("提醒", "室内无GNSS信号,定位不会成功, 要到空旷的室外,起码要看得到天空")
-    pm.power(pm.GPS, true)
-    gnss.setup({
-        uart_id=2,
-        uart_forward = uart.VUART_0, -- 转发到虚拟串口,方便对接GnssToolKit3
-        debug=true,
-        sys=1
-    })
-    gnss.start() --初始化gnss
-    gnss.agps() --使用agps辅助定位
-    --循环打印解析后的数据,可以根据需要打开对应注释
-    while 1 do
-        sys.wait(5000)
-        log.info("RMC1", json.encode(libgnss.getRmc(2)))         --解析后的rmc数据
-        -- log.info("GGA", libgnss.getGga(3))                                   --解析后的gga数据
-        -- log.info("GLL", json.encode(libgnss.getGll(2) or {}, "7f"))
-        -- log.info("GSA", json.encode(libgnss.getGsa(1) or {}, "7f"))
-        -- log.info("GSV", json.encode(libgnss.getGsv(2) or {}, "7f"))
-        -- log.info("VTG", json.encode(libgnss.getVtg(2) or {}, "7f"))
-        -- log.info("ZDA", json.encode(libgnss.getZda(2) or {}, "7f"))
-        -- log.info("date", os.date())
-        -- log.info("sys", rtos.meminfo("sys"))
-        -- log.info("lua", rtos.meminfo("lua"))
-    end
-end
-sys.taskInit(test_gnss)
-
-
-
-
--- 订阅GNSS状态编码
-sys.subscribe("GNSS_STATE", function(event, ticks)
-    -- event取值有
-    -- FIXED 定位成功
-    -- LOSE  定位丢失
-    -- ticks是事件发生的时间,一般可以忽略
-    log.info("gnss", "state", event, ticks)
-    if event == "FIXED" then
-        local locStr = libgnss.locStr()
-        log.info("gnss", "locStr", locStr)
-        -- if locStr then
-        --     -- 存入文件,方便下次AGNSS快速定位
-        --     io.writeFile("/gnssloc", locStr)
-        -- end
-    end
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 83
module/Air8000/demo/iotcloud/aliyun/示例1 一型一密(免预注册,但需要是企业版实例平台)方式连接云平台/main.lua

@@ -1,83 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yxym_myzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{produt_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 82
module/Air8000/demo/iotcloud/aliyun/示例2 一型一密(预注册)方式连接云平台/main.lua

@@ -1,82 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yxym_yzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{produt_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 82
module/Air8000/demo/iotcloud/aliyun/示例3 一机一密方式连接云平台/main.lua

@@ -1,82 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "aliyun_yjym_yzc"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- 阿里云  
-    -- 动态注册(免预注册)(一型一密)(仅企业版支持)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",product_secret = "xxx"}) -- 企业版公共实例
-    -- 动态注册(预注册)(一型一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{produt_id = "xxx",device_name = "xxx",product_secret = "xxx"})                     -- 旧版公共实例
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",device_name = "xxx",product_secret = "xxx"}) -- 新版公共实例
-    -- 密钥校验 (预注册)(一机一密)
-    -- iotcloudc = iotcloud.new(iotcloud.ALIYUN,{produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})                    -- 旧版公共实例
-    iotcloudc = iotcloud.new(iotcloud.ALIYUN,{instance_id = "xxx",produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})-- 新版公共实例
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/get") -- 订阅主题,用于下发消息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("/"..iotcloudc.product_id.."/"..iotcloudc.device_name.."/user/update", "hello world", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 70
module/Air8000/demo/iotcloud/baiduiot/main.lua

@@ -1,70 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- 百度云
-    -- 密钥认证(手动注册)
-    -- iotcloudc = iotcloud.new(iotcloud.BAIDU,{produt_id = "aakyhyw",device_name = "869329069169988",device_secret = "IzNIWqXdGRPEoUlS"})
-    -- 证书认证(自动注册)
-    iotcloudc = iotcloud.new(iotcloud.BAIDU,{produt_id = "aakyhyw",device_name = "869329069169988"},{tls={server_cert=io.readFile("/luadb/GlobalSign.cer"),client_cert=io.readFile("/luadb/client_cert.txt"),client_key=io.readFile("/luadb/client_private_key.txt")}})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("$iot/869329069169988/user/fortest") -- 可以自由订阅主题等
-
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        if payload == "open" then
-            log.info("main", "收到云平台下发的指令")
-            LED(1)
-        elseif payload == "close" then
-            LED(0)
-        end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 88
module/Air8000/demo/iotcloud/huaweiiot/main.lua

@@ -1,88 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        -- LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- -- 华为云
-    -- -- 动态注册(免预注册)
-    -- iotcloudc = iotcloud.new(iotcloud.HUAWEI,{produt_id = "670c7b2dfc8d5a4ea71c6a79",
-    --                                             project_id = "c086a58ebd714bfcb1a0fea2f0edde36",
-    --                                             endpoint = "9098a2ff3c.st1",
-    --                                             iam_username="hao",
-    --                                             iam_password="Wsh1322764769",
-    --                                             iam_domain="hao15738882476"})
-    -- 密钥校验 (预注册)
-    iotcloudc = iotcloud.new(iotcloud.HUAWEI,{produt_id = "670c7b2dfc8d5a4ea71c6a79",endpoint = "5341624af8.st1",device_name = "869329069169988",device_secret = "XXX"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        -- iotcloudc:subscribe("/huawei/down/869329069169988") -- 可以自由定阅主题等
-        -- iotcloudc:subscribe("$oc/devices/869329069169988/user/869329069169988")
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- local test_value = json.decode(payload).content.switch
-        -- print("test value:", test_value)
-
-        -- if test_value == 1 then
-        --     LED(1)
-        -- elseif test_value == 0 then
-        --     LED(0)
-        -- end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
--- -- 每隔2秒发布一次qos为1的消息到云平台
--- sys.taskInit(function()
---     while 1 do
---         sys.wait(2000)
---         if iotcloudc then
---             iotcloudc:publish("$oc/devices/869329069169988/user/869329069169988", "hello world!", 1) -- 上传数据
---         end
---     end
--- end)
-
-
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 157
module/Air8000/demo/iotcloud/onenet/main.lua

@@ -1,157 +0,0 @@
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "oneNET_demo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-lbsLoc2 = require("lbsLoc2")
-local iotcloud = require("iotcloud")
-mobile.simid(2, true)
-
-local produt_id = "4qM5N1Sa4T"
-local userid = "226691"
-local userkey = "pk1M3FKXBvvmjF8If/xDfSFFmr96NZCEg00sxlLBMjjh9vOD5hpIs42rmAYnMh5b3m9B1+0rmYdqzUyoQVrxow=="
-local device_name = mobile.imei()
-local send_data_time = 5 * 60 * 1000 -- 定时发送数据的时间,单位ms
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- ONENET云
-    -- 动态注册
-    iotcloudc = iotcloud.new(iotcloud.ONENET, {
-        device_name = device_name,
-        produt_id = produt_id,
-        userid = userid,
-        userkey = userkey
-    })
-    -- 一型一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",product_secret = "xxx"})
-    -- 一机一密
-    -- iotcloudc = iotcloud.new(iotcloud.ONENET,{produt_id = "xxx",device_name = "xxx",device_secret = "xxx"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-
-end)
-
--- 发布和订阅的主题
-
-local oneNET_sub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post/reply"
-
-local oneNET_pub = "$sys/" .. produt_id .. "/" .. device_name .. "/thing/property/post"
-
-local function oneNET_send_data()
-    log.info("oneNET 链接成功,准备开始发送数据")
-    while 1 do
-        -- 没有mobile库就没有基站定位
-        mobile.reqCellInfo(15)
-        -- 由于基站定位需要等待扫描周围基站,推荐扫描时间为15S
-        sys.waitUntil("CELL_INFO_UPDATE", 15000)
-        local lat, lng, t = lbsLoc2.request(5000)
-        log.info("lbsLoc2", lat, lng, (json.encode(t or {})))
-        -- 如果没扫描到基站则给lat和lng赋值为0
-        if lat and lng then
-            log.info("扫描到了,有位置信息")
-        else
-            lat = "0"
-            lng = "0"
-        end
-        -- 读取CPU温度, 单位为0.001摄氏度, 是内部温度, 非环境温度
-        adc.open(adc.CH_CPU)
-        local cpu_temp = adc.get(adc.CH_CPU)
-        adc.close(adc.CH_CPU)
-        local gpio_pin = 6 -- GPIO编号
-        local gpio_state = gpio.get(gpio_pin)
-        local send_data = {
-            id = "123",
-            verson = VERSION,
-            params = {
-                gpio_state = {
-                    value = gpio_state
-                },
-                cpu_temp = {
-                    value = cpu_temp / 1000
-                },
-                lbs_lat = {
-                    value = tonumber(lat)
-                },
-                lbs_lng = {
-                    value = tonumber(lng)
-                    -- value = lng
-                }
-            }
-        }
-        local send_data = json.encode(send_data)
-        log.info("发送的数据为", send_data)
-        -- 正式发布数据
-        iotcloudc:publish(oneNET_pub, send_data)
-        -- 循环发送数据的定时时间
-        sys.wait(send_data_time)
-    end
-
-end
-
-local con = 0
---oneNET断开后的处理函数,
-local function oneNET_DISCONNECT()
-    log.info("云平台断开了,隔一分钟重连一次,如果10次都没有连上则重启设备")
-    while con < 10 do
-        sys.wait(60*1000)
-        log.info("oneNET reconnection",con)
-        iotcloudc:connect()
-    end
-    pm.reboot()
-end
-sys.subscribe("iotcloud", function(cloudc, event, data, payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        log.info("iotcloud", "CONNECT", "oneNET平台连接成功")
-        iotcloudc:subscribe({
-            [oneNET_sub] = 1
-        }) -- 订阅服务器下发数据的主题
-        -- 链接成功,启动一个task专门用来定时发消息
-        sys.taskInit(oneNET_send_data)
-
-    elseif event == iotcloud.RECEIVE then
-        log.info("收到服务器下发的数据")
-        log.info("iotcloud", "topic", data, "payload", payload)
-
-        -- 用户处理代码
-        if payload then
-            payload = json.decode(payload)
-            if payload["code"] == 200 then
-                log.info("服务器收到了刚刚上传的数据", payload["msg"])
-            else
-                log.info("服务器接收数据有误", "错误码为", payload["code"], "错误信息为",
-                    payload["msg"])
-            end
-        end
-
-    elseif event == iotcloud.SEND then
-        log.info("发送数据成功")
-
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-       sys.taskInit(oneNET_DISCONNECT)
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 79
module/Air8000/demo/iotcloud/tencentiot/main.lua

@@ -1,79 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    if mobile then
-        LED = gpio.setup(27, 0, gpio.PULLUP)
-        device_id = mobile.imei()
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    -- -- 腾讯云
-    -- -- 动态注册
-    -- iotcloudc = iotcloud.new(iotcloud.TENCENT,{produt_id = "ZAJCHA24SH" ,product_secret = "vGGwnSkyM4eD5ddbNrQoGJox"})
-    -- -- 密钥校验
-    iotcloudc = iotcloud.new(iotcloud.TENCENT,{produt_id = "ZAJCHA24SH",device_name = "869329069169988",device_secret = "xNWcxDX0qzSM74oFteehvw=="})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    end
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc:subscribe("$thing/down/property/ZAJCHA24SH/869329069169988") -- 可以自由定阅主题等
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        local test_value = json.decode(payload).params.switch
-        print("test value:", test_value)
-
-        if test_value == 1 then
-            LED(1)
-        elseif test_value == 0 then
-            LED(0)
-        end
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-        print("iotcloud","DISCONNECT", "云平台连接断开")
-    end
-end)
-
--- 每隔2秒发布一次qos为1的消息到云平台
-sys.taskInit(function()
-    while 1 do
-        sys.wait(2000)
-        if iotcloudc then
-            iotcloudc:publish("$thing/up/property/ZAJCHA24SH/869329069169988", "hello world!", 1) -- 上传数据
-        end
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 70
module/Air8000/demo/iotcloud/tuyaiot/示例1 一机一密/main.lua

@@ -1,70 +0,0 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "iotclouddemo"
-VERSION = "1.0.0"
-
--- sys库是标配
-_G.sys = require("sys")
---[[特别注意, 使用mqtt库需要下列语句]]
-_G.sysplus = require("sysplus")
-
-local iotcloud = require("iotcloud")
-
--- 统一联网函数
-sys.taskInit(function()
-    local device_id = mcu.unique_id():toHex()
-    -----------------------------
-    if mobile then
-        device_id = mobile.imei()
-    else
-        -- 其他不认识的bsp, 循环提示一下吧
-        while 1 do
-            sys.wait(1000)
-            log.info("bsp", "本bsp可能未适配网络层, 请查证")
-        end
-    end
-    -- 默认都等到联网成功
-    sys.waitUntil("IP_READY")
-    sys.publish("net_ready", device_id)
-end)
-
-sys.taskInit(function()
-    -- 等待联网
-    local ret, device_id = sys.waitUntil("net_ready")
-
-    --------    以下接入方式根据自己需要修改,相关参数修改为自己的    ---------
-
-    -- -- 涂鸦云 
-    iotcloudc = iotcloud.new(iotcloud.TUYA,{device_name = "xxx",device_secret = "xxx"})
-
-    if iotcloudc then
-        iotcloudc:connect()
-    else
-        log.error("iotcloud", "创建失败, 请检查参数")
-    end
-    
-end)
-
-sys.subscribe("iotcloud", function(cloudc,event,data,payload)
-    -- 注意,此处不是协程内,复杂操作发消息给协程内进行处理
-    if event == iotcloud.CONNECT then -- 云平台联上了
-        print("iotcloud","CONNECT", "云平台连接成功")
-        iotcloudc : subscribe("tylink/${deviceId}/thing/property/set") -- 订阅信息
-        iotcloudc : publish("tylink/${deviceId}/thing/property/report" , '{"data":{"device_status":"999"}}' , 1) -- 上报信息
-    elseif event == iotcloud.RECEIVE then
-        print("iotcloud","topic", data, "payload", payload)
-        -- 用户处理代码
-    elseif event ==  iotcloud.OTA then
-        if data then
-            rtos.reboot()
-        end
-    elseif event == iotcloud.DISCONNECT then -- 云平台断开了
-        -- 用户处理代码
-    end
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!