Skip to content

Latest commit

 

History

History
169 lines (129 loc) · 9.08 KB

File metadata and controls

169 lines (129 loc) · 9.08 KB

Phase 2 — Диагностика deep sleep wake (ESP8266)

Дата сессии: 2026-05-05 (5+ часов работы) Статус: ❌ ЗАСТРЯЛИ. Решение: переход на ESP32 (см. BeehiveScale-ESP32/). Этот документ сохраняет ВСЁ что мы проверили — на случай возврата к ESP8266.


❓ Проблема

ESP8266 (NodeMCU v0.1 / Lolin V3) после ESP.deepSleep() не просыпается обратно. Ни через GPIO16 timer wake, ни через DS3231 SQW alarm.

✅ Что подтверждено как РАБОЧЕЕ

Что Чем проверено Результат
ESP реально засыпает LCD гаснет, потребление падает
Кнопка RST на плате будит ESP Ручное нажатие → LCD загорается
Перемычка D0↔RST электрически целая Прозвонка мультиметром
Прошивка нормально входит в sleep Serial выводит "Sleeping..."
DS3231 alarm физически срабатывает AlarmCheck.ino: бит A1F = 1 в регистре 0x0F через 30 сек
SQW от DS3231 даёт LOW pulse при alarm Мультиметр: 4.8В → 0В
Заменили плату на новую — то же самое На обеих новая+старая платы — не просыпается ❌ → проблема не в экземпляре

❌ Что НЕ работает (всё что пробовали)

Перемычки между D0 и RST

  • Голый провод — НЕ будит
  • Резистор 470 Ом — НЕ будит
  • Резистор 1 кОм — НЕ будит
  • Силиконовый диод 1N4148 (Vf 0.7В) — НЕ будит
  • 1N4148 + конденсатор 100нФ параллельно — НЕ будит

Перемычки между SQW DS3231 и RST

  • Голый провод — НЕ будит
  • 1N4148 — НЕ будит
  • 100нФ конденсатор — НЕ будит

Программные флаги deep sleep

  • ESP.deepSleep(us) — default — НЕ работает
  • ESP.deepSleep(us, WAKE_RFCAL) — НЕ работает
  • ESP.deepSleep(us, WAKE_RF_DISABLED) — НЕ работает
  • ESP.deepSleepInstant(us, WAKE_RF_DISABLED) — НЕ работает
  • WiFi.disconnect(true) + WiFi.mode(WIFI_OFF) + WiFi.forceSleepBegin() перед сном — НЕ работает

Питание

  • От USB компьютера через CH340 — НЕ работает
  • От 18650 на пин Vin (без USB, без CH340) — НЕ работает (исключили DTR-блокировку)

🎯 Что НЕ ПРОБОВАЛИ (план продолжения если возвращаемся к ESP8266)

Вариант 1 — Schottky диод 1N5819 ⭐ (наиболее вероятный успех)

Стоимость: ~50₽ за пакет 10 шт на Озоне.

Маркировки которые подойдут:

  • 1N5817, 1N5818, 1N5819 (через-отверстие, главные кандидаты)
  • BAT85, BAT41, BAT42, BAT54
  • SR160, SR240, SR360
  • SS14, SS24, SS34 (SMD)
  • MBR0520, MBR0530, MBR340

Подключение:

  • Катод (с полоской) → к D0 (GPIO16)
  • Анод → к RST

Почему должно сработать:

  • Падение напряжения у Schottky всего ~0.2В (против 0.7В у 1N4148)
  • Известный recipe от сообщества ESP8266 для проблемных Lolin V3
  • Источник: https://forum.mysensors.org/topic/6036/

Вариант 2 — P-MOSFET power gating ⭐⭐ (бронебойное решение)

Стоимость: ~80-300₽ за P-MOSFET (Озон).

Подходящие маркировки:

  • AO3401 (SMD SOT-23, ~30₽) — самый частый
  • AO3415
  • IRF9540N (DIP TO-220, ~80₽) — удобный для пайки
  • IRLML6402, IRLML6401, IRLML2244 (SMD)
  • SI2301, SI2305 (SMD)
  • FQP27P06, FQP47P06 (через-отверстие)

Не подходит (только N-канал) — у Геннадия в наборе есть, не использовать:

  • IRFZ44N, 7N60B (N-channel)
  • TIP122 (NPN Darlington)

Схема power gating:

+5V (Vin) ───┬──── S(source) MOSFET P-канал
             │            │
             │            D(drain) ──── Vin ESP
             │            │
             │            G(gate) ──┬── R 100kΩ pull-up на +5V
                                     │
                                     SQW от DS3231

Логика работы:

  • В покое: gate подтянут к +5V через 100к → MOSFET закрыт → ESP ОБЕСТОЧЕН (потребление ~0)
  • Alarm срабатывает: SQW идёт в LOW → gate в LOW → MOSFET открывается → ESP получает питание → стартует с нуля
  • ESP делает работу, очищает alarm регистр DS3231 → SQW возвращается в HIGH → MOSFET закрывается → ESP обесточивается

Преимущества:

  • НЕ нужен RST вообще
  • НЕ нужен GPIO16 wake
  • ESP стартует «с нуля» — нет глюков с RTC memory
  • Работает на ЛЮБОЙ плате (даже Lolin V3)
  • Минимальное потребление в спячке (только DS3231 + утечки MOSFET ~5 мкА)

Вариант 3 — Местный радиорынок

В Омске есть радиомагазин — Schottky 1N5819 может продаваться поштучно по 30-50₽. Дешевле чем Озон по цене за единицу.

Вариант 4 — Donor-плата (поиск Schottky)

Schottky встречается в:

  • Старые блоки питания ATX (компьютерные)
  • Зарядки телефона / адаптеры роутеров
  • Светодиодные ленты, драйверы LED
  • Старые материнки, видеокарты на распайку

📊 Что есть у Геннадия в коробке (на 2026-05-05)

Диоды (НЕ ПОДХОДЯТ для нашей задачи):

  • 1N4148 / ST4148 — silicon, 0.7В, уже пробовали
  • КД521А — silicon, 0.8В
  • 1N4007 — silicon выпрямительный, 0.9В
  • HER208 — silicon ultrafast, 1.0В
  • F12C20C — Fast Recovery 12А (НЕ Schottky), 1.0В
  • 1N4733A — это Zener 5.1В! НЕ диод для нашей задачи!

Транзисторы (только N-канал — НЕ ПОДХОДЯТ для high-side):

  • IRFZ44N — N-MOSFET 55V/49A
  • 7N60B — N-MOSFET 600V/7A
  • TIP122 — NPN Darlington

Что нужно купить:

  • Schottky 1N5819 (10шт, ~50₽) ИЛИ P-MOSFET AO3401/IRF9540N (~80-300₽)

🚦 Решение принято 2026-05-05: переход на ESP32

У Геннадия физически на руках свободная ESP32-WROOM-32 NodeMCU DevKit V1. WakeTestESP32 (минимальный sketch) подтвердил что deep sleep wake работает железно из коробки (счётчик пробуждений вырос до 7+ автономно).

ESP32 проект в: BeehiveScale-ESP32/ (соседняя папка, БЕЗ git пока) План порта: BeehiveScale-ESP32/ACTION_PLAN_ESP32.md


🔄 План возврата к ESP8266 (если ESP32-порт пойдёт криво)

  1. ESP32-папка остаётся как есть (можно стереть, можно сохранить)
  2. Открыть BeehiveScale-main/ (этот проект) — он на v4.2.12-final-esp8266
  3. Заказать 1N5819 на Озоне (50₽, 1-2 дня) ИЛИ AO3401/IRF9540N P-MOSFET
  4. Когда деталь придёт — собрать одну из схем выше
  5. Прошить WakeTest.ino (C:\Users\Dark\.claude\temp\WakeTest\WakeTest.ino) — диагностика
  6. Если счётчик растёт — успех, идти к основной прошивке Phase 2

🔗 Ссылки на источники