ESPHome - конфигурация JetHub E1-CPU
Конфигурация процессорного модуля JetHub E1-CPU (без материнской платы) для ESPHome.
Содержание
Конфигурация
- В данной конфигурации реализованы:
Настройка Ethernet с автоматическим определением IP-адреса.
Интеграция с Home Assistant.
Настройка светодиодов
STAT
(красный и зеленый).Настройка кнопки
FN
.Настройка интерфейсов: I2C, UART, SPI, CAN.
Примечание
После загрузки контроллера и получения IP-адреса контроллер будет автоматически доступен в Home Assistant, работающем в этой же сети.
Подсказка
1esphome:
2 name: e1-cpu-basic
3 platform: ESP32
4 board: nodemcu-32s
5 name_add_mac_suffix: true # This option adds MAC address to the end of the device name
6
7## WARNING: Disable WiFi and captive_portal if Ethernet enabled
8#wifi:
9# ssid: "***"
10# password: "***"
11#
12# # Enable fallback hotspot (captive portal) in case wifi connection fails
13# ap:
14# ssid: "JetHub E1 Fallback Hotspot"
15# password: "***"
16#
17#captive_portal:
18
19# Enable Ethernet
20ethernet:
21 type: LAN8720
22 mdc_pin: GPIO23
23 mdio_pin: GPIO18
24 clk_mode: GPIO17_OUT
25 phy_addr: 1
26
27# Enable logging
28logger:
29
30# Enable Home Assistant API
31api:
32
33# Enable OTA firmware update
34ota:
35
36# Enable I2C bus
37i2c:
38 sda: 5
39 scl: 4
40 frequency: 400kHz
41 scan: true
42 id: i2c1
43
44# Enable UART1, UART2
45uart:
46 - tx_pin: 33
47 rx_pin: 34
48 baud_rate: 115200
49 id: uart_1
50 - tx_pin: 2
51 rx_pin: 39
52 baud_rate: 115200
53 id: uart_2
54
55# Enable SPI bus
56spi:
57 clk_pin: 14
58 mosi_pin: 13
59 miso_pin: 12
60 id: spi1
61
62# Enable CAN bus
63canbus:
64 - platform: esp32_can
65 id: can1
66 tx_pin: 32
67 rx_pin: 15
68 can_id: 1
69 bit_rate: 125KBPS
70
71# Enable I2C GPIO expanders
72pcf8574:
73 - id: cpu_gpio_exp
74 address: 0x20
75 pcf8575: true
76
77# Enable LEDs
78switch:
79 - platform: gpio
80 name: "Red LED"
81 id: red_led
82 pin:
83 pcf8574: cpu_gpio_exp
84 number: 0
85 mode: OUTPUT
86 inverted: true
87 - platform: gpio
88 name: "Green LED"
89 id: green_led
90 pin:
91 pcf8574: cpu_gpio_exp
92 number: 1
93 mode: OUTPUT
94 inverted: true
95
96# Enable button
97binary_sensor:
98 - platform: gpio
99 name: "FN button"
100 pin:
101 number: 0
102 inverted: true
103 - platform: gpio
104 name: "USER button"
105 pin:
106 pcf8574: cpu_gpio_exp
107 number: 2
108 inverted: true
Разъяснения
Базовые настройки
Задают имя контроллера, тип аппаратной платформы:
esphome:
name: e1-cpu-basic
platform: ESP32
board: nodemcu-32s
Автоматический суффикс имени
Предупреждение
В одной сети не должно быть двух устройств с одинаковым именем.
Опция добавляет в имя устройства суффикс на основе MAC-адреса:
name_add_mac_suffix: true # This option adds MAC address to the end of the device name
Сетевые настройки
Предупреждение
Из-за ограничений ESPHome Ethernet и Wi-Fi не могут работать одновременно.
Поэтому при задействовании порта Ethernet необходимо отключить в конфигурационном файле секции wifi
и captive_portal
.
Ethernet
# Enable Ethernet
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 1
Wi-Fi
Примечание
ssid
и password
необходимо заменить на свои.
wifi:
ssid: "***"
password: "***"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "JetHub E1 Fallback Hotspot"
password: "***"
Интеграция с Home Assistant
Для интеграции контроллера в систему Home Assistant достаточно включить в файле конфигурации секцию api
:
# Enable Home Assistant API
api:
Порты UART
Два порта UART, подключены к разъему расширения:
# Enable UART1, UART2
uart:
- tx_pin: 33
rx_pin: 34
baud_rate: 115200
id: uart_1
- tx_pin: 2
rx_pin: 39
baud_rate: 115200
id: uart_2
Шина I2C
1# Enable I2C bus
2i2c:
3 sda: 5
4 scl: 4
5 frequency: 400kHz
6 scan: true
7 id: i2c1
К данной шине подключены:
Расширитель портов GPIO:
# Enable I2C GPIO expanders pcf8574: - id: cpu_gpio_exp address: 0x20 pcf8575: trueEEPROM:
План
Добавить описание
RTC:
План
Добавить описание
Шина SPI
Шина SPI подключена к разъему расширения:
# Enable SPI bus
spi:
clk_pin: 14
mosi_pin: 13
miso_pin: 12
id: spi1
Шина CAN
Предусмотрена возможность вывести шину CAN на разъем расширения, для этого рекомендуется
использовать выводы 32
и 15
ESP32:
# Enable CAN bus
canbus:
- platform: esp32_can
id: can1
tx_pin: 32
rx_pin: 15
can_id: 1
bit_rate: 125KBPS
Расширитель портов GPIO
Примечание
Часть периферии подключена к расширителю портов GPIO, установленному на процессорной плате.
Поэтому, предварительно должен быть настроен расширитель GPIO PCF8575 (адрес на шине I2C - 0x20
).
# Enable I2C GPIO expanders
pcf8574:
- id: cpu_gpio_exp
address: 0x20
pcf8575: true
Светодиоды
Для управления светодиодами используется инверсная логика:
# Enable LEDs
switch:
- platform: gpio
name: "Red LED"
id: red_led
pin:
pcf8574: cpu_gpio_exp
number: 0
mode: OUTPUT
inverted: true
- platform: gpio
name: "Green LED"
id: green_led
pin:
pcf8574: cpu_gpio_exp
number: 1
mode: OUTPUT
inverted: true
Примечание
При изменении состояния выходов, через некоторое время (~40 сек) ESPHome по-умолчанию автоматически сохраняет их состояние и после перезагрузки восстанавливает состояния выходов на сохраненные ранее.
Если данный функционал не нужен, то необходимо изменить эту функцию, задав состояние выхода
при загрузке с помощью опции restore_mode
, например:
switch:
- platform: gpio
...
restore_mode: ALWAYS_OFF
...