Comments 59
Задаём среднее значение и гетерезис
Может быть гистерезис?
У ESP8266 только два пина не создают импульсы при включении питания. У Вас исполнительные элементы подключены ко всем пинам. Как ведет себя ваш умный дом, когда сетевое питание отключается , а потом включается?
При отключении питания. Все как обычно перезагрузка. Обновление времени с esp32, и по заданным параметрам.
За эти пару миллисекунд исполнительные элементы ничего особого не исполнят.
Вы это у DeepSeek узнали или сами придумали?
Из своего опыта могу сообщить, что у ESP8266 время выполнения первичного загрузчика составляет примерно 30 миллисекунд. Потом работает второй загрузчик.
А на пинах будет вот это:

За это время успеют сработать реле и не только и не один раз.
Если в умном доме будет управление кранами или нагревателями,
то можно получить потоп или пожар.
На пинах при перезапуске будет то, что заданно при инициализации. По умолчанию 0, а дальше по параметрам.
Вы не угадали. На пинах будут импульсы. Они появятся до их инициализации и генерируются внутренней схемой чипа. Этой проблеме у ESP8266 уже 10 лет, а вы и не знаете это.

Напряжение на выводах будет соответствовать установленному Вами при инициализации примерно через 100 миллисекунд после включения питания. До этого момента будет что угодно (см в таблице)

потоп или пожар
За 1 секунду работы нагревателя пожара не должно произойти. И если на 1 секунду кран откроется, а потом закроется, не должно случиться ничего страшного. Но учитывать надо, конечно же.
Я не возражаю, делайте себе такой умный дом.
Проблема уже давно решена. Статья запоздала лет десять.
Cтавить ESP32 не имеет смысла так как ESP8266 может работать одновременно и с ESP-NOW и c WiFi . Но это все уже устарело.
Я тоже не возражаю, если кто-то делает себе умный дом ;)
это все уже устарело
А что сейчас в тренде?
Esp32 работает с ble (для андроида) и esp-now, и нужен как точка доступа всех остальных ESP 8266. Но ESP-now не может работать одновременно с wi-fi. В данном проекте для mqtt происходит переключение, и приостановка очередей для ESP-now, но это быстро максимум 7 сек.
Это очень плохое решение, так как ESP32 в режиме BLE потребляет очень много , что противоречит самой идее BLE. Вообще все чипы ESP имеют очень плохой энергетический баланс и требуют источники с большим импульсным током. В настоящее время много чипов позволяющих строить умные дома с энергопотреблением в 10 -100 раз меньше чем на ESP.
Вариант на ESP - это скорее игрушка, чем серьезное решение.
Если очень хочется, то можно все сделать на ESP8266 и использовать WiFi. более того WiFi позволяет обращаться в интернет и реализовать голосовое управления или еще какие-то модные приблуды. и это будет и дешевле и проще и менее потребляемое.
Не согласен. Esp очень крут при правильном коде.
Для каких задач?
Назовите хотя бы одну в умном доме, которую Вы решили на ESP32 и не смогли решить на ESP8266.
В ESP 32 больше пинов и ещё есть идеи как из использовать, в отличии от ESP 8266, где все уже заняты в этом проекте.
Там где нужно нормальный АЦП.
Нет нормального выхода их режима сна
Нужно больше одного UART (например для работы с радарами LD2410, RS485 и пр)
CAM-модуль
Просто большое количество входов/выходов, PWM
LAN8720 (шлюзы мне больше нравятся с Ethernet - Надежнее работают и эфир не засоряют)
А в умном доме куда вкрутить то?
Спрашивал о конкретной задаче в умном доме. В умном доме нет задач, с которыми не справиться ESP8266.
-----------------------------
Больше пинов решается с помощью копеечного расширителя портов. Это дешевле, проще и меньше потребляет, чем применение ESP32. Причем один чип дает сразу дополнительно 8-16 портов и так до 256.
-----------------------
1) В ESP АЦП имеют повышенный уровень шума. У ESP8266 легко увеличить число разрядов за счет усреднение, так как АЦП может работать с частотой дискретизации до 600 КГц.
Но если действительно надо высокоточный АЦП, то надо брать другие чипы.
2) Что такое "нормальный выход из сна" ?
3,4) LD2410 имеет выход по GPIO. CAN подключается по SPI.
Вы пытаетесь все интерфейсы и устройства повесить на один модуль, цена которого в разы меньше каждого из интерфейсов.
----------------------
Если надо много UART , то надо и решать эту задачу.
Если в ESP8266 отключите радиомодем, то потребление будет не 80 mA а всего 15.
Т е получите обычный микроконтроллер за копейки. Вот и используйте его как интерфейс UART-I2C или UART-SPI или даже UART-USB.
Ну умный дом это ведь не только метеостанция на ESP )))
Есть контроллеры управляющие вентиляторами, шторами, гроубоксами и пр. у которым нужно больше одного выхода
У ESP8266 легко увеличить число разрядов за счет усреднение, так как АЦП может работать со скоростью до 600 КГц.
Усреднение никогда не повысит разрядность АЦП, а только снизит шум. Это только китайские камеры умеют делать из 0.3мегапиксел FullHD за счет усреднения)))
Что такое "нормальный выход из сна"
Нормальный выход из сна - это когда не через ресет с 16 пина. А нормальный режим сна - это 5-10мкА с рабочим таймером сна и внешним прерыванием и RTC памятью в которых сохраняются параметры. ESP32C3 вполне себе живет на батарейке
LD2410 имеет выход по GPIO
А LD2413 не имеет. И работает на скорости 115200, так что SoftSerial не рулит. По Modbus просто много хороших датчиков, те же датчики влажности/кислотности почвы.
Т е получите обычный микроконтроллер за копейки
Сталкивался с такой проблемой. Если брать самые дешевые NoName модули ESP12 Или ESP07, то попадается много брака с очень слабым сигналом WiFi (плохой антенной) или "левыми" микросхемами памяти. А если брать модули от того же AI-Thinker (которые, кстати он уже перестал выпускать), то цена не меньше чем у готовой платы ESP32C3 Super Mini, которая отличается от ESP8266 как новая иномарка от 9-ки
Так что я не понимаю ни одного аргумента цепляния за ESP8266 кроме как что их дом лежит ящик и девать некуда
ESP32C3 Super Mini
Это та поделка китайских ардуиностроителей за 2 бакса что с неработающей антенной? ;)
Это та поделка китайских ардуиностроителей за 2 бакса что с неработающей антенной? ;)
Да. За 1-1.5$. Хотя из трех десятков что уже использовал у вех нормально работали антенны. Особенно если не брать где попало, а у того же TENSTAR ROBOT.

А для особо привередливых есть ESP32C3 Super Mini Pro с разъемом под внешнюю антенну
А еще есть ESP32S3 Super Mini, полностью совместимый по формфактору (ели не использовать два пина и повесить их в воздухе)
у того же TENSTAR ROBOT.
На всех так написано. Может лично мне не повезло. В интернетах пишут что антенна в этом модуле присобачена вопреки здравому смыслу, земляной полигон слишком близко. И предлагают кучу странных способов исправления, некоторые даже работают ;)
Но всё равно как замена ардуины - супер.
/На всех так написано. Может лично мне не повезло. В интернетах пишут что антенна в этом модуле присобачена вопреки здравому смыслу, земляной полигон слишком близко. И предлагают кучу странных способов исправления, некоторые даже работают ;)
Ну так и берите в магазине TENSTAR на Алике. Там где эта проблема подробно разобрана и ссылки есть где нужно брать
На глючных платах нужно просто снизить мощность WiFi
WiFi.setTxPower(WIFI_POWER_8_5dBm);
И тоже все работает (если хватает сигнала)
ESP8266 тоже очень много глючных. Намучился с ними одно время
Ранее я написал, что ESP32C3 вполне интересный чип. Но мои эксперименты показали, что время активности чипа при выходе из сна не может быть меньше 13 ms (у чипов с BLE это время менее 3 ms), а ток потребления в режиме сна для ESP32C3 Super Mini не может быть меньше 24 uA (у чипов с BLE ток менее 1 uA).
Для работы от батарейки ESP не лучший вариант.
Мое мнение такое. ESP вне конкуренции там, где надо иметь относительно большой объем flash (4MB) и RAM (от 40 до 400 КB) и CPU с частотой от 100 MГц за копейки. В задачах типа умного дома или метеостанции нет надобности в вычислениях и исполнении сложного алгоритма. Но есть надобность в автономной работе либо энергосбережении. В таких задачах , спустя 15 лет после выхода ESP8266, сейчас можно применять тоже дешевые модули на чипах TLSR82xx,TLSR83xx, NRF52840,CH582F,CH584F,PHY6252.
При этом энергопотребление сокращается на один два порядка при тех же ценах на модули.
Ранее я написал, что ESP32C3 вполне интересный чип. Но мои эксперименты показали, что время активности чипа при выходе из сна не может быть меньше 13 ms (у чипов с BLE это время менее 3 ms), а ток потребления в режиме сна для ESP32C3 Super Mini не может быть меньше 24 uA (у чипов с BLE ток менее 1 uA)
На счет 13мкс не проверял. У меня вся периферия пином выключается, а там на нем кондер 100нФ заряжается дольше )))
Но в любом случае это гораздо лучше, чем у ESP8266, который из сна выводится через RST
С потреблением копайте дальше. По даташиту там 5мкА. Мои модули HT-CT62 от Heltec (ESP32C3 + LoRa SX1262) за окном с питанием от солнечной панельки и ионистора уверенно вписываются в 10мкА со спящим LoRa модулем
Как минимум, АЦП нужно вырубать и желательно все пины тоже, кроме тех на которых прерывание висит
P.S. Кстати, поделитесь где взять дешевый NRF52840, желательно готовым модулем?
Вы не поняли, не 13 мкс, а 13 ms. Это в 1000 раз больше.
Относительно потребления, рекомендую Вам разобраться.
5 мкА это у чипа, а я написал про модуль.
Кроме того, при переходе в сон ток потребления снижается не сразу, а получается длинный хвост. В итоге 5 мка будет в теории.
NRF52840 можно взять на али за 240 руб, включая доставку.
-----------------
Забыл сказать, что 13 ms у ESP32C3 это если делать заглушку, иначе время выхода из сна больше, чем у ESP8266.
Вы не поняли, не 13 мкс, а 13 ms. Это в 1000 раз больше.
А как вы измеряли?
Относительно потребления, рекомендую Вам разобраться.
5 мкА это у чипа, а я написал про модуль.
Если модуль питать от 3.3В напрямую, то разницы практически нет (если там светодиодов не навешено)
У меня по крайней мере показывает 10мкА и сразу. Правда используется модуль от Heltec
Кроме того, при переходе в сон ток потребления снижается не сразу, а получается длинный хвост. В итоге 5 мка будет в теории.
13 ms можно получить лишь с заглушкой. При выходе из сна стартует программа в RTC RAM. Пример теста есть в esp-idf.
Измеряю с помощью чипа INA226, который подключен к ESP8266 и данные считываются с интервалом 0.2ms.
24 мка это не только мой результат.
Встречал в инете подобный результат. Вполне допускаю, что можно получить 10 мка.
-------------------------
Но я могу на ESP8266 получить выход из сна и передачу данных по UDP и снова вход в сон за время не более 120 ms. Такое сделать на ESP32 невозможно.
Но для ESP8266 я применяю внешний таймер TPL5xxx. У него рабочий ток 0.03 мка.
---------------------------
Как Вы измеряете ток потребления и "сразу".
Какое время выхода +передача данных и снова вход в сон Вы можете получить на ESP32?
Измеряю обычным мультиметром. Было 50мА, стало 10мкА. Понятно, что точность там с полсекунды. При длительности цикла в десятки минут это совершенно не парит. Но тем не менее это именно 10мкА, измеренные разными приборами.
Передача данных у меня по LoRa идет. Общий цикл примерно 250-350мс при учете дополнительных таймаутов, которые стоят для завершения зарядки кондера на питании периферии. WiFi при этом отключен
внешний таймер TPL5xxx
Здесь вообще никакого режима сна нет. Питание вырубили/питание врубили. И к ценник у TPL не слишком гуманный. А дешевого аналога я не нашел.
В настоящее время 10 мка это много.
Но проблема с ESP32 не только в этом.
Эти чипы не могут работать от батареек типа CR2032.
Если вы используете LoRA то зачем ESP32?
Если вы используете LoRA то зачем ESP32?
Ну например для прошивки по воздуху
Тут просто исторически сложилось. Я работал с модулями Heltec CubeCell. Там ASR6502 с встроенным SX1262. А тут этот же Heltec выпустил модуль с ESP32C3 + SX1262. Вот и взял несколько штук погонять. Заодно идею с ионисторами опробовал
Кстати, шлюзом тоже их модуль использую. ESP32S3 + SX1262 + W5500 навесил на плату.
Экспериментировал ESP8266 с ионистором(суперкондером) на 1f 5в. Одного заряда хватало на передачу 20 коротких сообщений по WiFi UDP с ESP на ПК в режиме проснулся- передал -уснул.
Подключал маленькую солнечную панельку. Все работало нормально. На ESP32 так не получится.
LiFePo4 + зарядка от солнечной панели. Эти аккумуляторы живут при отрицательных температурах и более 3.7В не имеют, так что ESP можно напрямую подключать
Нашел интересный гибридный ионистор-аккумулятор серии LIC
https://en.cda-cap.com/index.php/product/lic/
На 20Ф 3.8В он по габаритам всего 8x13мм. Но не любит температур ниже -20 и разряда менее 2.5В. Зимой в -30 он отключился, но потом при потеплении заработал вновь
Из плюсов - низкий саморазряд, большой ток (если нужно кратковременно что-то мощное) и очень длинный срок работы
Хотя WiFi конечно не для бата реечных сенсоров. LoRa здесь очень понравилась. и потребляет мало и любые стены прошибает
Подключал маленькую солнечную панельку. Все работало нормально. На ESP32 так не получится.
А чего это? ESP32C3 имеет одно RiscV Low Power ядро с очень гибкими настройками потребления
Скачек потребления при запуске, затем обычное потребление, передача пакетами.
Вы опять ошибаетесь. Причем здесь запуск. При передаче работает передатчик. Он потребляет до 400 мА у ESP32 и до 300 mA у ESP8266. Если модем не отключаете то работает всегда приемник - это 70 mA..
В вашем решении у Вас ESP32 всегда включено.
--------------------
На хабре есть моя статья как уменьшить потребление ESP8266 в 10 раз.
Суть в том, что ESP8266 являются датчиками или исполнительными элементами и они могут спать. Можно реализовать время активности в режиме WiFi не более 0.1 сек и нет надобности в ESP-NOW. При этом число узлов не ограничено 20-ю.
Если будут спать когда им работать или они вообще не нужны.
Действительно. Но есть время, когда им работать не надо. В это время они будут лишь греть воздух.
Например, Вы на работе 8 часов. а еще Вы 7 часов спите. В итоге Вам 15 часов из 24 не нужно щелкать выключателем .
Все это время ESP, которая включает вашу любимую лампочку,
будет бездействовать но потреблять как эта лампочка.
Правда, прикольно.
Вывод информации и изменение параметров как вы планируете осуществить. По любому wi-fi более прожорлив чем ble.
И ещё связка ESP 32(ble)--андроид, и ESP 32(wifi)--андроид, не одно и тоже. Потому как потребление намного меньше.
1) Какое потребление?
2)Сколько времени уходит на восстановление работы устройств при сбое в питании?
3) Как опознается зависшее устройство? Как устраняется эта проблема?
1. Потребление как мануале. Задействован протокол esp-now.
2 Обычный сброс происходит мгновенно.
3. Сброс может произойти при отсутствии питания. Загружайте тестируйте.
Я конечно же заплюсил для поддержки начинающего автора, но есть один вопрос...
В чём суть статьи, да ещё и с кучей грамматических ошибок?
Не могли бы вы об этом рассказать подробнее? Вы этим хотите продвигать свою программу liknode?
—Выходные порты—
Выходные порты имеют обвязку в виде полевых транзисторов npn. Это значит на выходе разрыв gnd, что позволяет подключать внешнее питание.
Это цитата вашего текста из вашего телеграм-канала. Очень плохо.
Но вы можете всё это быстро исправить, если захотите.
Обычный вариант ESP32 не переварит одновременно WiFi и BLE, тупо не хватит ОЗУ. Лучше использовать для этого варианты с PSRAM
Делаю сейчас "компьютер" для электроскутера и esp now стало для меня открытием, для пульта взял espe2c3 seeed studio на борту которого есть контроллер заряда батареи, припаял кнопки, батарею, написал код, распечатал корпус и всё, пульт готов
Проект умного дома IoT LikNode