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行代码就实现了连接腾讯云,并解析数据远程控制灯的开关,且代码可跨平台使用,无需多次开发。在行业应用中,一小时即可完成产品原型,遥遥领先同行。

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

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

    关注

    2939

    文章

    47317

    浏览量

    407862
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【深度实战】MYD-LR3576 AMP非对称多核开发指南:从配置到实战

    一、什么是AMP?为什么重要?AMP(AsymmetricMulti-Processing)非对称多处理架构,允许单个芯片的不同核心运行不同的操作系统或裸机程序。相比传统的SMP(对称
    的头像 发表于 12-05 08:07 3344次阅读
    【深度实战】MYD-LR3576 <b class='flag-5'>AMP</b>非对称多核<b class='flag-5'>开发</b>指南:从配置到实战

    罗德与施瓦茨宣布推出新频段 R&amp;amp;amp;S ZNB3000 矢量网络分析仪,频率高达 54 GHz

    R&amp;SZNB3000以业界领先的测量速度、出色的扩展能力及一流射频性能,为中端矢量网络分析仪市场树立了新标杆。随着高频型号的加入,R&amp;SZNB3000将覆盖更广泛的应用场景。罗德与施
    的头像 发表于 12-04 17:04 191次阅读
    罗德与施瓦茨宣布推出新频段 R&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;S ZNB3000 矢量网络分析仪,频率高达 54 GHz

    CS86706适用1~3节锂电应用,内置升压模块,2×30W立体声&amp;amp;amp;50W单声道R类音频功率放大器

    CS86706适用1~3节锂电应用,内置升压模块,2×30W立体声&amp;amp;50W单声道R类音频功率放大器
    的头像 发表于 07-16 20:42 378次阅读
    CS86706适用1~3节锂电应用,内置升压模块,2×30W立体声&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;50W单声道R类音频功率放大器

    Texas Instruments AMP-PDK-EVM子板开发套件数据手册

    Texas Instruments AMP-PDK-EVM子板开发套件设计用于搭配AMP-PDK-EVM主板使用。子板套件选项适用于不同封装型号。引脚数支持器件的关断和非关断型号。TI AMP
    的头像 发表于 07-09 14:15 539次阅读
    Texas Instruments <b class='flag-5'>AMP</b>-PDK-EVM子板<b class='flag-5'>开发</b>套件数据手册

    新知|Verizon与AT&amp;amp;amp;T也可以手机直接连接卫星了

    近日,Verizon与AT&amp;T宣布,手机直连卫星方面取得重要进展,使用普通手机实现了通过卫星的视频通话。很显然,Verizon与AT&amp;T的这一举措是针对此前T-Mobile
    的头像 发表于 06-19 07:07 895次阅读
    新知|Verizon与AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T也可以手机直接连接卫星了

    物联网智能家居方案-基于Nucleo-STM32L073&amp;amp;机智实例项目打包下载

    物联网智能家居方案-基于Nucleo-STM32L073&amp;amp;机智实例项目打包,推荐下载!
    发表于 05-29 21:50

    物联网智能家居方案-基于Nucleo-STM32L073&amp;amp;机智 项目实例

    物联网智能家居方案-基于Nucleo-STM32L073&amp;amp;机智 项目实例下载! 纯分享帖,需要者可点击附件免费获取完整资料~~~【免责声明】本文系网络转载,版权归
    发表于 05-23 21:01

    TFT&amp;amp;LCD,是电阻屏还是电容屏?

    TFT&amp; LCD是采用薄膜晶体管技术的液晶触摸显示器,它本身并不决定是电阻屏还是电容屏。电阻屏和电容屏指的是不同的触摸技术,电容屏在现代设备中更为常见。
    的头像 发表于 04-14 13:35 1378次阅读
    TFT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;LCD,是电阻屏还是电容屏?

    瑞芯RK3568正式开放RISC-V核心啦,也支持非对称AMP双系统!

    在嵌入式系统的发展进程中,多核异构架构的出现为满足复杂应用场景的需求提供了新的可能。其中,瑞芯RK3568J国产平台的非对称AMP(Asymmetric Multi-Processing)架构
    的头像 发表于 02-27 10:36 1022次阅读
    瑞芯<b class='flag-5'>微</b>RK3568正式开放RISC-V核心啦,也支持非对称<b class='flag-5'>AMP</b>双系统!

    双模载波芯片CN8513&amp;amp;amp;CN8514在智能家居中的创新应用

    双模载波芯片CN8513&amp;CN8514在智能家居中的创新应用
    的头像 发表于 02-10 09:43 968次阅读
    双模载波芯片CN8513&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;CN8514在智能家居中的创新应用

    “国产双系统”出炉!复旦FMQL20SM非对称AMP:Linux + 裸机

    “非对称AMP”双系统是什么 AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序
    的头像 发表于 01-24 13:46 1165次阅读
    “国产双系统”出炉!复旦<b class='flag-5'>微</b>FMQL20SM非对称<b class='flag-5'>AMP</b>:Linux + 裸机

    HPLC+HRF双模载波芯片CN8513&amp;amp;amp;CN8514应用于智能楼宇

    HPLC+HRF双模载波芯片CN8513&amp;CN8514应用于智能楼宇
    的头像 发表于 01-09 10:01 1180次阅读
    HPLC+HRF双模载波芯片CN8513&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;CN8514应用于智能楼宇

    HPLC+HRF双模载波芯片CN8513&amp;amp;amp;CN8514用于智能抄表系统

    HPLC+HRF双模载波芯片CN8513&amp;CN8514用于智能抄表系统
    的头像 发表于 01-03 10:04 2392次阅读
    HPLC+HRF双模载波芯片CN8513&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;CN8514用于智能抄表系统

    如何判断产品需不需要做AT&amp;amp;amp;T认证?AT&amp;amp;amp;T测试内容和要求分享

    随着经济全球化的发展,国内越来越多产品厂商选择将自家产品出口到北美市场,而这时候各位厂商都会面临产品需不需要做AT&amp;T的问题。今天英利检测针对这一问题整理了一些关于AT&amp;T认证中
    的头像 发表于 12-23 17:46 1021次阅读
    如何判断产品需不需要做AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T认证?AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T测试内容和要求分享

    凌科电气YU系列工业级连接器登场,解锁USB&amp;amp;Type-C多模块新体验!

    近日,凌科全新推出YU系列USB&amp;amp;Type-C多模块工业级连接器,在功能上实现了全面升级。
    的头像 发表于 12-18 09:46 792次阅读