На рисунке приведена универсальная распиновка для подключения E-INK дисплея к ESP8266 которая не нарушает сигналы инициализации и оставляет пины I2C для подключения датчика (проверена для 4.2' дисплеев от Waveshare, WeAct и должна быть работоспособна для некоторых других производителей использующих тот же контроллер вывода - SSD1683 или UC8176).
Распиновка используется во всех вариантах схем и можно по ней сверятся или сохранить как памятку.
Оставшийся свободным пин D4 не должен быть в состоянии LOW при запуске устройва, но его все еще можно под что-нибудь использовать.
Компоненты :
Перепрошивку можно осуществлять по USB без каких-то нюансов. Если вдруг слетят настройки или будут какие-то проблемы в инициализации отдельных параметров можно выполнить сброс через панель управления http://[IP адрес устройства] (Управление устройством -> Сбросить настройки)
Обновление прошивки можно выполнять по воздуху, через http://[IP адрес устройства]/update
Файла прошивки после компиляции в PlatformIO обычно сохраняется в директории проекта .pio\build\esp12e\firmware.bin
В случае использовании дополнительных I2C датчиков (например датчика качества воздуха, CO2), подключение производится к тем же пинам (SDA, SCL, 3.3V, GND), в соответсвии с обозначениями пинов на самом датчике.
На рисунке приведена универсальная распиновка для подключения E-INK дисплея к ESP8266 которая не нарушает сигналы инициализации и оставляет пины I2C для подключения датчика (проверена для 4.2' дисплеев от Waveshare, WeAct и должна быть работоспособна для некоторых других производителей использующих тот же контроллер вывода - SSD1683 или UC8176).
Распиновка используется во всех вариантах схем и можно по ней сверятся или сохранить как памятку.
Оставшийся свободным пин D4 не должен быть в состоянии LOW при запуске устройва, но его все еще можно под что-нибудь использовать.
Компоненты :
Предварительно отключайте батарею ("Выключатель" на схеме) перед перепрошивкой по USB
- Если планируется использовать дополнительные датчики (SCD41), можно предусмотреть схему отключения питания I2C для экономии заряда - Доп. компоненты и схемы
- По умолчанию автономная версия проверяет отсутствие напряжения на контакте A0 (BAT_SENSOR) и если он разомкнут, то переходит в постоянный режим работы - подключается к WiFi сети и получает IP адрес для удаленного доступа и дальнейшей настройки \ прямого управления. IP адрес будет выведен на экран.
- Если вы используете версию ESP8266 отличную от D1 Mini, то внутренние защитные резисторы могут отличатся по номиналам, при необходимости можно скорректировать переменные в методе Env.cpp -> readBatteryV()
Обновление прошивки можно выполнить через веб-интрефейс (http://[IP адрес устройства]/update)
Для этого нужно переключить устройство в постоянный режим - размкнуть пин A0 (BAT_SENSOR) и перезагрузить. Файла прошивки после компиляции в PlatformIO обычно сохраняется в директории проекта .pio\build\esp12e\firmware.bin
В случае прошивки по USB исключите возможность подключения одновременно двух источников питания (например одновременно по USB к 4056 и к ESP)
В случае подключении к компьютеру \ питании по USB ESP8266, в модуле 4056 есть микросхема защиты аккумулятора, которая должна будет определить "перезаряд" аккума в случае если "Выключатель" не выключен, а к ESP подключено питание по USB и моментально отключить B- от GND, чем автоматически защитит аккум. Если требуется часто перепрошивать ESP8266 в процессе доработки и хочется исключить возможные проблемы с аккумулятором \ схемой заряда, можно вывести контакты RX \ TX \ GND и подключать устройство к компьютеру через них, с использованием отдельного преобразователя USB-COM (USB to TTL). В таком случае чтобы перевести ESP8266 в режим прошивки, нужно на время прошивки подключить пин D3 к GND, нажать RESET или выключить\включить по питанию, далее выполнить загрузку прошивки через PlatformIO.
Можно предусмотреть дополнительные меры защиты и добавить защиту ввиде 2-х диодов 1N5817 как это сделано например в проекте SlimeVR
Таким образом если добавить защитный диод 1N5817 как показано на схеме, можно будет защитить батарею в случае если "Выключатель" не был выключен при прошивке \ питании по USB. Долгосрочное тестирование в таком режиме не проводилось
Снизу вариант схемы предпологающий питание \ зарядку непосредственно от ESP. В этом случае батарейка и схема питания будут полностью развязаны, в такой схеме можно одновременно заряжать и работать по UART, поскольку ESP будет запитана от USB
Вариант не использовался, если прорабатывать данный вариант нужно так же обезопасить устройство от возможного подключения двух источников питания одновременно (выбрать ESP в качестве основы и вынести
USB-C разъем с DATA пинами и питанием на корпус устройства)
Или еще как вариант если устройство должно будет питатся постоянно от сети, можно вообще не использовать батарейку, в случае восстановления питания ESP8266 просто автоматически перезапустится и продолжит работу. А если хочется всетаки по какой-то причине использовать постоянно от сети и иметь резерв в виде аккума - то лучше поискать модули заряда, расчитаные на постоянное подключение к сети питания - например поиск по "Lithium battery charger ups power supply 5v 18650" выдает много готовых дешевых решений рассчитаных на постоянное питание от сети и с бекапом от аккумулятора. Плата получится чуть больше и нужно под нее соответственно подогнать корпус. Как показала практика особо заморачиватся в этом направлении пока не приходилось т.к. устройство и от обычно батарейки если оно работает в штатном режиме с переходами в сон хватает на несколько месяцев.
В случае использовании дополнительных I2C датчиков (например датчика качества воздуха, CO2), подключение производится к тем же пинам (SDA, SCL, 3.3V, GND), в соответсвии с обозначениями пинов на самом датчике.
Подойдет любая плата, модель микроконтроллера ESP32. Самый оптимальный вариант на данный момент ESP32 S3 Super Mini (готовый профиль в прошивке - platformio.esp32s3zero.ini) со встроенным контроллером заряда аккумулятора (можно подключить аккумулятор прямо к плате ESP32 без необходимости использования дополнительных модулей контроля заряда, что упрощает схему)
Компоненты :
* Переключатель SLEEP_ON_READ_LOW при постоянном питании не требуется
Настройки UserDefines.h соответствующие данной схеме
#define DEFAULT_I2C_SCL 5
#define DEFAULT_I2C_SDA 6
#define SLEEP_SWITCH_PIN 2 // любой пин или -1 для версии без аккумулятора
#define BATTERY_SENSOR_PIN 7 // любой ADC пин или -1 для версии без аккумулятора
#define EPD_BUSY_PIN 8
#define EPD_RST_PIN 9
#define EPD_DC_PIN 10
#define EPD_CS_PIN -1
#define EPD_CLK_PIN 12
#define EPD_DIN_PIN 13
- Если планируется использовать дополнительные датчики (SCD41), можно предусмотреть схему отключения питания I2C для экономии заряда - Доп. компоненты и схемы
- Переключатель SLEEP_ON_READ_LOW используется для переключения между режимом глубокого сна и постоянной работы (усторойство будет доступно по IP)

Если используется другая плата ESP32, то в случае подключения аккумулятора делитель подбирается исходя из верхнего порога чтения напряжения аналогового входа (BAT_SENSOR) вашей ESP32 и максимального V источника питания (максимальный заряд Li-Ion аккумулятора 3.7v может доходить до 4.2v)
| Модель платы | Верхний порог допустимого напряжения на входе ADC |
| ESP32 S3 SuperMini | 3.1v |
| ESP32 S2 Mini | 2.6v |
| ESP32 C3 Zero | 2.5v |
Делитель 200кОм \ 200кОм подойдет в большинстве случаев, но можно попробовать уменьшить \ увеличить номиналы не выходя за пределы допустимого напряжения на входе GPIO (рассчитать делитель напряжения). При тестах на некоторых платах при питании от аккумулятора замечалась просадка на 0.1-0.2v (компенсируется через BATTERY_OFFSETV)
В случае использовании дополнительных I2C датчиков (например датчика качества воздуха, CO2), подключение производится к тем же пинам (SDA, SCL, 3.3V, GND), в соответсвии с обозначениями пинов на самом датчике.
Страницы тех компонентов которые я использовал в сборке, с небольшими комментариями. Цены актуальны на 05.08.24, скриншоты приведены для точных названий товаров






Использовался в тестах и тоже проблем не замечено








USB-C разъем для версии корпуса-подставки

