下面我将为您提供一个从基础到高级的完整实现方案

本文目录导读:

  1. 核心思路
  2. 所需的硬件设备
  3. 联动场景设计示例
  4. 实现步骤(以最常见的“电平信号+Home Assistant+米家灯带”为例)
  5. 更简单的方法(如果不想折腾硬件)

核心思路

通过程序麻将机的API接口、状态输出或简单的物理开关,将其状态变化(如开始洗牌、洗牌完成、掷骰子、胡牌等)作为一个“触发条件”,然后通过一个智能家居中枢(如小米米家、Home Assistant、Apple HomeKit)去控制连接的智能灯具,改变它们的颜色、亮度、模式。


所需的硬件设备

  1. 程序麻将机:这是信号的来源,关键在于它如何提供触发信号。

    • 最佳情况:麻将机厂商提供开放的API接口局域网通信协议,这最灵活但非常罕见。
    • 常见情况:麻将机有状态指示LED灯(如“洗牌中”红灯、“准备就绪”绿灯),可以通过改造,在这些灯上并联一个光电传感器或简单的电压检测模块来检测其亮灭。
    • 简易情况:麻将机在洗牌和升降桌板时电机声音巨大,可以使用分贝检测传感器,当声音超过阈值时触发。
    • 最简情况:手动放置一个无线开关/按钮在桌上,手动触发各种灯光场景。
  2. 信号捕捉与中转设备

    • 如果用电平信号/传感器:需要一个支持GPIO的智能中枢,如树莓派(安装Home Assistant)、ESP8266/ESP32开发板。
    • 如果用声音触发:需要支持分贝检测的传感器连接到上述中枢。
    • 如果用手动按钮:一个 Zigbee蓝牙 的无线开关即可(如米家无线开关)。
  3. 智能家居中枢(大脑):

    • 米家多功能网关(或支持Zigbee 3.0的网关)
    • Home Assistant(运行在树莓派、旧电脑或NAS上,功能最强大)
    • Apple HomePodApple TV(作为HomeKit中枢)
  4. 智能灯具(执行者):

    • 灯带:贴在麻将桌边缘、桌子下方或背景墙周围,效果最炫。
    • 智能灯泡:替换房间的主灯或装饰灯。
    • 氛围落地灯/台灯:作为辅助照明和氛围烘托。

联动场景设计示例

麻将机状态 触发条件 灯光动作 效果与目的
开始洗牌 “洗牌中”红灯亮 所有灯光变为呼吸效果的红色 营造紧张、忙碌的氛围,提示大家不要动牌。
洗牌完成 “准备就绪”绿灯亮 灯光变为舒缓的绿色流水效果 提示洗牌结束,请玩家就座准备,营造平静期待感。
掷骰子 按下骰子按钮 灯光快速闪烁白色或金色几次 增加掷骰子的仪式感和戏剧性,像赌神电影一样。
有人胡牌 (高级) 通过API获取“胡牌”信号 全场灯光绚丽闪烁(彩虹变换、金色爆闪) 瞬间引爆气氛,庆祝胜利,极具成就感。
一局结束 最后一墩牌被推入 灯光缓慢变为暖黄色,亮度降低 表示一局结束,进入算分时间,让眼睛和氛围放松下来。
特定牌型 (极致玩法) API检测到“清一色”、“大四喜”等 触发专属灯光秀(如清一色变全绿,大四喜四色轮流闪烁) 将游戏体验推向极致,成为朋友间津津乐道的话题。

实现步骤(以最常见的“电平信号+Home Assistant+米家灯带”为例)

  1. 确定触发信号

    • 打开麻将机,找到“洗牌中”和“准备就绪”的指示灯。
    • 光电传感器电压检测模块的探头小心地固定在这两个LED灯旁,确保能准确检测其亮灭,传感器输出信号线。
  2. 信号接入智能中枢

    • 将传感器的信号线连接到ESP32开发板的GPIO引脚上。
    • 在ESP32上刷写ESPHome固件,编写ESPHome配置文件,将这两个GPIO引脚定义为两个二进制传感器
    • 将ESP32接入您的Home Assistant系统,Home Assistant中就会出现两个实体,binary_sensor.mahjong_washingbinary_sensor.mahjong_ready
  3. 配置自动化(核心步骤): 在Home Assistant的“自动化”中创建新的规则。

    • 示例自动化:洗牌开始

      • 触发binary_sensor.mahjong_washing 状态从 off 变为 on
      • 动作
        • 调用场景:scene.mahjong_washing (你预先设置好的一个场景,让所有灯变红色并呼吸)
        • 或直接控制灯:
          service: light.turn_on
          target:
            entity_id: light.mahjong_lightstrip
          data:
            effect: "呼吸"
            rgb_color: [255, 0, 0] # 红色
    • 示例自动化:洗牌完成

      • 触发binary_sensor.mahjong_ready 状态从 off 变为 on
      • 动作
        • 调用场景:scene.mahjong_ready (预设好的绿色流水场景)
  4. 调试与优化

    • 测试每个触发条件是否准确。
    • 调整灯光的亮度、颜色和变化速度,确保不会过于刺眼而影响打牌。
    • 可以设置一个“总开关”,在不需要联动的时候关闭所有自动化。

更简单的方法(如果不想折腾硬件)

  1. 使用无线开关:购买一个米家无线开关
  2. 设置单击、双击、长按分别对应不同的灯光场景(如“洗牌模式”、“准备模式”、“胡牌庆祝”)。
  3. 手动控制:在洗牌时,手动单击开关;洗好后再双击开关,虽然失去了自动化的魔力,但依然能通过一个按键快速切换整个房间的氛围,成本最低,实现最简单。
方案 实现难度 效果 成本
手动无线开关 极低 良好
传感器+ESP32+Home Assistant 中等 极佳
官方API直接接入 (几乎不可行) 完美 未知

推荐从“手动无线开关”方案开始尝试,如果觉得有趣又想更进一步,再研究“传感器+Home Assistant”的方案,这个项目完美融合了硬件改造、软件自动化和场景设计,是一个非常棒的智能家居玩乐项目!