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