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