我正在研究一个项目,在我的楼梯的每个步骤上使用带有WS2812B LED的ESP32。我在Docker中选择了在船坞下运行的eSphome运行,以使用PIR传感器运行序列。该项目的总量具有796个LED,分为14个分区(可变长度)。

我现在工作了好几天,以摆脱我所经历的问题,但不能让我的头绕过它。基本上,创建的YAML文件具有快速集成功能。相关代码块:

灯: - 平台:Fastled_lyless芯片组:WS2812B RGB_ORDER:GRB内部:TRUE PIN:GPIO4 NUM_LEDS:796名称:“楼梯”ID:楼梯

# step1: 52个LED - LED 0到LED 51 - platform: partition name: "step1" id: step1 internal: true segments: - id: staircase from: 1 to: 50

#从下到上运行灯- id: light - downup then: - light。Turn_on: id: step1 transition_length: !返回id(亮度);返回id(红色);返回id(绿色);返回id(Blue);——光。turn_on: id:步骤2…等,

跳过其他代码,因为它没有贡献问题。

首先,我确实经历了许多其他主题中描述的经常认可的闪烁。当使用“日志”功能和通过API连接到HA时,这些故障增加。没有,闪烁相当有限。原因在于我看到的中断句柄中。

为了解决这个问题,我尝试改用NeoPixelBus:

灯: - 平台:Neopixelbus类型:GRB Variant:WS2812X方法:ESP32_I2S_1引脚:GPIO4 NUM_LEDS:796名称:“楼梯”ID:楼梯

这对于有限数量的LED来说是完美的,但是,当超过350个LED被使用时,我很清楚NeoPixelBus是否与分区相结合。

为了解决这些问题,我做了无数的尝试。
玩不同的NeoPixelBus和FastLed库(当然不是同时):

platformio_options:
lib_deps:
- neopixelbus@2.6.0(顺便说一下,目前标准的分布2.5.7根本不起作用)
( - Asynctcp)
( - fitsled@3.4.0)

他们都没有解决这个问题。

我看到周围的最终建议正在使用中断处理,例如包括上面的一个之一# include“fitebled.h”在fastled_light.h:

#定义fastled_interrupt_retry_count.
#定义FASTLED_ALLOW_INTERRUPTS 0

不幸的是,要做到这一点并不容易,因为后续的库(在本例中是fastled_light.h)每次在编译时都会被覆盖,而源库是ESPHOME docker容器外的某个地方。

所以现在在解释后,我有一些问题是有人可以回答:

  1. 我更喜欢NeopixelBus,因为它通过DMA或其他非中断的方法处理到LED的输出,这是根解决方案。是否有可能以上述方式在ESP32与eSphome中完美地解决了〜800 LED?如何?

  2. 如果有标签是左侧的选项(其自身函数,而且使用毛刺),我如何通过上述内容的列入#定义对于fastquick中断,我不知道如何在HA ESPhome容器之外更改源库。

  3. 欢迎任何其他解决方案,如果您需要其他信息,请按照我在这里脱离创造力的短语......

请阅读这如何帮助我们帮助您 - 或者如何提出一个好问题并正确格式化代码。

谢谢,遵循你的建议。

1像

我有一个类似的设置598 SK6812(想要RGB +暖白色)在13级楼梯的情况下,但我运行它在WLED (ESP32)。伟大的工作;没有问题,与自定义mod可以点亮个人步骤在任何方向与反向关闭。

我不能从你的描述中知道闪烁的问题是什么,但它很可能与esphome, fasted等没有任何关系。从ESP32到第一个LED的数据线有多长?

谢谢tdw。我被认为是WLED,如果我无法解决这一点,那么它可能会跳转到那个,但是它非常焦点,它允许使用PIR传感器与HA的独立运行,同时最终有能力在需要时通过HA通过HA进行手动填写。

布线都很好,ESP和第一个LED之间的厘米也是厘米。我也玩了一个级别的变速器,但没有区别可以找到。其他诀窍是降低LED条带电压一点(我使用一个可调的PSU进行测试环境)来克服电平移位,但这也没有做到这招。

或者,我会跳转到削弱。WLED对我来说,证明这不是一个问题〜800 LED完美无缺的问题。我只能找到我找到一种方法来包括一些代码来创建自己的效果,因为我有一些特殊的愿望,为楼梯进行了优化。我只是相当有限的编码......

它非常容易闪烁,所以可能值得拍摄。如果问题仍然存在,您可以随时返回到eSphome。包括许多效果,并且有一些阶段特定的用户Mod可用。如果包含的效果不是您正在寻找的内容,则WLED Wiki非常清晰。

我相信您可以在WLED中使用标准奥里诺代码在WLED中添加传感器右键。我不使用它,但它恰好在与自定义效果相同。

编程是在Arduino IDE中完成的。有一个特殊的文件,usermod.cpp.,写自己的代码。(但是,如果您认为您的代码可能与许多用户相关,请随时直接编码并打开拉出请求)
此文件有三种空方法:

  • userSetup ()在加载设置后调用但在连接到WiFi之前。如果它不依赖于WiFi(IR,传感器,GPIO,...),则使用它启动自己的接口。

谢谢你的建议,我会深入研究的。以我目前的经验,我必须运行一些可寻址led在平滑的事情,我不得不说,Aircookie做了一个惊人的工作。

我在相当多的家庭灯中使用了一段时间并使用最近添加的部分。必须在HA中完成自动化,但时序并不是如此准确。这导致步骤在时平等地打开/关闭。另外我喜欢平滑的过渡,这在WLED中也是不可能的。看到一个小视频,其中我展示了它:

您不必通过HA自动化进行效果。

我不喜欢。在这个视频中,效果是在WLED中处理的,但是一个接一个地打开/关闭片段,对吗?如果不是,请给我一些建议,因为我没有找到其他方法。顺便说一下,这不是我们的主题,但是谢谢你的帮助。

我理解这个话题。检查一下混乱的不和谐。有一个用户mod的楼梯,你想做的部分。如果需要,你也可以创造自己的效果。祝你好运

我想分享进度。似乎“闪烁”的效果发生在大多数人身上,我在印象不容易解决这方面。随着这一主题的反馈,我决定搬到WLED并借助HA,结果现在变得令人满意。因为我是主题关闭,这里有一些视频来展示结果:

最令人印象深刻的:彩虹效应,每步细分:

从上面开始:

步骤打开和关闭:

影响:

4喜欢

你好,你介意分享一下你是如何配置wled和家政助理的吗?

问候