корпус NodeMCU
Этот проект содержит коробку, в которой можно спрятать nodeMCU esp8266 вместе с 0,96-дюймовым oled-дисплеем. Затем коробку подключают к внешнему источнику питания USB, который находится на плате nodeMCU.
Сначала плата nodeMCU вставляется в нижнюю коробку на четырех палках, крепится с помощью пистолета-расплава, а затем дисплей прикрепляется к крышке с помощью пистолета-расплавителя. Крышка надевается на коробку. Коробку можно прикрепить куда угодно с помощью двустороннего скотча. Крышку можно снять с коробки в любой момент.
Если вы хотите использовать этот корпус, как на фотографии, для отображения фотоэлектрических данных инвертора Solax, вы можете скачать исходный код ниже. Для этого вам понадобится Home Assistant и надстройка ESPHome. Вы также можете использовать значки, которые также можно загрузить.
эсфоме:
название: фотовольтаика
Дружеское_имя: фотовольтаика
esp8266:
плата: nodemcuv2
# Включить ведение журнала
регистратор:
# Включить API Home Assistant
API:
шифрование:
ключ: «ваш ключ»
ота:
платформа: эсфом
пароль: «вашпароль»
# число_попыток: 3
# безопасный_режим: нет
Wi-Fi:
ssid: !secret wifi_ssid
пароль: !secret wifi_password
# Включить резервную точку доступа (портал авторизации) на случай сбоя Wi-Fi-соединения.
ап:
ssid: «Резервная точка фотогальванического оборудования»
пароль: «пароль»
#переключатель:
# — платформа: gpio
# контакт: D4 #внутренний светодиод
# перевернуто: Истина
# имя: «Внутренний светодиод NodeMCU»
# идентификатор: Internal_led
время:
— платформа: домашний помощник
идентификатор: homeassistant_time
часовой пояс: Европа/Прага
image: # Папка для изображений находится (создается) на HA в \config\esphome\_icons
— файл: "_icons/pv.png"
идентификатор: imgPV
— файл: "_icons/bat.png"
идентификатор: imgBat
— файл: "_icons/grid.png"
идентификатор: imgGrid
— файл: "_icons/house.png"
идентификатор: imgDum
датчик:
— платформа: домашний помощник
идентификатор: fve_production
entity_id: Sensor.solax_pv_power_total
внутренний: правда
— платформа: домашний помощник
идентификатор: fve_consumption
entity_id: Sensor.solax_house_load
внутренний: правда
— платформа: домашний помощник
идентификатор: fve_battery
entity_id: Sensor.solax_battery_power_charge
внутренний: правда
— платформа: домашний помощник
идентификатор: fve_battery_soc
entity_id: Sensor.solax_battery_capacity
внутренний: правда
— платформа: домашний помощник
идентификатор: fve_grid
entity_id: Sensor.solax_grid_import
внутренний: правда
шрифт:
— файл: 'arial.ttf'
идентификатор: шрифт1
размер: 13
— файл: 'arial.ttf'
идентификатор: шрифт2
размер: 12
i2c:
СДА: D2
СКЛ: D1
сканирование: ложь
дисплей:
— платформа: ssd1306_i2c
модель: SSD1306_128X64
адрес: 0x3C
идентификатор: my_display
лямбда: |-
it.image(0, 2, id(imgPV));
if (id(fve_production).state <= 999) {
it.printf(15, 0, id(font1), TextAlign::TOP_LEFT, "%.0f W", id(fve_production).state);
} еще {
it.printf(15, 0, id(font1), TextAlign::TOP_LEFT, "%.2f кВт", id(fve_production).state/1000);
}
it.image(0, 19, id(imgDum));
if (id(fve_consumption).state <= 999) {
it.printf(15, 33, id(font1), TextAlign::BOTTOM_LEFT, "%.0f W", id(fve_consumption).state);
} еще {
it.printf(15, 33, id(font1), TextAlign::BOTTOM_LEFT, "%.2f кВт", id(fve_consumption).state/1000);
}
it.image(0, 35, id(imgGrid));
если (id(fve_grid).state <= 999) {
it.printf(15, 49, id(font1), TextAlign::BOTTOM_LEFT, "%.0f W", id(fve_grid).state);
} еще {
it.printf(15, 49, id(font1), TextAlign::BOTTOM_LEFT, "%.2f кВт", id(fve_grid).state/1000);
}
it.strftime(0, 51, id(font1), " %d.%m.%Y %H:%M", id(homeassistant_time).now());
it.image(116, 2, id(imgBat));
it.printf(115, 0, id(font1), TextAlign::TOP_RIGHT, "%.0f%%", id(fve_battery_soc).state);
it.image(116, 19, id(imgBat));
if ((id(fve_consumption).state) >= 0) {
if ((id(fve_consumption).state) <= 999) {
it.printf(115, 19, id(font2), TextAlign::TOP_RIGHT, "%.0f W", id(fve_battery).state);
} еще {
it.printf(115, 19, id(font2), TextAlign::TOP_RIGHT, "%.2fkW", i
