Example 1: light the first LED
About 4 min
Example 1: light the first LED
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Overview
- Wiring
- JSON Configuration Example
- PeriphExec Linkage
- Notes
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
示例1:点亮第一个LED
实验概述
通过 GPIO 数字输出控制 LED 灯的亮灭,是嵌入式开发的入门实验。普中开发板上有4个 LED(D1-D4),分别连接到 GPIO15、GPIO2、GPIO0、GPIO4。
硬件接线
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| D1 | GPIO15 | LED(低电平点亮) |
| D2 | GPIO2 | LED(低电平点亮) |
| D3 | GPIO0 | LED(低电平点亮) |
| D4 | GPIO4 | LED(低电平点亮) |
普中开发板 LED 为共阳接法,GPIO 输出低电平时 LED 点亮。
JSON 配置示例
{
"peripherals": [
{
"id": "led_d1",
"name": "LED-D1",
"type": 12,
"enabled": false,
"pins": [15],
"params": {
"initialState": 0
}
},
{
"id": "led_d2",
"name": "LED-D2",
"type": 12,
"enabled": false,
"pins": [2],
"params": {
"initialState": 0
}
},
{
"id": "led_d3",
"name": "LED-D3",
"type": 12,
"enabled": false,
"pins": [0],
"params": {
"initialState": 0
}
},
{
"id": "led_d4",
"name": "LED-D4",
"type": 12,
"enabled": false,
"pins": [4],
"params": {
"initialState": 0
}
}
]
}外设执行联动
场景1:远程控制LED(平台触发)
功能:通过云平台下发的MQTT/HTTP指令控制LED
Web界面配置步骤
步骤1:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击右上角 新增规则 按钮
- 填写基础配置:
- 规则名称:
远程控制LED-D1 - 上报数据:✅ 启用(执行后上报状态到云平台)
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 平台触发 接收云平台指令 目标外设 留空或选择 led_d1接收指令的外设 操作符 选择 匹配模式 接收数据等于比较值时触发 比较值 {"cmd":"on"}匹配的指令内容
步骤3:配置动作
点击 添加动作 按钮
填写动作配置:
字段 填写内容 说明 动作类型 选择 低电平 GPIO输出LOW,点亮LED 目标外设 选择 led_d1控制的外设ID 执行模式 选择 同步 等待动作完成 点击 保存 按钮
测试方法:
通过云平台发送MQTT消息:
{"cmd":"on"}场景2:定时闪烁LED(定时触发)
功能:让LED每秒闪烁一次
Web界面配置步骤
步骤1:创建规则
- 点击 新增规则
- 填写基础配置:
- 规则名称:
LED-D1闪烁 - 上报数据:❌ 禁用(不需要上报)
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 按时间间隔执行 定时模式 选择 间隔定时 每隔X秒执行 间隔秒数 1每1秒执行一次
步骤3:配置动作(需要2个动作实现闪烁)
动作1:点亮LED
- 点击 添加动作 按钮
- 填写:
- 动作类型:选择 低电平
- 目标外设:选择
led_d1
动作2:延迟后熄灭LED
再次点击 添加动作 按钮
填写:
- 动作类型:选择 命令脚本
- 脚本内容:
DELAY 500 PERIPH led_d1 HIGH - 执行模式:选择 异步
点击 保存 按钮
执行流程:
每隔1秒
↓
点亮LED(低电平)
↓
延迟500ms
↓
熄灭LED(高电平)
↓
等待下一个1秒周期{
"name": "远程控制LED-D1",
"enabled": true,
"triggers": [
{ "type": "platform", "params": { "topic": "led/d1" } }
],
"actions": [
{ "type": "gpio_write", "params": { "peripheralId": "led_d1", "value": 0 } }
]
}注意事项
- GPIO0:烧录时需拉低,正常运行时可作为 LED 输出,但调试时需注意
- GPIO2:部分 ESP32 模块上内置 LED 也连接到此引脚
- 电平逻辑:普中开发板 LED 为低电平点亮,与常见的高电平点亮相反
- 电流限制:ESP32 GPIO 输出最大 12mA,板载 LED 已有限流电阻
