المصابيح الملونة عنوان للعام الجديد دون الحاجة إلى البرمجة واللحام

يأتي العام الجديد قريبًا ، لكن المزاج لأسباب مختلفة لا يكون أحيانًا هو رأس السنة الجديدة ، وهنا تضيء إضاءة السنة الجديدة. أريد أن أتحدث عن تجربتي مع أكاليل وأشرطة LED القابلة للعنونة. من غير المحتمل أن أكتشف أمريكا ، لكن اتضح أن ذلك جميل وغير مكلف.



سوف أفكر في خيارين - بشكل منفصل دون أتمتة المنزل الحالية والعمل جنبا إلى جنب مع "المنزل الذكي".


لقد ظهر الكثير من المعلومات المهيكلة على شرائط LED القابلة للعنونة ، وبالتالي يمكنك بسهولة اتخاذ قرار مستنير. على سبيل المثال ، قبل الشراء ، شاهدت بعناية مقاطع الفيديو المقابلة من قناتي DrZzs (باللغة الإنجليزية) و The Hook Up (باللغة الإنجليزية) وأنتجت استنتاجات حول تكلفة الأشرطة الضرورية - لأن نتيجة عمل الأشرطة في حالتي هي تسليط الضوء على الألوان.


اختار خيارين غير مكلفين من الصين:


  1. شريط WS2812B - 300 مؤشر ضوئي - 5 أمتار.
  2. WS2811 Garland - 50 مؤشر LED × 3 قطع - حوالي 10 أمتار (3 × 3.3 م)


عنوان بكسل في مكتب الداخلية


في كلتا الحالتين ، مطلوب 5 فولت لتشغيل أشرطة بلدي. لم أكن أعتمد على الطاقة ، لكنني قمت بتثبيت وحدة تزويد الطاقة Mean Well RS-150-5 الموجودة بالفعل وبأسعار معقولة.



وحدة امدادات الطاقة Mean Well RS-150-5


الجزء الأكثر أهمية لإدارة برنامج السنة الجديدة هو وحدة التحكم. لقد اخترت متحكم ESP8266 الخاص بالمصنع الصيني Espressif Systems ، وهو في حالتي كنت أستخدم لوحة مصغرة LOLIN (WEMOS) D1 غير مكلفة.



يتقلص LOLIN (WEMOS) D1 مصغرة متصلاً بشريط على شجرة عيد الميلاد


خردوات


بالنسبة إلى الشرائط والأكاليل ، يوجد خيار واسع للغاية - فهناك عدد كبير من الشرائح المختلفة وتحتاج إلى البحث حتى تدعم وحدة التحكم الأشرطة التي ستشتريها.
كانت مهمتي هي استخدام أشرطة بكسل العنوان كجزء من التشغيل الآلي بناءً على مساعد النظام الأساسي المفتوح المصدر. الخيار الأكثر بأسعار معقولة لهذا هو استخدام ESP8266. هناك قاعدة بيانات كبيرة من وحدات التحكم المتوافقة الصنع في المصنع (قسم LED LED) ، التي تم تجميعها من قبل مؤلفي البرامج الثابتة Tasmota.
في رأيي ، تعتبر Tasmota من البرامج الثابتة الجيدة ، ولكنها ليست مناسبة جدًا بالنسبة للبكسلات ومحركات السائر .



LOLIN (WEMOS) D1 mini متصل بإكليل


البرمجيات


الخيار دون أتمتة المنزل


إذا كنت تريد بداية سريعة "بدون تسجيل ورسالة نصية قصيرة" ، فإن الحل الأكثر منطقية هو البرامج الثابتة ESP8266 بواسطة مشروع WLED (WiFi WiFi Effects Driver) . يحتوي البرنامج الثابت على تطبيق خاص به يسمح لك بالتحكم بسهولة في LEDs ، فضلاً عن قائمة ضخمة من التأثيرات المحددة مسبقًا لشرائط العناوين وأكاليل الزهور. يدعم WLED أيضًا العديد من بروتوكولات الإدارة ، بما في ذلك MQTT ، إذا لزم الأمر.
لحام لتوصيل الشريط إلى WEMOS غير مطلوب.



واجهة WLED (برنامج تشغيل تأثيرات الإضاءة WiFi)


الإضاءة المستهدفة كجزء من المنزل الذكي على أساس مساعد المنزل


تجدر الإشارة إلى أن WLED مؤخرًا (في ديسمبر 2019) بدا التكامل الكامل لمساعد المنزل .
ولكن ، منذ أن شاركت في أكاليل في نوفمبر ، قبل ظهور هذا الدمج ، بدا لي اتصال مساعد المنزل <--> WLED MQTT بعربات التي تجرها الدواب.



ESPHome لوحة التحكم


بالنسبة إلى Home Assistant ، يوجد برنامج ESPHome أصلي يعمل مع Home Assistant دون MQTT كما أنه يدعم LEDs الخاصة بالعناوين.


فيما يلي قائمة بالشرائح المدعومة.

Clockless:
NEOPIXEL
WS2811
WS2811_400 (WS2811 بمعدل ساعة يبلغ 400 كيلو هرتز)
WS2812B
WS2812
WS2813
WS2852
APA104
APA106
GW6205
GW6205_400 (GW6205 بمعدل ساعة قدره 400 كيلو هرتز)
LPD1886
LPD1886_8BIT (LPD1886 مع قيم قناة اللون 8 بت)
PL9823
SK6812
SK6822
TM1803
TM1804
TM1809
TM1829
UCS1903B
UCS1903
UCS1904
UCS2903


SPI:
APA102
DOTSTAR
LPD8806
P9813
SK9822
SM16716
WS2801
WS2803


منذ أن استخدمت صورة Hass.io ، استخدمت الخيار الأبسط لتجميع البرامج الثابتة - الوظيفة الإضافية ESPHome Hass.io.



نافذة محرر البرامج الثابتة ESPHome


أكاليل وأشرطة البرامج الثابتة الناتجة:


ws2811_string.yaml
substitutions: devicename: ws2811_string upper_devicename: WS2811 string esphome: name: $devicename platform: ESP8266 board: d1_mini wifi: ssid: "XXX" password: "XXX" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "WS2811 string Fallback Hotspot" password: "XXX" captive_portal: web_server: port: 80 css_url: http://192.168.15.10:8123/local/webserver-v1.min.css #   -        https://github.com/esphome/issues/issues/648 js_url: http://192.168.15.10:8123/local/webserver-v1.min.js # Enable Home Assistant API api: # Enable OTA Access ota: # Enable verbose logging over serial logger: light: - platform: fastled_clockless chipset: WS2811 pin: D4 num_leds: 150 name: " WS2811" effects: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 30 width: 150 - addressable_color_wipe: name: Color Wipe Effect With Custom Values colors: - red: 10% green: 10% blue: 100% num_leds: 1 - red: 0% green: 0% blue: 0% num_leds: 1 add_led_interval: 100ms reverse: False - random: name: "My Fast Random Effect" transition_length: 4s update_interval: 5s - strobe: name: Strobe Effect With Custom Values colors: - state: True brightness: 100% red: 100% green: 90% blue: 0% duration: 500ms - state: False duration: 250ms - state: True brightness: 100% red: 0% green: 100% blue: 0% duration: 500ms - addressable_scan: name: Scan Effect With Custom Values move_interval: 60ms - addressable_fireworks: name: Fireworks Effect With Custom Values update_interval: 32ms spark_probability: 10% use_random_color: false fade_out_rate: 120 #     sensor: - platform: uptime id: uptime_sec - platform: wifi_signal name: ${upper_devicename} WiFi Signal id: wifis_signal update_interval: 900s text_sensor: - platform: template name: ${upper_devicename} Uptime lambda: |- int seconds = (id(uptime_sec).state); int days = seconds / (24 * 3600); seconds = seconds % (24 * 3600); int hours = seconds / 3600; seconds = seconds % 3600; int minutes = seconds / 60; seconds = seconds % 60; return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() }; icon: mdi:clock-start update_interval: 113s - platform: template name: ${upper_devicename} Wifi Strength icon: "mdi:wifi" lambda: |- if (id(wifis_signal).state > -50 ) { return {"Excellent"}; } else if (id(wifis_signal).state > -60) { return {"Good"}; } else if (id(wifis_signal).state > -70) { return {"Fair"}; } else if (id(wifis_signal).state < -70) { return {"Weak"}; } else { return {"None"}; } update_interval: 900s - platform: version name: ${upper_devicename} Version - platform: template name: ${upper_devicename} MAC Address lambda: 'return {WiFi.macAddress().c_str()};' icon: mdi:fingerprint update_interval: 1d switch: - platform: restart name: ${upper_devicename} Restart 

ws2811_strip.yaml
 substitutions: devicename: ws2811_strip upper_devicename: WS2811 strip esphome: name: $devicename platform: ESP8266 board: d1_mini_lite wifi: ssid: "XXX" password: "XXX" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "WS2811 strip Fallback Hotspot" password: "XXX" captive_portal: web_server: port: 80 css_url: http://192.168.15.10:8123/local/webserver-v1.min.css #   -        https://github.com/esphome/issues/issues/648 js_url: http://192.168.15.10:8123/local/webserver-v1.min.js # Enable Home Assistant API api: # Enable OTA Access ota: # Enable verbose logging over serial logger: light: - platform: fastled_clockless chipset: WS2811 pin: D4 num_leds: 300 rgb_order: GRB name: " WS2811" effects: - addressable_rainbow: name: Rainbow Effect With Custom Values speed: 30 width: 300 - addressable_color_wipe: name: Color Wipe Effect With Custom Values colors: - red: 10% green: 10% blue: 100% num_leds: 1 - red: 0% green: 0% blue: 0% num_leds: 1 add_led_interval: 100ms reverse: False - random: name: "My Fast Random Effect" transition_length: 4s update_interval: 5s - strobe: name: Strobe Effect With Custom Values colors: - state: True brightness: 100% red: 100% green: 90% blue: 0% duration: 500ms - state: False duration: 250ms - state: True brightness: 100% red: 0% green: 100% blue: 0% duration: 500ms - addressable_scan: name: Scan Effect With Custom Values move_interval: 60ms - addressable_fireworks: name: Fireworks Effect With Custom Values update_interval: 32ms spark_probability: 10% use_random_color: false fade_out_rate: 120 #     sensor: - platform: uptime id: uptime_sec - platform: wifi_signal name: ${upper_devicename} WiFi Signal id: wifis_signal update_interval: 900s text_sensor: - platform: template name: ${upper_devicename} Uptime lambda: |- int seconds = (id(uptime_sec).state); int days = seconds / (24 * 3600); seconds = seconds % (24 * 3600); int hours = seconds / 3600; seconds = seconds % 3600; int minutes = seconds / 60; seconds = seconds % 60; return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() }; icon: mdi:clock-start update_interval: 113s - platform: template name: ${upper_devicename} Wifi Strength icon: "mdi:wifi" lambda: |- if (id(wifis_signal).state > -50 ) { return {"Excellent"}; } else if (id(wifis_signal).state > -60) { return {"Good"}; } else if (id(wifis_signal).state > -70) { return {"Fair"}; } else if (id(wifis_signal).state < -70) { return {"Weak"}; } else { return {"None"}; } update_interval: 900s - platform: version name: ${upper_devicename} Version - platform: template name: ${upper_devicename} MAC Address lambda: 'return {WiFi.macAddress().c_str()};' icon: mdi:fingerprint update_interval: 1d switch: - platform: restart name: ${upper_devicename} Restart 

بعد إضافة الأجهزة الناتجة إلى Home Assistant في الواجهة ، يمكنك رؤية وتعيين خيارات التأثيرات.



مساعد واجهة المنزل


أيضا ، يمكن استخدام الآثار في التشغيل الآلي. على سبيل المثال ، عندما تفتح الباب لمدة 30 ثانية ، يكون هناك تأثير واحد ، و 10 ثوان ، وتأثير آخر ، ثم إيقاف التشغيل حتى لا تشتت انتباهك. ولكن هناك شرط: إدراج فقط عندما يكون الشارع بالفعل الشفق.


automations.yaml
 ################################################### # # # WS2811 :    # # # ################################################### - alias: WS2811 string trigger: - platform: state entity_id: binary_sensor.dver from: 'off' to: 'on' condition: - condition: numeric_state entity_id: 'sensor.osveshchennost_u_okna' below: 1500 # action: - service: homeassistant.turn_on data: entity_id: group.new_year #light.girlianda_ws2811 brightness: 255 effect: Rainbow Effect With Custom Values - delay: '00:00:25' - service: homeassistant.turn_on data: entity_id: group.new_year brightness: 255 effect: Color Wipe Effect With Custom Values - delay: '00:00:13' - service: homeassistant.turn_off entity_id: group.new_year - alias: Table lamp ON trigger: - platform: state entity_id: binary_sensor.dver from: 'off' to: 'on' condition: - condition: numeric_state entity_id: 'sensor.osveshchennost_u_okna' below: 90 # action: - service: homeassistant.turn_on entity_id: switch.potolochnaia_lampa - alias: Table lamp OFF trigger: - platform: state entity_id: binary_sensor.dver from: 'on' to: 'off' condition: [] action: - service: homeassistant.turn_off entity_id: switch.potolochnaia_lampa 


شجرة عيد الميلاد مع عنوان الصمام قطاع


يؤدي


كما ترون ، مع بعض البراعة ، يمكنك تنظيم إضاءة العام الجديد بثمن بخس وتناسبها في نظام "المنزل الذكي" الحالي أو استخدامها بشكل منفصل دون التشغيل الآلي للمنزل باستخدام تطبيق منفصل على هاتفك الذكي.


مزيد من التفاصيل يمكن الاطلاع على جيثب .


بواسطة: ميخائيل شاردين ،
23 ديسمبر 2019

Source: https://habr.com/ru/post/ar481566/


All Articles