RU   EN
ESP8266 (USB) ESP8266 (Аккум.) ESP32 Компоненты и цены

На рисунке приведена универсальная распиновка для подключения E-INK дисплея к ESP8266 которая не нарушает сигналы инициализации и оставляет пины I2C для подключения датчика (проверена для 4.2' дисплеев от Waveshare, WeAct и должна быть работоспособна для некоторых других производителей использующих тот же контроллер вывода - SSD1683 или UC8176).
Распиновка используется во всех вариантах схем и можно по ней сверятся или сохранить как памятку.
Оставшийся свободным пин D4 не должен быть в состоянии LOW при запуске устройва, но его все еще можно под что-нибудь использовать.

Схема для версии с питанием от USB

Компоненты :

Примечание по перепрошивке версии с питанием от USB

Перепрошивку можно осуществлять по 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. Самый оптимальный вариант на данный момент 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 S3 SuperMini по USB без батареи - светодиод BAT на плате постоянно горит - это ложное срабатывание платы на делитель и нужно увеличить номиналы сопротивлений (при тестах резисторы 200кОм+ не давали ложного срабатывания, а менее 100кОм бывало)
Светодиод BAT без подключенного аккумулятора и при наличии питания по usb должен просто моргать, но не гореть постоянно, никакие элементы при этом нагреваться тоже не должны.

Пример делителя подпаянного к плате (в данном случае BATTERY_SENSOR_PIN = 14) и светодиод индикатор BAT

Если используется другая плата ESP32, то в случае подключения аккумулятора делитель подбирается исходя из верхнего порога чтения напряжения аналогового входа (BAT_SENSOR) вашей ESP32 и максимального V источника питания (максимальный заряд Li-Ion аккумулятора 3.7v может доходить до 4.2v)

Модель платыВерхний порог допустимого напряжения на входе ADC
ESP32 S3 SuperMini3.1v
ESP32 S2 Mini2.6v
ESP32 C3 Zero2.5v

Делитель 200кОм \ 200кОм подойдет в большинстве случаев, но можно попробовать уменьшить \ увеличить номиналы не выходя за пределы допустимого напряжения на входе GPIO (рассчитать делитель напряжения). При тестах на некоторых платах при питании от аккумулятора замечалась просадка на 0.1-0.2v (компенсируется через BATTERY_OFFSETV)

Общий пример подключения нескольких датчиков

В случае использовании дополнительных I2C датчиков (например датчика качества воздуха, CO2), подключение производится к тем же пинам (SDA, SCL, 3.3V, GND), в соответсвии с обозначениями пинов на самом датчике.

Страницы модулей и элементов на торговых площадках с точными названиями

Страницы тех компонентов которые я использовал в сборке, с небольшими комментариями. Цены актуальны на 05.08.24, скриншоты приведены для точных названий товаров

Совместимые дисплеи

Микроконтроллер - ESP8266

Микроконтроллер - ESP32 оптимальный аналог

Микроконтроллер - ESP32 S2 Mini

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

Датчик температуры & влажности

Датчик CO2, качества воздуха (опционально)

Остальное

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

Смотрите так же

X