简体中文
English
简体中文
日本語

StamPLC 控制器 Home Assistant 集成

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

致谢
感谢 ESPHome 社区贡献者 @Beormund 提供配置文件。更多内容请访问 esphome-m5stamplc

1. 准备工作

环境准备

  1. 参考 Home Assistant 官方文档安装 Home Assistant。
  2. 参考 ESPHome 官方文档 完成 ESPHome Device Builder 插件安装。(注意:本教程基于 ESPHome 2025.10.3 版本编写,如遇编译错误,建议先切换至该版本进行验证。)

硬件产品

2. 在线烧录

点击下方在线烧录按钮,按提示完成固件烧录和 Wi-Fi 配置,即可快速体验 StamPLC 接入 Home Assistant。

烧录及配置的详细操作可参考在线 ESPHome 固件烧录与配置说明

使用在线烧录功能完成后,无需执行“固件编译 & 烧录”步骤,直接跳转至4. 开始使用章节继续后面的操作。

3. 固件编译 & 烧录

本小节将说明如何基于 yaml 配置文件重新编译项目,便于二次开发、功能修改或新增功能。

编译时长
通过 HA 进行固件编译较为耗费资源,首次编译可能会需要较长时间进行资源下载,跟实际部署 HA 服务的设备以及网络质量相关。

创建设备

  1. 在 Home Assistant 中打开 ESPHome Builder,点击右下角的 NEW DEVICE 按钮,创建一个空的配置文件。

  2. 弹出框单击 CONTINUE

  1. 选择 Empty Configuration
  1. 为文件命名(可选)。

修改配置

  1. 在新生成的配置文件处点击 EDIT
  1. configuration.yaml 的内容复制到配置文件中。
  1. 根据需要,更改网络配置或者是 API 信息等,比如创建一个 API Encryption Key 用于认证:
yaml
1 2 3
api:
  encryption:
    key: "Your_Encryption_Key"
API Encryption Key
如果需要一个 Key,可以访问 Native API 页面,在 encryption 下生成。

或者是更改时区设置:

yaml
1
timezone: Europe/London

改为合适的时区:

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

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

  1. 当编译完成后,选择 Factory format 下载固件。

烧录固件

  1. 下载固件:通过 ESPHome Builder 的Manual download方式下载 Factory Format 固件。
  2. 使用 web 工具烧录固件:
  • 打开浏览器,访问 ESPHome Web 上传固件。

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

  • 点击 INSTALL,选择之前下载的固件上传,再次点击 INSTALL,将固件烧录至设备。
  • 当烧录完成后,设备会自动重置。

4. 开始使用

添加设备至 Home Assistant 集成

  1. 当设备重启后,会自动连接之前配置的网络,正常情况下可以在 Settings > Devices & Services 发现设备。
  1. 点击 Add 将 StamPLC 集成进入 Home Assistant,如果此前设置了 API Encryption Key,此处可能需要填入 API Encryption Key 验证。 StamPLC 的 Dashboard 示例:
  1. 实机运行:

拓展

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 资源。适用于交流负载设备开关、电磁阀控制等工业级应用场景。

  1. 配置 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));
       ...
  1. 完成配置后,重新编译和上传固件,将设备添加至 Home Assistant 即可通过额外的开关控制 AC Relay。
  1. 开启和关闭开关,LCD 的状态会同步改变。

StamPLC PoE

  1. 产品介绍:

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

  1. 配置 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 交换机或者路由器为设备供电同时供网。

5. 相关视频

Page Tools
PDF
On This Page