Ночник за 10$ — добавляем ESPHome для управления в Home Assistant

Были куплены ночники по 10$ за штуку на али, специально для переделки под esp8266

Вот такие:

Внутри находится плата со светодиодами RGBWW и батареей 18650, сверху расположен тач сенсор:

Начнем подключать esp8266

Для начала я припаял землю (GND — черный провод) и плюс (VCC — фиолетовый провод). Именно на этой ножке чипа плюс есть всегда — и от сети, и от батареи

Позже подключил питание esp8266 не напрямую, а используя переключатель на плате. Так намного удобнее. Подробнее тут.

Дальше припаял контакты для управления светодиодами. На фото отметил куда именно припаял. Цвет проводов соответствует цветам led:

Теперь подключим это к esp8266. У меня это плата NodeMCU:

Схема подключения:

GND LED  >  GND ESP8266
VCC  LED  >  Vin (5v) ESP8266

RED LED       >  D5 ESP8266
GREEN LED  >  D6 ESP8266
BLUE    LED  >  D7 ESP8266
WHITE  LED  >  D8 ESP8266

Теперь в ESPHome делаем прошивку со следующей конфигурацией:

esphome:
  name: bedroom_bedside_nightlight1
  platform: ESP8266
  board: nodemcuv2
  esphome_core_version: latest

# Wifi
wifi:
  ssid: '*****'
  password: '*****'
  reboot_timeout: 60min
  manual_ip:
    static_ip: ***.***.***.***
    gateway: ***.***.***.***
    subnet: ***.***.***.***

# log
logger:

# Home Assistant API
api:
  password: '*****'

ota:
  password: '*****'

# led pins
output:

  - platform: esp8266_pwm
    id: output_red
    pin: D5
    max_power: 0.75


  - platform: esp8266_pwm
    id: output_green
    pin: D6
    max_power: 0.75


  - platform: esp8266_pwm
    id: output_blue
    pin: D7
    max_power: 0.75
    

  - platform: esp8266_pwm
    id: output_white
    pin: D8
    max_power: 0.75

# light
light:
  - platform: rgbw
    name: bedroom_bedside_nightlight1
    red: output_red
    green: output_green
    blue: output_blue
    white: output_white
    effects:
      - strobe:
      - flicker:
      - random:

# sensors
sensor:

# signal wifi
  - platform: wifi_signal
    name: bedroom_bedside_nightlight1_wifi
    update_interval: 15s

# nightlight ip
text_sensor:
  - platform: wifi_info
    ip_address:
      name: bedroom_bedside_nightlight1_ip

и проверяем:

Клеевым пистолетом я приклеил все провода к плате, чтобы не оторвались, и esp к ножке ночника:

Единственное, что я не сделал, так это не смог разобраться с верхним сенсором, в планах купить ему на замену готовый модуль на али, чтобы управлять ночником не только из Home Assistant, но и физически, тачем.

Update 18.12.2020:

Тач сенсор для esp8266 я встроил уже давно, не находил время написать об этом. Для этого использовал вот такой сенсор ttp223:

В его подключении нет ничего сложного, но про него можно рассказать много интересного. Возможно позже этим займусь.

Я его посадил на клей взамен штатного тача, вот таким образом:

Вывел его в плоскость с крышкой и он отлично работает уже второй год

Принцип управления одним тачем — на прикосновение включение/отключение, на долгое нажатие изменение яркости. Если ночник выключен — он включится и будет увеличивать яркость до максимума, а если включен и держать тач — будет уменьшать, пока не выключится. Итоговый конфиг для ESPHome получился следующий:

esphome:
  name: bedroom_bedside_nightlight1
  platform: ESP8266
  board: nodemcuv2

# Wifi
wifi:
  ssid: 'WRLS'
  password: 'pass'

logger:

api:
  password: 'bedroom_bedside_nightlight1'

ota:
  password: 'bedroom_bedside_nightlight1'

# Пины светодиодов
output:

  - platform: esp8266_pwm
    id: output_red
    pin: D5
    max_power: 0.75


  - platform: esp8266_pwm
    id: output_green
    pin: D6
    max_power: 0.75


  - platform: esp8266_pwm
    id: output_blue
    pin: D7
    max_power: 0.75
    

  - platform: esp8266_pwm
    id: output_white
    pin: D8
    max_power: 0.75

# Ночник
light:
  - platform: rgbw
    name: bedroom_bedside_nightlight1
    id: bedroom_bedside_nightlight1
    red: output_red
    green: output_green
    blue: output_blue
    white: output_white
    effects:
      - strobe:
      - flicker:
      - random:

# Датчики
binary_sensor:
  - platform: gpio
    pin: 
      number: D1
    name: bedroom_nightlight1_light_button
    id: bedroom_nightlight1_light_button
    on_click:
      then:
      - light.toggle: bedroom_bedside_nightlight1

# Автоматизация для изменения яркости
    on_press:
      then:
      - if:
          condition: 
            light.is_off: bedroom_bedside_nightlight1
          then:
          - delay: 0.5s
          - while:
              condition:
                binary_sensor.is_on: bedroom_nightlight1_light_button
              then:
                - light.dim_relative:
                    id: bedroom_bedside_nightlight1
                    relative_brightness: 5%
                    transition_length: 0.1s
                - delay: 0.1s
          else:
          - delay: 0.5s
          - while:
              condition:
                and:
                  - binary_sensor.is_on: bedroom_nightlight1_light_button
                  - light.is_on: bedroom_bedside_nightlight1
              then:
                - light.dim_relative:
                    id: bedroom_bedside_nightlight1
                    relative_brightness: -5%
                    transition_length: 0.1s
                - delay: 0.1s

Как видно по конфигу, для тача я задействовал пин D1:

Для питания 3.3в от NodeMCU:

Также были куплены наклейки на крышку в области тача взамен родных:

В таком виде ночники работают уже второй год, но есть свои нюансы. Во первых, и самое неудобное — я не задействовал родную кнопку включения/выключения питания в нижней части ночника:

В текущем виде этот переключатель управляет питанием светодиодов от батареи. После отключения ночника от сети на продолжительное время батарея садится и есп отключается.  И не важно, что батарея потом будет заряжена — есп не стартовала. Мне уже несколько раз приходилось откручивать крышку и отсоединять питание самой есп, чтобы при обратном подключении она запустилась. Понимаете, насколько это неудобно. Исправлено, подробнее тут.

Второй нюанс — тач. А точнее то, что он всего один. Смотря на комментарии к этой записи я стал подумывать о замене esp8266 на esp32 для возможности подключения родной тач-панели. Еще esp32 будет полезна для реализации присутствия в комнате через BLE, что тоже для меня интересно. Поэтому в ближайшее время планирую ставить ESP32 + родной тач и покажу как задействовать родной переключатель питания для отключения есп.

Поделитесь с друзьями
Подписаться
Уведомить о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

31 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Ренат
Ренат
5 лет назад

Для штатного тача стоит заменить nodemcu на esp32. Там есть поддержка из коробки тачевых кнопок. А дальше дело техники и правил.

Эдуард
Эдуард
4 лет назад

Здравствуйте! Помогите пожалуйста. Никак не получается создать прошивку в ESPHome для платы esp32doit-devkit-v1. Какую платформу указать? И какие пины? Платформы esp8266_pwr в ESP32 нет.

Эдуард
Эдуард
4 лет назад
Ответить на  kvv

Спасибо! Может прошивку выложите, пожалуйста.

Эдуард
Эдуард
4 лет назад
Ответить на  kvv

Правильно?
# led pins

output:

# output_red
— platform: ledc
id: gpio_5
pin: GPIO5
max_power: 0.75

# output_green
— platform: ledc
id: gpio_18
pin: GPIO18
max_power: 0.75

# output_blue
— platform: ledc
id: gpio_19
pin: GPIO19
max_power: 0.75

# output_white
— platform: ledc
id: gpio_21
pin: GPIO21
max_power: 0.75

# light
light:
— platform: rgbw
name: bedroom_bedside_nightlight1
red: gpio_5
green: gpio_18
blue: gpio_19
white: gpio_21
effects:
— strobe:
— flicker:
— random:

# sensors
sensor:

# signal wifi
— platform: wifi_signal
name: bedroom_bedside_nightlight1_wifi
update_interval: 15s

# nightlight ip
text_sensor:
— platform: wifi_info
ip_address:
name: bedroom_bedside_nightlight1_ip

Александр
Александр
4 лет назад

Я правильно понимаю, что ‘из коробки’ этот ночник тачем плавно цвет менять не умеет и дает только 7 цветов?

Последний раз редактировалось 4 лет назад Александр ем
Александр
Александр
4 лет назад
Ответить на  kvv

Судя по статье управление цветом с тача сделать не получилось?

Александр
Александр
4 лет назад
Ответить на  kvv

А вы можете дописать статью или сделать вторую часть (про ESP8266 + верхний тач)?

Александр
Александр
4 лет назад
Ответить на  kvv

Т.е. вы поставили 7 тачевых кнопок с Али?

Александр
Александр
4 лет назад
Ответить на  kvv

Понял. Буду ждать дополнения статьи. Спасибо.

Александр
Александр
4 лет назад
Ответить на  kvv

Приехал мне вчера такой ночник. По регулировке цвета. Сенсоров цвета там 6. И, похоже, он умеет делать полутона между ними когда срабатывают два соседних сенсора. Хочется сохранить регулировку цвета с тача. Даташит на МС сенсора я не нашел, но судя по схеме включения она видимо выдает готовые управляющие сигналы на ключи светодиодов. Т.е. использовать ее не получится. Но есть такая микруха TTP226. Старшая сестра TTP223, но с 8 кнопками. Умеет: мультитач; работать в режиме 8*1, 4*2, 3*3; и по последовательному интерфейсу. Китайцы на Али продают и саму МС, и модули на ее основе. Т.е. можно от модуля сенсорные площадки отрезать… Подробнее »

Последний раз редактировалось 4 лет назад Александр ем
Александр
Александр
4 лет назад

Добрый день.
Подскажите можно где-то прочитать про настройку ESPHome на русском?

Леонид Голубцов
Леонид Голубцов
3 лет назад

подскажите, каким образом выяснили куда именно припаяться для управления светодиодами? есть одна игрушка, ещё не вскрывал, не хочется сходу взять и всё сломать)

GoR
GoR
3 лет назад

Привет.Подскажите как подключить сенсорную кнопку к есп8266? На какие пины и что прописать?

GoR
GoR
3 лет назад
Ответить на  kvv

Спасибо огромное буду пробовать

GoR
GoR
3 лет назад
Ответить на  GoR

Здравствуйте. У меня опять вопрос. Сверху прочитал,что если использовать есп32,то можно оставить и родной тач? Жене и ребенку понравилась лампа просят оставить. Можно ли как то это сделать?

GoR
GoR
3 лет назад
Ответить на  kvv

Да похоже придется еще заказывать))

GoR
GoR
3 лет назад
Ответить на  kvv

Ждём с нетерпением продолжение про ESP32

kiv
kiv
3 лет назад

Классно придумали!
Я очень хочу световой будильник, который можно легко брать в поездки.

Я полный новичок в этом деле и есть пара вопросов:

  1. Есть ли возможность запрограммировать режим рассвета, как в световых будильниках филипс (красный-оранжевый-желтый-белый)? Вот пример работы https://www.youtube.com/watch?v=ms3t1Lc1gMI. Таких же классных аналогов не нашла.
  2. Можно ли настроить, чтобы по тачу был рассвет через 8 часов? Чтобы как бы был автономный светильник, без подключения к сети.

Благодарю за такую крутую статью. Интересно будет посмотреть с esp32.
С наступающим Новым годом! 🙂

kiv
kiv
3 лет назад
Ответить на  kvv

Спасибо за подробный ответ!
Посмотрела пару видео у Гайвера, поняла, что все можно сделать, но боюсь, что реализация этого займет много времени.
Буду следить за вашими проектами!)

kiv
kiv
3 лет назад
Ответить на  kvv

а esp32 будет интереснее, т.к. достаточно будет телефона с подключением bluetooth, не нужно будет постоянно подключаться к wi-fi