Skip to content

DivanX10/ESP-Philips-5400-Coffee-Machine

Repository files navigation

ESP-Philips-5400-Coffee-Machine


Выражаю благодарность участникам чата ESPHome и Умный дом с диваном, а также огромное спасибо Brokly за неоценимый вклад в данный проект, который написал код для управления кофемашиной.


Модификация и удаленное управление кофемашиной Philips 5400. Управление реализовано средствами UART и ESPHome.

Важно! Все материалы этого проекта (прошивки, схемы, 3D модели и т.п.) предоставляются "КАК ЕСТЬ". Всё, что вы делаете с вашим оборудованием, вы делаете на свой страх и риск. Автор не несет ответственности за результат и ничего не гарантирует. Модификация кофемашины требует вмешательства, что лишит автоматически вас гарантии на новую кофемашину.

Рабочие варианты кода для управления кофемашиной можно взять здесь (читайте комментарии в коде)


Что умеет делать интеграция?
  1. Включать и выключать кофемашину
  2. Выбрать кофейный напиток
    • Эспрессо
    • Эспрессо лунго
    • Кофе
    • Американо
    • Капучино
    • Латте макиато
    • Кофе с молоком
    • Кофе латте
    • Кафе крема
    • Ристретто
    • Кофе в дорогу
    • Кофе с молоком в дорогу
    • Молочная пена
    • Горячая вода
  3. Выбрать крепость кофе
  4. Выбрать зерно или молотый
  5. Выбрать количество порции, в том числе и ExtraShot
  6. Выбрать объем кофе
  7. Выбрать объем молока
  8. Отправлять собственные рецепты кофейных напитков
  9. Автоматическая работа отвода воды от носика кофемашины
  10. Калибровка сервопривода для отвода воды
  11. Сенсоры
    • Поддон
    • Зерно
    • Вода в контейнере
    • Контейнер кофейной гущи
    • Поддон и контейнер воды извлечены
    • Статус питания кофемашины (включена/выключена)
    • Статусы кофемашины (приготовление, наливаем кофе, наливаем молоко, перемалываем зерна и т.д)
    • Сенсор ошибки
    • Сенсор 90 для отображения пакета рецепта кофейных напитков, этот пакет можете использовать для создания своего любимого рецепта кофейного напитка
    • Сенсор выбранного кофейного напитка, обема кофе и молока
Добавление компонета Philips 5400 в ESPHome
external_components:
  - source:
      type: git
      url: https://github.com/DivanX10/ESP-Philips-5400-Coffee-Machine

При желании можно подключить компонент локально. Скачайте файлы в папку \esphome\components\

external_components:
  - source:
      type: local
      path: components
    components: [philips_series_5400]

Примеры отправки собственных кофейных напитков

Это чисто рекомендация и уведомление. Решение принимать вам. У данной модели любые изменения параметра напитка сохраняются в профиль, кроме гостевого профиля. Чтобы не перезаписывать профили, можете выбрать гостевой профиль и посылая рецепты на приготовление, изменения не будут перезаписаны. Когда отправляете любой напиток, на экране не будет отображаться выбранный вами напиток, а будет отображаться тот напиток, который вы выбирали последний раз на панели управления кофемашины. Если не трогали экран, то по умолчанию будет выбираться первый напиток, это эспрессо

Если включить сенсор Messge2 90, то в нем будет отображаться пакет кофейного напитка. Вы можете это использовать для своих рецептов. Просто скопируйте все байты, кроме первых трех (пример на скриншоте, выделено красным)

image

Вы можете создавать любые рецепты используя таблицу протокола кофейных напитков в Excel

button:

#Пример кода для отправки кофейного напитка Кофе Max 150ml. Пакет рецепта копируется с сенсора Messge2 90, отсеиваем только первые 3 байта
#Напиток: Кофе. Зерно: Максимум. Кофе: 150 мл.
  - platform: template
    name: "Кофе Max 150ml"
    icon: mdi:coffee
    on_press:
      - lambda: |-
          {
            uint8_t data[]={0x00, 0x03, 0x00, 0x02, 0x02, 0x00, 0x96, 0x00, 0x00, 0x00};
            id(philip)->prepare(data);
          }


#Пример кода для отправки кофейного напитка Американо молотый 90ml. Пакет рецепта копируется с сенсора Messge2 90, отсеиваем только первые 3 байта
  - platform: template
    name: "Американо молотый 80ml"
    icon: mdi:coffee
    on_press:
      - lambda: |-
          {
            uint8_t data[]={0x01, 0x00, 0x00, 0x02, 0x03, 0x00, 0x28, 0x00, 0x28, 0x00};
            id(philip)->prepare(data);
          }


#Пример кода для отправки кофейного напитка Кофе с молоком 150/120ml. Пакет рецепта копируется с сенсора Messge2 90, отсеиваем только первые 3 байта
  - platform: template
    name: "Кофе с молоком Max 150/120ml"
    icon: mdi:coffee
    on_press:
      - lambda: |-
          {
            uint8_t data[]={0x02, 0x03, 0x00, 0x02, 0x01, 0x02, 0x96, 0x00, 0x78, 0x00};
            id(philip)->prepare(data);
          }


Встраиваем ESP

Снимаем панель управления. Снимается не сложно. Чуть тянем на себя, в эти точки вставляем пластиковую лопатку и вынимаем панель

image

Нам нужен доступ к 8-ми жильному проводу, который нужно подключить к ESP.

image image image

Подключаем по схеме на выбор, через реле или через оптопару. Сервопривод подключаем по желанию, он нужен для работы отвода воды от носика.

Общая схема подключения без реле и оптопары. Просто подключение ESP32 к кофемашине

image


Схема с подключением реле 5В (KY-019)

image


Cхема с подключением оптопары PC817C

image

Разбираем панель управления

Почему именно я разобрал панель управления и подключил реле, и почему не оптопару? Были попытки найти решение включить кофемашину без разборки панели управления. Пробовал размыкать питание через транзистор, пробовал посылать посылать команды, но это было безуспешно.

Подключал резистор по такой схеме, но этот способ работает на кофемашине серии 2000/3000, но не подошел для серии 5400. Для справки, есть два проекта для кофемашин серии 2000, это ESPHome-Philips-Smart-Coffee и SmartPhilips2200

Снимаем наклейку с чипа и видим маркировку с названием чипа STM32L4R5VIT6

image image

В документации чипа STMicroelectronics STM32L4R5VIT6 находим наш чип, это STM32L4R5VIT6 LQFP100 (25 ножек с каждой стороны)

image

В документации пишется, что управлять кофемашиной байтами можно после включения, поэтому у меня и не получилось включить ее удаленно. Возможно я ошибаюсь и если будет найдено такое решение, то обязательно внесу поправку

image


Для имитации работы сенсорной кнопки можно использовать модуль реле одноканальный 5В (KY-019) или оптопару PC817C, которые будут подавать GND на резистор R110, к которому идет дорожка от кнопки питания, тем самым включая и выключая кофемашину. Я не стал рисковать припаивать провод после резистора R110 (номинал резистора 4,7 кОм), так как после резистора идет прямая дорожка к ножке чипа, а лампе к конденсаторам и я не знаю как чип может на это отреагировать, но, если так сделать, то тогда у нас будет возможность включать кофемашину через сенсорную кнопку и удаленно. Это было проверенно на сенсорной лампе, где я припаял провода после резистора и я мог включать и выключать удаленно, а также включать и выключать лампу нажимая на сенсорную кнопку. На кофемашине я не решаюсь это повторить.

Панель управления в разборе

image image

Дорожка от кнопки питания к резистору R110(номинал резистора 4,7 кОм), после резистора дорожка идет к диоду шоттки BAS70TW (K73)

image image image

Припаиваем провод к резистору R110(номинал резистора 4,7 кОм)

image

Делаем отверстие в крышке и выносим провод наружу, который подключим к реле или к оптопаре

image

Расшифровка протокола

Мне удалось расшифровать часть протоколов, если вы найдете что-то новое, сообщите мне об этом обновлю информацию. Создайте ишью и опишите подробно про протокол.

Краткое описание функции протоколов

  • AA:AA:AA:90 - рецепты кофейных напитков
  • AA:AA:AA:91 - счетчик приготовления кофейных напитков
  • AA:AA:AA:93 - счетчик приготовления кофейных напитков
  • AA:AA:AA:B0 - системные сенсоры
  • AA:AA:AA:B5 - счетчик объема кофе и молока для приготовления кофейных напитков
  • AA:AA:AA:BA - не смог расшифровать
  • AA:AA:AA:BB - не смог расшифровать
  • AA:AA:AA:FF - данные с ЖК экрана
  • AA:AA:AA:FE - включение и выключение кофемашины

AA:AA:AA:FE - этот пакет AA:AA:AA:FE:00:00:C8:87:1B:40:55 встречается два раза, в самом начале, он идет первым, когда включаем кофемашину и при выключении

AA:AA:AA:90 - протокол кофейных напитков

image image

AA:AA:AA:91 - протокол счетчика кофейных напитков. Это просто учет сделанных кофейных напитков и учет сбрасывается, когда кофемашина выключается. Сделали одну чашку кофе, сработал счетчик и выставил допустим 1, потом сделали еще чашку кофе, снова сработал счетчик и выставил 2. Чтобы удаленно запускать приготовление кофейных напимтков, нужно запускать на +1 к тому, что в счетчике. Без учета этого счетчика не будет срабатывать приготовление кофейных напитков удаленно

image

AA:AA:AA:B0 - протокол системных сенсоров: контейнер кофейной гущи, воды, поддона, анличие зерна, статусы приготовления кофе, статусы заварного блока

image

AA:AA:AA:B5 - протокол счетчика кофейных напитков. Считает в секундах объем налитого кофе и молока

image

Отвод воды носика кофемашины

Я разработал для кофемашины отвод воды от носика. Зачем это нужно? Когда включаем кофемашину, то при включении запускается прогрев и промывка. Во время промывки большая часть воды проходит внутри, а часть выливается через носик. Что делать, если мы хотим, чтобы утром кофемашина приготовила нам свежее кофе и чтобы в кофе не было воды после промывки? Отвод воды позволяет решить эту проблему. Когда кофемашина включается с помощью умного дома, то отовод воды все еще остается у носика вполть до того момента, когда кофемашина не передейдет в режим "Выбор напитка", только после этого отвод воды прячется во внутрь носика, открывая проход носику.

Готовую модель для распечатки на 3д принтере можете здесь или скачать с этого проекта. Файлы формата FCStd можете открыть в программе FreeCAD.

Используется сервопривод MG90S Micro Servo 180 градусов. Его вполне достаточно для отвода воды. Питаем от +3,3в от самого ESP, что является большим плюсом. Провод от сервопривода во внутрь протягивается просто, без сверления корпуса. Протискиваем провод во внутрь держателя носика и тянем к внутренней части корпуса к ESP

image image

Панель управления в Home Assistant

image image image

Скопируйте код отсюда, а после создайте карточку

Код карточки

entity: sensor.coffee_machine_power_status
type: custom:multiple-entity-row
name: Статус
icon: mdi:coffee-maker
state_color: true
show_state: false
secondary_info:
  attribute: Making coffee
entities:
  - entity: group.kitchen_coffee_machine_info_and_menu
    name: Меню
    state_color: true
    icon: mdi:information-outline
    styles:
      height: 60px
      width: 50px
  - entity: group.kitchen_coffee_machine_coffee_drinks
    name: Напитки
    state_color: true
    icon: mdi:coffee
    styles:
      height: 60px
      width: 50px
  - entity: switch.coffee_philips_5400_valve_open_closed
    name: Клапан
    type: switch
    tap_action:
      action: toggle
    icon: mdi:coffee-maker-outline
    state_color: true
    styles:
      height: 60px
      width: 50px
  - entity: binary_sensor.coffee_philips_5400_power_status
    name: Питание
    icon: mdi:gesture-tap-button
    state_color: true
    tap_action:
      action: call-service
      service: script.kitchen_coffee_machine_power
    styles:
      height: 60px
      width: 50px

About

ESP Philips 5400 Coffee Machine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published