AIR724 4G模块云平台使用技巧(1)- MQTT 控制GPIO

AIR724 4G模块云平台使用技巧(1)- MQTT 控制GPIO

项目应用中最常见的需要就是通过云平台下发消息,控制DTU上的外设,先从基础的开始,介绍如果操作GPIO。

准备

  • 连接:配置连上EMQTT服务器(aliyun,onenet同理),配置过程比较常见,参考云平台接入教程。
  • DTU参数配置:网络通道1配置连接EMQ服务器,绑定的串口号1;另外配置了两个远程参数,用于在脚本里面实现自己的功能,分别是gpio、uid。

DTU脚本

require "log"
require "default"


-- 这一句非常重要,不能删除和修改。
module("remotedbg", package.seeall)


local dtu = default.getDtu()
-- 远程配置的参数,gpio代表操作的gpio号,比如19
-- 远程配置的参数,uid代表要拦截的数据通道,因为emq绑定的串口1,这里uid = 1

log.info("aliyun gpio set", dtu.userparam.gpio)
local setGpio = pins.setup(dtu.userparam.gpio,0)

-- 消息处理的钩子函数
function msgSubHook(uid, data)
    --直接解析服务器下发的json
    -- {"params":{"UnlockCode":1}}
    local buff= json.decode(data)
    log.info("aliyun sub1", data)
    -- 根据UnlockCode控制gpio
    if buff.params.UnlockCode ~= nil  then
        if  buff.params.UnlockCode > 0  then
        	-- 设置gpio高电平
            setGpio(1)
        else
        	-- 设置gpio低电平
            setGpio(0)
        end
    end
end
-- 原来的数据是mqtt -> uart, 这一步是增加了一个订阅钩子,并没有影响原来的订阅,所以数据还是会通过串口下发
sys.subscribe("UART_SENT_RDY_" .. dtu.userparam.uid, msgSubHook)

-- 如果要拦截数据,不下发到串口 ,使用以下代码
--sys.unsubscribe("UART_SENT_RDY_" .. dtu.userparam.uid, default.write)
--sys.subscribe("UART_SENT_RDY_" .. dtu.userparam.uid, msgSubHook)

启动脚本

推荐使用远程脚本一键启动和更新;
否则需要和固件代码一起烧录,并启动测试。
如何使用远程脚本:使用说明


淘宝

对我们产品感兴趣请查看淘宝,免费定制项目
DEVELOPLINK ______ Air724核心板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值