
StamPLC 是一款物联网可编程逻辑控制器,专为工业自动化与远程监控设计。产品采用 Stamp-S3A 控制模组,不仅提供强大的处理能力,还实现了高效的无线连接。本文介绍如何将 StamPLC 集成至 Home Assistant。
在 Home Assistant 中打开 ESPHome Builder,创建一个空的配置文件
点击右下角的 NEW DEVICE 按钮
弹出框单击 CONTINUE

Empty Configuration

EDIT
之后,复制 configurations.yaml 的内容到配置文件中

根据需要,更改网络配置或者是 API 信息等,比如创建一个 API Encryption Key 用于认证:
api:
encryption:
key: "Your_Encryption_Key"或者是更改时区设置:
timezone: Europe/London改为合适的时区:
timezone: Asia/Shanghai之后,依次点击右上角 SAVE 和 INSTALL,选择 Manual download

此时会生成代码并且编译工程
当编译完成后,选择 Factory format 下载固件

打开浏览器,访问 ESPHome Web 上传固件
使用 USB-C 数据线将 StamPLC 连接至主机, 点击 CONNECT ,选择设备连接

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

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

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

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


实机运行

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

StamPLC AC 是一款适配 StamPLC 主机的交流继电器拓展模块。模块集成交流负载控制与整机供电功能,有效简化应用供电布线。采用触点式继电器(单刀单掷 - 常开型), 最大支持 AC 240V@10A 线路通断。内置 AC-DC 隔离转换电路,支持 AC 100~240V 输入,可在为继电器负载供电的同时,降压输出 DC 12V 为整机供电。板载可编程三色 LED 灯,用于工作状态指示。StamPLC 主控通过 I2C 协议的 IO 拓展芯片对继电器、RGB LED 进行编程控制,有效节省 IO 资源。适用于交流负载设备开关、电磁阀控制等工业级应用场景。
在此前 StamPLC 的配置之上,YAML 配置中需要添加一些组件:
pi4ioe5v6408:
- id: pi4ioe5v6408_1
address: 0x43
# Configuration of i2c GPIO Expander 2
# on the StamPLC AC expansion
- id: pi4ioe5v6408_2
address: 0x44 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 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:
...
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));
... 完成配置后,重新编译和上传固件, 将设备添加至 Home Assistant 即可通过额外的开关控制 AC Relay

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