示例1:点亮第一个LED
大约 3 分钟
示例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 已有限流电阻
