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

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

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

    关注

    2950

    文章

    48121

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    睿擎平台AMP共享内存:Linux 与 RT-Thread 高速数据交换

    个核心问题。上一篇文章介绍了DSMC总线方案,适合与FPGA等外部设备高速通信。今天我们聚焦另一个场景——睿擎平台AMP共享内存(SHM)通信,介绍RC3562平
    的头像 发表于 04-22 18:09 270次阅读
    睿擎<b class='flag-5'>平台</b><b class='flag-5'>AMP</b>共享内存:Linux 与 RT-Thread 高速数据交换

    LoRa1121 FCC&amp;amp;CE认证 多频段LoRa无线通讯模块规格书

    LoRa1121 FCC&amp;CE认证 多频段LoRa无线通讯模块规格书
    发表于 02-26 14:36 0次下载

    HarmonyOS首登公开课,分享平台适配与体验提升实践经验

    近日,2026公开课PRO在广州举行。值得关注的是,HarmonyOS开发专家首次以官方分享嘉宾身份亮相开发者专场,并围绕“
    的头像 发表于 02-02 09:22 504次阅读
    HarmonyOS首登<b class='flag-5'>微</b><b class='flag-5'>信</b>公开课,分享<b class='flag-5'>跨</b><b class='flag-5'>平台</b>适配与体验提升实践经验

    工业场景下 TE AMP 线束线缆组件选型全攻略

    TE Connectivity(简称 TE / 泰科电子)是全球领先的电子互连解决方案供应商,其 AMP Connectors 系列产品覆盖各种工业及汽车应用场景。AMP 系列包含从基础连接器、端子到整线电缆组件、电源线束解决
    的头像 发表于 12-16 14:18 670次阅读
    工业场景下 TE <b class='flag-5'>AMP</b> 线束线缆组件选型全攻略

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

    一、什么是AMP?为什么重要?AMP(AsymmetricMulti-Processing)非对称多处理架构,允许单个芯片的不同核心运行不同的操作系统或裸机程序。相比传统的SMP(对称
    的头像 发表于 12-05 08:07 7348次阅读
    【深度实战】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 758次阅读
    罗德与施瓦茨宣布推出新频段 R&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;S ZNB3000 矢量网络分析仪,频率高达 54 GHz

    【新品上市】华清远见AIoT实战平台-STM32F103&amp;amp;amp;ESP32-S3 AI开发板套件,玩转小智AI桌宠机器狗智能车等项目

    F103&amp;ESP32-S3AI开发板是华清远见针对嵌入式与AI开发市场需求,打造的高性能、低成本AIoT实战平台。该开发板采用双核心
    的头像 发表于 11-03 16:18 1605次阅读
    【新品上市】华清远见AIoT实战<b class='flag-5'>平台</b>-STM32F103&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;ESP32-S3 AI<b class='flag-5'>开发</b>板套件,玩转小智AI桌宠机器狗智能车等项目

    nRF54芯片怎么烧录程序&amp;amp;nrfutil的安装使用

    全新的nrfutil,开发过nRF51&amp;amp;52系列的朋友都知道,之前这个工具主要是用来生产bootloader的升级密钥和新的升级固件包的,很少做其他用途,批量烧录命令都是
    发表于 09-29 22:09

    案例研究:Atola Taskforce 2 借助 MB699VP-B &amp;amp;amp; MB705M2P-B 优化取证设备数据采集

    案例研究:AtolaTaskforce2借助MB699VP-B&amp;MB705M2P-B优化取证设备数据采集概述AtolaTechnology是作为数据取证解决方案领域的领导者,开发
    的头像 发表于 08-14 17:00 1085次阅读
    案例研究:Atola Taskforce 2 借助 MB699VP-B &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; MB705M2P-B 优化取证设备数据采集

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

    CS86706适用1~3节锂电应用,内置升压模块,2×30W立体声&amp;amp;50W单声道R类音频功率放大器
    的头像 发表于 07-16 20:42 856次阅读
    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 1028次阅读
    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 1362次阅读
    新知|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

    多模块配置!YU系列USB、Type-C连接器为工控机打造&amp;amp;quot;全能型&amp;amp;quot;数据传输方案

    背景介绍工控机是一类用于工业、野外等复杂恶劣环境的专用计算机设备,如何实现稳如磐石的数据传输是关键?凌科电气YU-USB&amp;Type-C工业连接器,以严苛环境适配性及长期稳定的性能表现,成为
    的头像 发表于 05-07 18:27 839次阅读
    多模块配置!YU系列USB、Type-C连接器为工控机打造&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;quot;全能型&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;quot;数据传输<b class='flag-5'>方案</b>