本节演示我们的 4G 屏通过 TuyaLink 连接设备、上报属性和接收云端属性。配套 Demo 将 Tuya 放在独立页面,功能代码集中在 stt_tuya.lua。
先在 Tuya 平台创建产品、设备及物模型,准备产品 ID、设备 ID、设备密钥。属性标识符和数据类型必须与平台一致。普通 MQTT 与 Tuya 切换前需重启 4G 屏;模拟器关闭后重新打开。
按 云端工程下载 的文件说明加载配套模块,再调用:
tuya_connect({
productId = "你的产品ID",
deviceId = "你的设备ID",
deviceSecret = "你的设备密钥"
})
三项信息由调用方传入,也可从 Demo 输入框读取。设备密钥不要写进公开截图或共享示例。

图:stt_tuya.lua 负责设备连接和属性报文,文件内不写 LW 地址;显示、输入框和业务处理统一放在 main.lua。
等待“Tuya 已连接”后,上报物模型中已有的属性:
tuya_report({temp = 25})
temp 是属性标识符,25 是属性值,均需按自己的物模型修改。接口返回成功表示已提交,界面显示“云端已确认上报”后才表示收到平台确认。
Demo 在 main.lua 中用以下初始化,将状态和属性交给两个辅助函数:
tuya_init(show_tuya_status, show_tuya_message)
云端下发属性时进入 show_tuya_message(properties),可在原函数内增加业务处理:
local temp = properties.temp
if type(temp) == "table" then temp = temp.value end
if temp ~= nil then print("云端温度", temp) end
打开 配套 Demo,进入 Tuya 页,填写三元组并点击“连接 Tuya”。连接成功后填写属性名和值,点击“上报属性”,在平台检查属性变化;平台下发后查看“最近收到的云端属性”。

图:左侧是设备连接区;右侧是属性上报和接收区。截图保留空白设备资料,用于说明操作位置,不代表已经连接真实 Tuya 设备。
| 模块 | 负责内容 |
|---|---|
main.lua |
三元组输入、属性输入、状态和接收内容显示 |
stt_tuya.lua |
tuya_connect()、tuya_report()、返回结果处理 |
stt_link.lua |
共用串口和 JSON 报文收发 |
上报后平台没有变化? 检查是否连接成功、属性标识符是否存在、值的类型是否匹配物模型,并查看云端确认结果。
普通 MQTT 已连接,还能直接切 Tuya 吗? 当前 Demo 一次运行选择一种模式。先重启 4G 屏;电脑模拟器关闭后重开,再连接 Tuya。
能直接照抄 temp 吗? 只有你的物模型确实定义了该属性才可以。示例的设备资料和属性名都需要按实际设备填写。