0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

跨平台免开发!LuatOS&腾讯云,微信小程序远程开关方案

合宙LuatOS 2022-11-21 14:52 次阅读

就在本周,Air780E的LuatOS测试固件已经开源在Gitee上,新的平台采用LuatOS-SOC接口,API与之前Air10X和ESP32系列完成统一。也就是一套代码可以4G模组、MCUWi-Fi模组上通用,一次开发即可拥有全平台支持。

今天跟大家分享学习一下使用不到100行代码接入腾讯云,并通过腾讯连连小程序远程控制开发板灯的亮灭。一套代码可以在Air780E(4G)、Air105+W5500(以太网)、ESP32/C3/C2/S3(Wi-Fi)三种平台无缝切换,一次开发实现三种接入方式。

1

腾讯云准备


1.1 新建项目

我们用到的是腾讯云的物联网开发平台:

没账号的可自己注册,每个账号都有免费额度,足够我们自己玩玩了。点击公共实例

8699c682-67c2-11ed-b116-dac502259ad0.png

然后新建项目,项目名称自己起一个,描述写不写都行,填完保存:

86aa4e3a-67c2-11ed-b116-dac502259ad0.png

86be8daa-67c2-11ed-b116-dac502259ad0.png

1.2 新建产品

然后在页面上就能看到我们新建的项目了,点击项目名称,进去新建产品,名称我这里叫远程开关(根据自己的项目填写即可)。然后品类选标准品类,点进去搜索开关,勾选一路开关:

86d37602-67c2-11ed-b116-dac502259ad0.png

86e73142-67c2-11ed-b116-dac502259ad0.png

通信方式选2G/3G/4G,其他默认即可,然后点击确定:

86fb48a8-67c2-11ed-b116-dac502259ad0.png

1.3 添加设备

点进我们刚新建的产品,点4设备调试页面,点击新建设备。

87167cf4-67c2-11ed-b116-dac502259ad0.png

填写设备名称,建议用设备imei等唯一标识,我这里演示方便就写了Air780E:

872cc356-67c2-11ed-b116-dac502259ad0.png

点击我们刚新建的设备,记录设备名称、设备密钥、产品ID这几个参数,一会儿要用。

873ebc1e-67c2-11ed-b116-dac502259ad0.png

2

设备端开发


因为要做多平台兼容,所以首先根据不同平台做相应初始化。

手机横屏/上下滑动查看完整代码:

 Lua if rtos.bsp() == "ESP32C3" then  LED = gpio.setup(12, 0, gpio.PULLUP)
  wlan.init()
  wlan.setMode(wlan.STATION)
  wlan.connect(ssid, password, 1)
  local result, data = sys.waitUntil("IP_READY")
  log.info("wlan", "IP_READY", result, data)elseif rtos.bsp() == "AIR105" then
  w5500.init(spi.HSPI_0, 24000000, pin.PC14, pin.PC01, pin.PC00)
  w5500.config() --默认是DHCP模式
  w5500.bind(socket.ETH0)
  LED = gpio.setup(62, 0, gpio.PULLUP)
  sys.wait(1000) elseif rtos.bsp() == "EC618" then
  mobile.simid(2)  LED = gpio.setup(27, 0, gpio.PULLUP)end

2.1 计算连接参数

腾讯云是需要鉴权才允许设备连接,因此,我们要首先计算连接参数,这里使用iotauth库可以方便的计算阿里云、腾讯云、百度云、涂鸦云、华为云的连接参数。

874e4e7c-67c2-11ed-b116-dac502259ad0.png

根据API的说明,结合前面我们在腾讯云注册的设备,代码就很简单了。代码如下,参数以变量的形式定义好了,改成自己的就行。

Lua

local client_id, user_name, password = iotauth.qcloud(product_key, device_id, device_secret, "sha1", 1700561166)

log.info("参数", client_id, user_name, password)

2.2 连接服务器

获取参数以后,根据返回值就可以得到连接mqtt服务器的信息,根据mqtt库的说明,参考mqtt的demo直接抄过来就行。

2.3 处理数据

根据腾讯云的文档,我们使用的物模型中power_switch是我们需要的开关参数。我们只需要根据文档对收到的数据解析即可,mqtt部分全部代码如下:

手机横屏/上下滑动查看完整代码:

 Lua mqttc = mqtt.create(nil, product_key .. ".iotcloud.tencentdevices.com", 1883)
mqttc:auth(client_id, user_name, password)
mqttc:keepalive(240) -- 默认值240smqttc:autoreconn(true, 3000) -- 自动重连机制mqttc:on(
  function(mqtt_client, event, data, payload)
    if event == "conack"then
      sys.publish("mqtt_conack")
      log.info("mqtt", "mqtt已连接")
      mqtt_client:subscribe("$thing/down/property/" .. product_key .. "/".. device_id)
    elseif event == "recv" then
      log.info("mqtt", "收到消息", data, payload)
      local json = json.decode(payload)
      if json.method == "control" then
        if json.params.power_switch == 1 then
          LED(1)
        elseif json.params.power_switch == 0 then
          LED(0)
        end
      end
    elseif event == "sent"then
      log.info("mqtt", "sent", "pkgid", data)
    end
  end)
mqttc:connect()
sys.wait(10000)
sys.waitUntil("mqtt_conack")while true do
  local ret, topic, data, qos = sys.waitUntil("mqtt_pub", 30000)  if ret then
   if topic == "close" then
      break
    end
    mqttc:publish(topic, data, qos)  endendmqttc:close()
mqttc = nil

3

远程开关测试


把完整代码烧录进设备,不会烧录的可以先看教程


878fae8a-67c2-11ed-b116-dac502259ad0.png

点击腾讯云设备的二维码:

87cff9e0-67c2-11ed-b116-dac502259ad0.png

使用腾讯连连小程序扫码添加设备,添加完就能看到我们设备在线了:

87e6a50a-67c2-11ed-b116-dac502259ad0.png

点击总开关,改变开关状态,就能看到,设备上的灯跟着改变状态了:

881c7644-67c2-11ed-b116-dac502259ad0.png

日志也可以看到收到的消息,可用根据消息调试其他功能,比如倒计时开启。

至此,我们用了不到100行代码就实现了连接腾讯云,并解析数据远程控制灯的开关,且代码可跨平台使用,无需多次开发。在行业应用中,一小时即可完成产品原型,遥遥领先同行。

欢迎加入技术交流群,探讨更多应用!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2900

    文章

    44052

    浏览量

    370094
收藏 人收藏

    评论

    相关推荐

    平台销额&销量九连冠!德施曼提前锁定双11胜局!

    11持续释放品牌势能,截至10月31日,德施曼连续九年拿下全平台智能锁销量&销额双冠军,并拿下高端品牌销额&销量第一。此前,根据行业权威机构奥维网最新发布的20
    的头像 发表于 11-05 10:40 118次阅读
    全<b class='flag-5'>平台</b>销额&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;销量九连冠!德施曼提前锁定双11胜局!

    迅为itop-3568开发AMP双系统使用手册之烧写AMP镜像

    迅为itop-3568开发AMP双系统使用手册之烧写AMP镜像
    的头像 发表于 11-04 15:00 201次阅读
    迅为itop-3568<b class='flag-5'>开发</b>板<b class='flag-5'>AMP</b>双系统使用手册之烧写<b class='flag-5'>AMP</b>镜像

    北美运营商AT&amp;amp;amp;T认证的费用受哪些因素影响

    申请北美运营商AT&amp;T认证的价格因多种因素而异,包括产品类型、认证范围、测试难度等。一般来说,申请AT&amp;T认证的费用可能相对较高,因为AT&amp;T作为北美地区的主要电信运营商,其
    的头像 发表于 10-16 17:10 136次阅读
    北美运营商AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T认证的费用受哪些因素影响

    onsemi LV/MV MOSFET 产品介绍 &amp;amp;amp; 行业应用

    01直播介绍直播时间2024/10/281430直播内容1.onsemiLV/MVMOSFET产品优势&amp;市场地位。2.onsemiLV/MVMOSFETRoadmap。3.onsemiT10
    的头像 发表于 10-13 08:06 227次阅读
    onsemi LV/MV MOSFET 产品介绍 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行业应用

    基于 onsemi NCV78343 &amp;amp;amp; NCV78964的汽车矩阵式大灯方案

    大联大世平集团针对汽车矩阵大灯,推出基于onsemiNCV78343&amp;NCV78964的汽车矩阵式大灯方案开发板搭载的主要器件有onsemi
    的头像 发表于 09-14 08:05 310次阅读
    基于 onsemi NCV78343 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; NCV78964的汽车矩阵式大灯<b class='flag-5'>方案</b>

    从边缘到云端,合宙DTU&amp;amp;amp;RTU打造无缝物联网解决方案

    DTU(数据传输单元)与RTU(远程终端单元)是连接边缘与云端的桥梁,是实现数据无缝流动的关键。 合宙推出的 DTU&amp;RTU成功推动了众多企业实现了生产设备的远程监控和智能控制。
    的头像 发表于 09-12 15:27 1019次阅读
    从边缘到云端,合宙DTU&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;RTU打造无缝物联网解决<b class='flag-5'>方案</b>

    FS201资料(pcb &amp;amp; DEMO &amp;amp; 原理图)

    电子发烧友网站提供《FS201资料(pcb &amp; DEMO &amp; 原理图).zip》资料免费下载
    发表于 07-16 11:24 0次下载

    北美运营商AT&amp;amp;amp;T认证入库产品范围名单相关

    AT&amp;T作为全球领先的通信服务运营商之一,通过AT&amp;T认证不仅是对产品质量的认可,更是产品打开北美市场大门的重要凭证。然而,或许您还不清楚AT&amp;T认证入库的产品范围,接下来
    的头像 发表于 06-28 16:58 376次阅读
    北美运营商AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T认证入库产品范围名单相关

    解读北美运营商,AT&amp;amp;amp;T的认证分类与认证内容分享

    在数字化日益深入的今天,通信技术的稳定与安全对于个人、企业乃至整个国家都至关重要。作为北美通信领域的领军者,AT&amp;T一直致力于为用户提供高效、可靠的通信服务。而在这背后,AT&amp;T
    的头像 发表于 06-05 17:27 487次阅读
    解读北美运营商,AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T的认证分类与认证内容分享

    RK3568开发板支持AMP双系统

    RK3568开发板支持AMP双系统
    的头像 发表于 06-04 15:33 606次阅读
    RK3568<b class='flag-5'>开发</b>板支持<b class='flag-5'>AMP</b>双系统

    在TSMaster中加载基于DotNet平台的Seed&amp;amp;amp;Key

    在UDS诊断过程中,会涉及到安全访问的问题,也就是所谓的Seed&amp;Key。TSMaster诊断模块支持通过.dll文件载入Seed&amp;Key算法用于安全访问解锁。在最近发布
    的头像 发表于 04-02 08:20 490次阅读
    在TSMaster中加载基于DotNet<b class='flag-5'>平台</b>的Seed&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;Key

    Open RAN的未来及其对AT&amp;amp;T的意义

    3月14日消息,在“Connected America 2024”会议上,AT&amp;T高级副总裁兼网络首席技术官Yigal Elbaz讨论了Open RAN 的未来及其对AT&amp;T的意义。
    的头像 发表于 03-14 14:40 640次阅读

    RK3568--基于AMP的多通道AD采集开发

    RK3568--基于AMP的多通道AD采集开发
    的头像 发表于 01-19 10:03 859次阅读
    RK3568--基于<b class='flag-5'>AMP</b>的多通道AD采集<b class='flag-5'>开发</b>案

    技术角度看AT&amp;amp;T为何“抛弃”诺基亚

    但是诺基亚所选择的是Inline这种加速技术,其把第一层放在由Marvell给诺基亚开发的定制芯片上。或许AT&amp;T可能认为“经济”将抵消CPU成本,并同意Verizon的观点——诺基亚的解决
    的头像 发表于 12-15 16:49 700次阅读

    开关模式下的电源电流如何检测?这12个电路&amp;amp;10个知识点讲明白了

    开关模式下的电源电流如何检测?这12个电路&amp;10个知识点讲明白了
    的头像 发表于 12-06 16:04 741次阅读
    <b class='flag-5'>开关</b>模式下的电源电流如何检测?这12个电路&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;10个知识点讲明白了