diff --git a/README.md b/README.md index 4850b54..34b057d 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,14 @@ Currently supported Coffee Machine models include: |Series 2200| `EP2220`, `EP2235` | |Series 3200| `EP3243`, `EP3246` | +My modified `EP2220`: +![Modified Coffee Machine](images/machine_inside.jpg) +More information about the PCB used in this image is available [here](#custom-pcb). + This component provides a `Power Switch`, a `Status sensor` and various `Buttons` which simulate user input as well as a `Number` component to customize beverage settings such as size and strength. The `Power Switch` can be used to turn on the coffee machine with and without a cleaning cycle during startup. -![Provided entities in HomeAssistant](ha_entities.png) +![Provided entities in HomeAssistant](images/ha_entities.png) You might break/brick your coffee machine by modifying it in any way, shape or form. If you want to use this component, do so at your own risk. @@ -104,8 +108,8 @@ The RX/TX lines are piped through the ESP such that messages can be read, interc When injecting a 'turn coffee machine on' command, the coffee machine does turn on, but the display unit does not. To circumvent this behavior we can re-boot the display unit by temporarily removing it's power. Thus the display will power on and operate normally. To perform this operation a transistor or MOSFET can be used. -The following wiring guideline can be used to add a Wemos D1 Mini to the coffee machine. **The unlabeled wires should be connected without changes.** -![Wiring guide](wiring.png) +The following wiring guideline can be used to add a Wemos D1 Mini to the coffee machine. **The unlabeled wires should be connected without changes.** More schematics are available [here](#custom-pcb). +![Wiring guide](images/wiring.png) The ribbon cable wires have the following functionalities. @@ -124,6 +128,17 @@ The ribbon cable wires have the following functionalities. The Wemos D1 Mini has a built in Voltage regulator, thus connecting it to the 5V provided by the mainboard is no problem. If you use a different ESP Module/Board please make sure it is 5V tolerant or use a Voltage regulator. Otherwise you might release magic smoke. +# Custom PCB + +This project has convinced me to design my first PCB (printed circuit board). This rather simple ESP8266-12F-based design was inspired by the Wemos D1 Mini, which I was using previously. +When using this PCB the ribbon cable connecting the mainboard to the display must not be cut in half and no soldering is required. + +![PCB Front side](images/pcb.jpg) + +The Schematics, PCB Layout and BOM are available [here on oshwlab.com](https://oshwlab.com/tillf/philips-smart-coffee-pcb) and an accompanying 3D-printable case for the small PCB is available [here on printables.com](https://www.printables.com/model/826691-smart-coffee-pcb-case). The SMD components were chosen such that they can still be hand-soldered without a hot-air station or reflow oven, given a little experience. Since this is my first design there may be mistakes and things that could be optimized. Everything is provided as is, without warranty or liability of any kind. + +There are also other PCB designs like [this one](https://oshwlab.com/tradstaat/coffeepcb) which relies on using a Wemos D1 Mini and does not require soldering SMD components. + # Communication protocol More information on the communication protocol used by this component can be found [here](protocol.md). diff --git a/ha_entities.png b/ha_entities.png deleted file mode 100644 index a7dba5a..0000000 Binary files a/ha_entities.png and /dev/null differ diff --git a/images/ha_entities.png b/images/ha_entities.png new file mode 100644 index 0000000..54a8034 Binary files /dev/null and b/images/ha_entities.png differ diff --git a/images/machine_inside.jpg b/images/machine_inside.jpg new file mode 100644 index 0000000..2d1fd49 Binary files /dev/null and b/images/machine_inside.jpg differ diff --git a/images/pcb.jpg b/images/pcb.jpg new file mode 100644 index 0000000..49b0bb2 Binary files /dev/null and b/images/pcb.jpg differ diff --git a/wiring.png b/images/wiring.png similarity index 100% rename from wiring.png rename to images/wiring.png diff --git a/templates/Philips_EP2220.yaml b/templates/Philips_EP2220.yaml new file mode 100644 index 0000000..4302133 --- /dev/null +++ b/templates/Philips_EP2220.yaml @@ -0,0 +1,121 @@ +substitutions: + name: "philips-coffee-machine" + friendly_name: "Coffee Machine" + +esphome: + name: "${name}" + friendly_name: "${friendly_name}" + name_add_mac_suffix: true + + project: + name: TillFleisch.ESPHome-Philips-Smart-Coffee + version: "1.0" + +esp8266: + board: esp12e + +dashboard_import: + package_import_url: github://TillFleisch/ESPHome-Philips-Smart-Coffee/templates/Philips_EP2220.yaml@main + +logger: + baud_rate: 0 + +api: + +ota: + +wifi: + ap: + +captive_portal: + +external_components: + - source: github://TillFleisch/ESPHome-Philips-Smart-Coffee@main + +uart: + # UART connected to the mainboard + - tx_pin: GPIO1 + rx_pin: GPIO3 + baud_rate: 115200 + id: uart_mainboard + + # UART connected to the display + - tx_pin: GPIO15 + rx_pin: GPIO13 + baud_rate: 115200 + id: uart_display + +philips_coffee_machine: + display_uart: uart_display + mainboard_uart: uart_mainboard + power_pin: GPIO12 + id: coffee_machine + language: en-US + +text_sensor: + - platform: philips_coffee_machine + controller_id: coffee_machine + id: status + name: "Status" + +switch: + - platform: philips_coffee_machine + controller_id: coffee_machine + name: "Power" + icon: mdi:coffee-maker + +button: + - platform: philips_coffee_machine + controller_id: coffee_machine + action: SELECT_COFFEE + name: "Select Coffee" + icon: mdi:coffee + + - platform: philips_coffee_machine + controller_id: coffee_machine + action: SELECT_ESPRESSO + name: "Select Espresso" + icon: mdi:coffee + + - platform: philips_coffee_machine + controller_id: coffee_machine + action: SELECT_HOT_WATER + name: "Select Hot Water" + icon: mdi:tea + + - platform: philips_coffee_machine + controller_id: coffee_machine + action: SELECT_STEAM + name: "Select Steam" + icon: mdi:heat-wave + + - platform: philips_coffee_machine + controller_id: coffee_machine + action: MAKE_COFFEE + name: "Make Coffee" + icon: mdi:coffee + + - platform: philips_coffee_machine + controller_id: coffee_machine + action: MAKE_ESPRESSO + name: "Make Espresso" + icon: mdi:coffee + + - platform: philips_coffee_machine + controller_id: coffee_machine + action: PLAY_PAUSE + name: "Select play/pause" + icon: mdi:play-pause + +number: + - platform: philips_coffee_machine + type: bean + controller_id: coffee_machine + status_sensor_id: status + name: "Beverage Strength" + + - platform: philips_coffee_machine + type: size + controller_id: coffee_machine + status_sensor_id: status + name: "Beverage Size"