MENU

【教程】WS2812灯带接入HA

September 25, 2018 • Read: 250 • 技术,Home Assistant阅读设置

需要准备以下硬件:
1.WS2812灯带(我买的是WS2812B的,现在大部分都是WS2812B的了,其实WS2811也是可以的,只要是5050贴片的都一样)
2.ESP8266开发板
3.5V电源 (一个5V稳压电源, ESP8266上面的5V引脚是不能用的,因为功率不够)
4.USB转TTL (这个用来刷固件用,你如果有能插入ESP8266的USB线也可以用的)
软件准备:
1.Arduino IDE
2.固件代码(已上传附件,文章末尾)
具体步骤:
1.安装完Arduino IDE并打开,选择(文件>首选项),在如图位置粘贴以下代码

 http://arduino.esp8266.com/stable/package_esp8266com_index.json

(这个是ESP8266的板子下载地址),然后打开( 工具>开发板>开发板管理器 )在搜索框里搜索esp8266,然后下载2.4.2版本的。

首选项.png

esp8266.png

2.打开(项目>加载库>管理库)搜索安装 PubSubClient (by Nick O'Leary这个)、FastLED(by Danial Garcia这个)、json(by Benoit Blanchon这个)

库.png

3.如图选择板子设置(端口就选你USB转TTL的端口,你不确定是那个端口的话,你可以到设备管理器里看看那个对应端口)

工具.png

4.把你的ESP8266连接到你的电脑上(USB转TTL的3.3V接ESP8266的3V,TX接RX, RX接TX,GND接GND)
5.修改代码中的相关信息,你只需要修改(MQTT的服务器IP、端口、用户、密码、WIFI账号、密码以及LED灯珠数量)。点击Arduino的编译上传,上传的时候按住板子上的flash键,如果是esp 01s的话需要把GPIO0和GND短接。

板子.png
esp 01s.jpg

6.固件刷好之后,把ESP8266的D5引脚接到灯带的绿线上,再把你准备好的5V直流稳压电源接到ESP8266和灯带上(稳压电源上的‘+’口接ESP8266的VIN和灯带的红线,电源的‘-’口接ESP8266的GND和灯带的绿线)
7.把HA的configuration文件里添加上light组件的配置(加入虚拟开关和自动化):

  - platform: mqtt
    schema: json
    name: "RGBLED"
    state_topic: "bruh/porch"
    command_topic: "bruh/porch/set"
    effect: true
    effect_list:
      - bpm
      - candy cane  
      - confetti  
      - cyclon rainbow  
      - dots  
      - fire  
      - glitter  
      - juggle  
      - lightning
      - noise  
      - police all  
      - police one  
      - rainbow  
      - rainbow with glitter  
      - ripple  
      - sinelon  
      - solid  
      - twinkle  
     brightness: true
     flash: true
     rgb: true
     optimistic: false
     qos: 0
input_number:
  porch_animation_speed:
    name: Porch Animation Speed
    initial: 150
    min: 1
    max: 150
    step: 10
automation: 
 - alias: "Porch Animation Speed"
   initial_state: True
   hide_entity: False
   trigger:
     - platform: state
       entity_id: input_number.porch_animation_speed
    action:
     - service: mqtt.publish
       data_template:
         topic: "bruh/porch/set"
         payload: '{"transition":{{ trigger.to_state.state | int }}}'

在Home Assistant中的效果:

HA.png

效果.gif

在苹果手机上HOMEKIT的效果!在固定状态下支持亮度和颜色的调节,同时也可以用siri语音控制
homekit.gif

固件下载