MPU6050 Six-Axis Gyroscope
MPU6050 Six-Axis Gyroscope
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
- Peripheral capability, supported device types, and wiring constraints.
- Web console configuration fields and recommended parameter values.
- PeriphExec integration, validation steps, and troubleshooting 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.
MPU6050 六轴陀螺仪
功能说明
MPU6050 是一款六轴运动传感器(3轴加速度计 + 3轴陀螺仪),通过 I2C 总线通信。可测量加速度、角速度,并计算倾斜角度。适用于姿态检测、运动追踪、倾斜报警等场景。
固件要求:仅 ESP32-S3 full 固件支持(需启用
FASTBEE_ENABLE_I2C_SENSORS编译开关)。
支持的外设类型
| 类型 | type值 | 说明 |
|---|---|---|
| SENSOR | 38 | I2C 传感器(MPU6050) |
硬件接线
| MPU6050 引脚 | ESP32-S3 GPIO | 说明 |
|---|---|---|
| VCC | 3.3V | 电源 |
| GND | GND | 地 |
| SDA | GPIO 21 | I2C 数据线 |
| SCL | GPIO 22 | I2C 时钟线 |
| INT | GPIO(可选) | 中断输出(数据就绪) |
MPU6050 支持 3.3V 和 5V 供电,ESP32 建议使用 3.3V。
配置方式
方式1:Web界面配置(推荐)
MPU6050 保存前重点核对 I2C 地址、采集字段和安装方向。
步骤1:进入外设管理页面
- 打开浏览器访问 ESP32 IP 地址
- 登录后点击左侧菜单 外设配置
步骤2:添加MPU6050外设
点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID mpu6050_1唯一标识符 名称 MPU6050陀螺仪显示名称 外设类型 通用传感器 (type: 38) I2C传感器 SDA引脚 21I2C数据引脚 SCL引脚 22I2C时钟引脚 驱动名称 MPU6050固定值 I2C地址 0x680x68或0x69 采集间隔 10001秒(≥500ms) 加速度量程 2±2g 陀螺仪量程 250±250°/s 点击 保存
步骤3:验证配置
- 在外设列表中找到刚添加的外设
- 点击 启用 开关
- 等待1秒后查看加速度、角速度、倾斜角度数据
⚠️ 重要:仅ESP32-S3 full固件支持,需启用I2C传感器编译开关
方式2:JSON配置文件导入
将以下配置添加到 data/config/peripherals.json 的 peripherals 数组中:
{
"id": "mpu6050_1",
"name": "MPU6050陀螺仪",
"type": 38,
"enabled": false,
"pins": [21, 22],
"params": {
"driver": "MPU6050",
"i2cAddress": "0x68",
"interval": 1000,
"accelRange": 2,
"gyroRange": 250
}
}参数说明
| 参数 | 说明 |
|---|---|
| driver | 驱动名称,固定为 "MPU6050" |
| i2cAddress | I2C 地址,默认 0x68(AD0 接 GND),AD0 接 VCC 时为 0x69 |
| interval | 采样间隔(ms),建议 ≥ 500 |
| accelRange | 加速度量程:2/4/8/16(单位:g) |
| gyroRange | 陀螺仪量程:250/500/1000/2000(单位:°/s) |
pins[0] = SDA 引脚,pins[1] = SCL 引脚
数据上报格式
传感器数据通过 MQTT 上报:
[
{"id": "mpu6050_1", "value": "ax:0.12,ay:-0.03,az:9.78,gx:1.2,gy:-0.5,gz:0.1,tilt:5.3"}
]| 字段 | 说明 | 单位 |
|---|---|---|
| ax/ay/az | 三轴加速度 | m/s² |
| gx/gy/gz | 三轴角速度 | °/s |
| tilt | 综合倾斜角度 | ° |
驱动注册机制
MPU6050 使用 ISensorDriver + DriverRegistry 机制注册:
- 编译时通过
FASTBEE_ENABLE_I2C_SENSORS宏开关启用 - 驱动自动注册到全局注册表
- 配置中的
driver字段用于匹配具体驱动实现
与外设执行联动
Web界面配置步骤
创建倾斜检测报警规则
- 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 配置轮询触发器:
- 触发类型:轮询触发
- 数据源:mpu6050_1
- 数据字段:tilt(倾斜角度)
- 比较操作:大于
- 比较值:30(度)
- 添加动作:
- 动作1:蜂鸣器报警
- 动作类型:高电平
- 目标外设:buzzer1
- 动作2:触发设备事件
- 动作类型:触发事件
- 事件ID:tilt_alarm
- 动作1:蜂鸣器报警
- 点击 保存
💡 提示:可与BMP280共用I2C总线(地址不同)
JSON配置示例
倾斜检测报警
{
"name": "倾斜报警",
"enabled": true,
"triggers": [
{
"type": "poll",
"params": {
"periphId": "mpu6050_1",
"field": "tilt",
"operator": ">",
"threshold": 30
}
}
],
"actions": [
{
"type": "gpio_write",
"params": {
"periphId": "buzzer1",
"value": "1"
}
},
{
"type": "event_emit",
"params": { "event": "tilt_alarm" }
}
]
}姿态数据显示到 OLED
{
"name": "显示姿态",
"enabled": true,
"triggers": [
{
"type": "timer",
"params": { "interval": 2000 }
}
],
"actions": [
{
"type": "sensor_read",
"params": { "periphId": "mpu6050_1" }
},
{
"type": "display_write",
"params": {
"periphId": "oled1",
"template": "Tilt:{mpu6050_1.tilt}deg\nAx:{mpu6050_1.ax}"
}
}
]
}注意事项
- 固件版本:仅 ESP32-S3 full 固件包含 MPU6050 驱动,slim 固件不支持
- 安装方向:传感器安装方向影响轴向定义,需根据实际安装校准
- 零偏校准:首次使用建议进行零偏校准,将设备水平静置读取偏移值
- 振动干扰:安装环境振动会影响读数精度,建议添加减震垫
- I2C 共享:可与 BMP280 共用同一 I2C 总线(地址不同),节省引脚资源
- 采样率:高速采样(< 100ms)会增加 CPU 负载,普通应用建议 500-2000ms
