pdf-icon

Unit Step16 Home Assistant 集成

简介

Unit Step16 是一款基于 STM32G031G8U6 微控制器的 16 位旋转编码器控制单元。它实时采集旋转编码器的 BCD 值,并通过板载 7 段显示器可视化显示 0-F 十六进制值。 该设备通过 I2C 通信,允许您配置旋转增量方向、显示操作模式、RGB LED 颜色和 I2C 地址,使得多个编码器单元可以在同一总线上使用。 凭借其简洁高效的设计,Unit Step16 提供可靠的物理交互和即时视觉反馈,非常适合智能交互设备(如智能家居控制面板)、控制界面(如音量旋钮、RGB 灯光控制、电机调速)以及 STEAM 教育硬件原型制作和教学。

准备工作

提示
在本教程中,固件使用 ESPHome 2026.1.2 进行编译和上传。如果遇到编译/上传问题,请考虑将 ESPHome 切换到此版本。

步骤 1. 创建新设备

  • 点击右下角的绿色按钮创建设备。

步骤 2. 创建设备名称

  • 点击 CONTINUE

  • 点击 New Device Setup

  • 输入设备名称并点击 NEXT

步骤 3. 选择设备类型

  • 点击 ESP32

  • 点击 SKIP

步骤 4. 开始编辑 YAML 文件

  • 点击 EDIT。我们可以通过 YAML 文件自定义设备功能。

设备配置

以下是代码的核心部分。下面提供了相关的参考和说明。

外部组件配置

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: unit_step16
    refresh: 0s

unit_step16:
  id: my_step16
  i2c_id: bsp_iic
  address: 0x48

I2C 配置

i2c:
  - id: bsp_iic
    scl: GPIO32
    sda: GPIO26
    scan: True

传感器配置

sensor:
  - platform: unit_step16
    unit_step16_id: my_step16
    name: "Encoder Value"
    update_interval: 100ms
    on_value:
      then:
        - logger.log:
            format: "Encoder value changed to: %.0f"
            args: [ 'x' ]

输出配置

output:
  - platform: unit_step16
    id: led_brightness_output
    unit_step16_id: my_step16
    channel: led_brightness

  - platform: unit_step16
    id: rgb_brightness_output
    unit_step16_id: my_step16
    channel: rgb_brightness
  
  - platform: unit_step16
    id: rgb_red_output
    unit_step16_id: my_step16
    channel: rgb_red
  
  - platform: unit_step16
    id: rgb_green_output
    unit_step16_id: my_step16
    channel: rgb_green
  
  - platform: unit_step16
    id: rgb_blue_output
    unit_step16_id: my_step16
    channel: rgb_blue

灯光配置

light:
  - platform: rgb
    id: step16_rgb_light
    name: "Step16 RGB Light"
    red: rgb_red_output
    green: rgb_green_output
    blue: rgb_blue_output
    restore_mode: ALWAYS_ON  
    default_transition_length: 0s  

  - platform: monochromatic
    id: step16_led_display
    name: "Step16 LED Display"
    output: led_brightness_output
    restore_mode: ALWAYS_ON 
    default_transition_length: 0s  

数字配置

number:
  - platform: template
    name: "RGB Brightness"
    min_value: 0
    max_value: 100
    step: 1
    optimistic: true
    initial_value: 50
    on_value:
      then:
        - output.set_level:
            id: rgb_brightness_output
            level: !lambda 'return x / 100.0;'

固件构建

  • 再次点击 INSTALL 进行烧录并等待完成。

  • 修改后,点击右上角的 SAVEINSTALL,然后在弹出窗口中选择 Manual Download

  • 固件编译完成后,点击下载并选择 Factory format (Previously Modern)

提示
点击 Unit Step16 查看完整的示例配置。首次构建可能需要一段时间,具体取决于 Home Assistant 主机的性能和网络质量。

固件上传

  • 通过 USB Type-C 线缆将设备连接到主机。打开 ESPHome Web 并点击 CONNECT 连接设备。

  • 找到对应的串口号

  • 点击 INSTALL

  • 选择之前编译的固件进行上传。

提示
请注意,下载完成后必须重置设备。

Home Assistant 集成

  • 点击 Settings -> Device & services 检查设备。

  • 我们可以在 Discover 部分找到相应的设备。

  • 添加设备后,数据将正确显示。

  • 最后,我们将这些实体添加到仪表板,以下显示了它们的显示结果。

On This Page