pdf-icon

StamPLC 控制器 Home Assistant 集成

本章节介绍将物联网可编程逻辑控制器 StamPLC 集成至 Home Assistant 的方法。

Note
非常感谢来自 ESPHome 社区贡献者 @Beormund 提供的配置文件,如需参考更多,可以访问 https://github.com/Beormund/esphome-m5stamplc。

准备工作

  • Home Assistant 主机。
  • 在 Home Assistant 中安装并启用ESPHome Builder

注意事项

  • 本教程中,套件在 ESPHome 2025.10.3 下编译和上传,如果遇见编译 / 上传问题,考虑将 ESPHome 切换至此版本。

创建设备

  1. 在 Home Assistant 中打开 ESPHome Builder,创建一个空的配置文件。

    • 点击右下角的 NEW DEVICE 按钮。

    • 弹出框单击 CONTINUE

    • 选择 Empty Configuration

    • 为文件命名(可选)。

    • 在新生成的配置文件处点击 EDIT

  2. 复制 configurations.yaml 的内容到配置文件中。

  3. 根据需要,更改网络配置或者是 API 信息等,比如创建一个 API Encryption Key 用于认证:

    yaml
    1 2 3
    api:
      encryption:
        key: "Your_Encryption_Key"
    提示
    如果需要一个 Key,可以访问 native api 生成一个(在 encryption 下)。

或者是更改时区设置:

yaml
1
timezone: Europe/London

改为合适的时区:

yaml
1
timezone: Asia/Shanghai
  1. 依次点击右上角 SAVEINSTALL,选择 Manual download

此时会生成代码并且编译工程。

提示
如果是第一次编译,可能会需要较长时间;具体取决于 Home Assistant 主机性能和网络连接情况。
  1. 当编译完成后,选择 Factory format 下载固件。

下载和烧录固件

  1. 下载固件:通过 ESPHome Builder 的Manual download方式下载 Factory Format 固件。

  2. 使用 web 工具烧录固件:

    • 打开浏览器,访问 ESPHome Web 上传固件。

    • 使用 USB-C 数据线将 StamPLC 连接至主机,点击 CONNECT,选择设备连接。

    • 点击 INSTALL,选择之前下载的固件上传,再次点击 INSTALL,将固件烧录至设备。

    • 当烧录完成后,设备会自动重置。

开始使用

添加设备至 Home Assistant 集成

  1. 当设备重启后,会自动连接之前配置的网络,正常情况下可以在 Settings -> Devices & services 发现设备。

  2. 点击 Add 将 StamPLC 集成进入 Home Assistant,如果此前设置了 API Encryption Key,此处可能需要填入 API Encryption Key 验证。 StamPLC 的 Dashboard 示例:

  3. 实机运行:

拓展

StamPLC 支持拓展,可以通过右侧的 16 Pin 引脚接入其它拓展。

StamPLC AC

  1. 产品介绍:

    StamPLC AC 是一款适配 StamPLC 主机的交流继电器拓展模块。模块集成交流负载控制与整机供电功能,有效简化应用供电布线。采用触点式继电器(单刀单掷 - 常开型), 最大支持 AC 240V@10A 线路通断。内置 AC-DC 隔离转换电路,支持 AC 100~240V 输入,可在为继电器负载供电的同时,降压输出 DC 12V 为整机供电。板载可编程三色 LED 灯,用于工作状态指示。StamPLC 主控通过 I2C 协议的 IO 拓展芯片对继电器、RGB LED 进行编程控制,有效节省 IO 资源。适用于交流负载设备开关、电磁阀控制等工业级应用场景。

  2. 配置 StamPLC AC: 在此前 StamPLC 的配置之上,YAML 配置中需要添加一些组件:

    • 新增 IO Expander:

      pi4ioe5v6408:
        - id: pi4ioe5v6408_1
          address: 0x43
        # Configuration of i2c GPIO Expander 2
        # on the StamPLC AC expansion
        - id: pi4ioe5v6408_2
          address: 0x44
    • 新增 AC Relay 的开关:

      switch:
        ...
        - platform: gpio
          restore_mode: RESTORE_DEFAULT_OFF
          name: "StamPLC AC Relay"
          id: ac_r1
          pin:
            pi4ioe5v6408: pi4ioe5v6408_2
            number: 2
            mode:
              output: true
          on_state:
            - component.update: vdu
    • 新增 AC Relay 顶部的 LED 颜色控制:

      switch:
        ...
        # led indicator on StamPLC AC expansion
        - platform: gpio
          restore_mode: ALWAYS_OFF
          id: "ac_relay_led_red"
          pin:
            pi4ioe5v6408: pi4ioe5v6408_2
            number: 5
            inverted: true
            mode:
              output: true
      
        - platform: gpio
          restore_mode: ALWAYS_OFF
          id: "ac_relay_led_green"
          pin:
            pi4ioe5v6408: pi4ioe5v6408_2
            number: 6
            inverted: true
            mode:
              output: true
      
        - platform: gpio
          restore_mode: ALWAYS_OFF
          id: "ac_relay_led_blue"
          pin:
            pi4ioe5v6408: pi4ioe5v6408_2
            number: 7
            inverted: true
            mode:
              output: true
    • 为 Display 组件新增 AC Relay UI:

      display:
        ...
        lambda: |-
          ...
          it.print(5, 80, id(font1), Color(orange), "Relays 1-4");
          it.filled_rectangle(5, 99, 25, 25, id(r1).state ? id(red) : id(grey));
          it.filled_rectangle(34, 99, 25, 25, id(r2).state ? id(red) : id(grey));
          it.filled_rectangle(63, 99, 25, 25, id(r3).state ? id(red) : id(grey));
          it.filled_rectangle(92, 99, 25, 25, id(r4).state ? id(red) : id(grey));
          it.print(141, 80, id(font1), Color(orange), "AC Expansion");    // The AC Relay Expansion
          it.filled_rectangle(141, 99, 25, 25, id(ac_r1).state ? id(red) : id(grey));
        ...
  3. 完成配置后,重新编译和上传固件,将设备添加至 Home Assistant 即可通过额外的开关控制 AC Relay。

  4. 开启和关闭开关,LCD 的状态会同步改变。

StamPLC PoE

  1. 产品介绍:

    StamPLC PoE 是一款适配 StamPLC 主机的以太网控制模块,支持 PoE(有源以太网)技术,可通过网线同时实现数据传输与供电。该模块内置 W5500 嵌入式以太网控制器,集成 TCP/IP 协议栈,具备 8 路独立硬件 Socket、10/100M 以太网数据链路层(MAC)及物理层(PHY),支持 UDP、TCP 等主流网络通信方式。

  2. 配置 StamPLC PoE:

兼容性警告
由于 PoE(W5500 Ethernet) 组件会单独占用 SPI 硬件资源,此处 LCD Display 和 PoE 会使用同一组 SPI 引脚,同时定义会引发冲突;因此硬件上,PoE 和 Display 功能只能二选一。
网络组件中,wifi 组件和 ethernet 组件是互斥选项,只能二选一。

如需使用 PoE 功能,需要禁用 wifidisplayspi 组件(在配置文件中删除相关声明 / 定义),之后再原始配置文件中添加:

ethernet:
  id: ethernet_1
  type: W5500
  clk_pin: GPIO7
  mosi_pin: GPIO8
  miso_pin: GPIO9
  cs_pin: GPIO11
  clock_speed: 20MHz
  1. 保存并重新编译,上传工程。使用 PoE 交换机或者路由器为设备供电同时供网。

相关视频

On This Page