首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ESP8266控制WS2812B LED灯带 基于MQTT小爱接入

ESP8266控制WS2812B LED灯带 基于MQTT小爱接入

作者头像
逍遥子大表哥
发布2025-07-20 10:21:25
发布2025-07-20 10:21:25
29400
代码可运行
举报
文章被收录于专栏:kali blogkali blog
运行总次数:0
代码可运行

本文为大家介绍使用ESP8266开发板控制WS2812B幻彩LED灯带,通过MQTT协议与HomeAssistant通信,从而实现远程调色控制。

硬件要求

  • ESP8266开发板(NodeMCU)
  • WS2812B LED灯带
  • 5V电源适配器(非必须)
  • 杜邦线线

视频效果

线路连接

ESP8266 引脚

连接方向

WS2812B 引脚 (线色)

GPIO2

----->

DIN (绿线)

GND

----->

GND (白线)

3.3V

----->

VCC (红线)

线路连接
线路连接

注意: 如果灯带较长,8266的电压肯定是带不动的,就需要额外供电了。

电源连接

代码语言:javascript
代码运行次数:0
运行
复制
5V电源适配器 + -----> WS2812B VCC
5V电源适配器 - -----> WS2812B GND

代码环境

在Arduino IDE中安装必要的库:

  • PubSubClient (MQTT客户端)
  • Adafruit NeoPixel (WS2812B控制)
  • ArduinoJson (JSON解析)

配置Arduino代码

根据实际调整参数:

代码语言:javascript
代码运行次数:0
运行
复制
#define LED_COUNT   30  // 灯的颗数,根据实际修改
#define LED_PIN     2   // D4口,可根据需要修改

配置WiFi和MQTT:

代码语言:javascript
代码运行次数:0
运行
复制
const char* ssid = "xiaoyaozi";
const char* password = "xiaoyaizi8888";
const char* mqtt_server = "127.0.0.1";
修改这几处,其他手贱勿动😱
修改这几处,其他手贱勿动😱

接下来,上传代码到开发板就行了。

主题说明:

上传代码后,可在mqtt客户端发送指令测试。在测试之前,你需要了解代码中的三个主题。

homeassistant/light/ws2812b/set 控制命令主题,用于控制开启、关闭、颜色、亮度控制。

代码语言:javascript
代码运行次数:0
运行
复制
{"state":"ON"} #开启
{"state":"OFF"} #关闭
#综合指令 颜色控制和亮度控制
{{"state":"ON","color":{"r":255,"g":158,"b":243},"brightness":20}} 

homeassistant/light/ws2812b/state 状态上报主题。用于ESP8266将执行情况上报 HA

homeassistant/light/ws2812b/availability 在线状态检测。如果在HA中,显示设备不可用,则设备没有上线,可向此主题发送online / offline 使设备上线或离线。

HomeAssistant配置

配置homeassistant文件configuration.yaml添加内容:

代码语言:javascript
代码运行次数:0
运行
复制
# MQTT配置
mqtt:
 light:
  - unique_id: ws2812b_light
      name: "WS2812B LED灯带"
      command_topic: "homeassistant/light/ws2812b/set"
      state_topic: "homeassistant/light/ws2812b/state"
      availability_topic: "homeassistant/light/ws2812b/availability"
      payload_available: "online"
      payload_not_available: "offline"
      payload_on: '{"state": "ON"}'
      payload_off: '{"state": "OFF"}'
      state_value_template: "{{ value_json.state }}"
      brightness_scale: 255
      rgb_command_topic: "homeassistant/light/ws2812b/set"
      rgb_state_topic: "homeassistant/light/ws2812b/state"
      rgb_value_template: "{{ value_json.color.r }},{{ value_json.color.g }},{{ value_json.color.b }}"
      optimistic: true
      retain: true

同时,在设置-设备与服务-添加集成-mqtt中配置MQTT相关信息。

具体配置移步合集文章
具体配置移步合集文章

最后重启HomeAssistant

配置完成后,重启HomeAssistant以应用新配置。

创建卡片界面

这里我们用到了一个插件light-entity-card可以在HACS中安装。

源码如下

代码语言:javascript
代码运行次数:0
运行
复制
shorten_cards: false
consolidate_entities: false
child_card: false
hide_header: false
show_header_icon: false
header: ""
color_wheel: true
persist_features: true
brightness: true
color_temp: false
white_value: true
color_picker: true
speed: true
intensity: true
force_features: false
show_slider_percent: true
full_width_sliders: false
brightness_icon: weather-sunny
white_icon: file-word-box
temperature_icon: thermometer
speed_icon: speedometer
intensity_icon: transit-connection-horizontal
type: custom:light-entity-card
entity: light.ws2812b_leddeng_dai
name: WS2812B LED灯带
smooth_color_wheel: true
effects_list: false

配置小爱

安装巴法云插件,将led灯带实体同步到巴法云即可。最后在米家进行通过便可以控制了。

Arduino源码

在后台回复关键词LED获取链接


版权属于:逍遥子大表哥

本文链接:https://cloud.tencent.com/developer/article/2544031

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 硬件要求
  • 视频效果
  • 线路连接
    • 电源连接
  • 代码环境
  • 配置Arduino代码
  • 主题说明:
  • HomeAssistant配置
  • 创建卡片界面
  • 配置小爱
  • Arduino源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档