Перейти к содержанию
    

ESP32 батарейный BLE датчик

4 минуты назад, jcxz сказал:

Одно дело - простейший PIC, и совсем другое - такой комбайн как ESP32.

А нужен ли такой комбайн для подобных задач? Может, рядом с ним поставить простейший PIC?

Пусть комбайн спит, пока не нужен. Когда потребуется - PIC его разбудит. )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, jcxz сказал:

совсем другое - такой комбайн как ESP32. Ему чтобы только разогнать генератор+PLL времени может несколько мсек потребоваться

Еще учесть инит ПО... По мне так лучше на переменник поставить очень простенький МК, он же и будет "будильником" ESP, если произошли какие-то изменения в нажатии кнопок или повороте переменника. Ну и еще вариант, посадить на ось переменника колесо энкодера с 1м контактом, фаза там без разницы, а факт поворота он фиксирует, и запускает все это хозяйство с измерением и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, mantech сказал:

Ну и еще вариант, посадить на ось переменника колесо энкодера с 1м контактом

Вариантов можно массу придумать. Главное тут сам принцип:

1) или периодически просыпаться, только чтобы проверить "не случилось ли чего?";

2) или просыпаться только тогда, когда что-то реально случилось.

И 2-й вариант - намного более экономичен, в случае если случающиеся события - редки, а процесс просыпания - долог/сложен (тяжёлый МК).

 

Ещё варианты:

1) У ESP32 есть touch-контроллер. Можно его датчик повесить на вал потенциометра. И просыпаться когда кто-то возьмётся за вал. Надо только посмотреть - сколько жрёт touch-контроллер и может ли он работать во сне.

2) На потенциометре сделать мультивибратор. Потенциометр поставить во время-задающую цепь. Импульсы от мультивибратора подать на вход счётчика ESP (либо оконного сторожевика, если такой есть). Просыпание - если период импульсов изменился относительно заданного. Возможно ли такое на ESP32? - это надо курить его периферию (таймеры). На других МК (известных мне) такое возможно.

 

Но проще всего и 100% реализуемо = ЦАП + 2 компаратора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, x893 сказал:

ESP8685H4

В принципе потихоньку подходят к нормальным радио-МК с встроенным флешем, вот еще б это был кортекс М какой-нить - было б вообще прекрасно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, jcxz сказал:

Но проще всего и 100% реализуемо = ЦАП + 2 компаратора.

... которые должны быть постоянно подключены к питанию. Вопрос в их потреблении и, как всегда, в цене реализации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, quark сказал:

... которые должны быть постоянно подключены к питанию. Вопрос в их потреблении и, как всегда, в цене реализации.

Спросим у всемирного интеллекта? :wink2: Вот его ответ:

Цитата

Потребление компараторов зависит от их типа, конструкции и работы. Обычно компараторы имеют очень низкий уровень потребления, что делает их очень энергоэффективными.

Компараторы с цифровым выходом (например, с открытым коллектором или открытым дреном) могут потреблять очень мало энергии, менее 1 микроампера. Однако, у компараторов с аналоговым выходом (например, с дифференциальным выходом) потребление может быть выше, обычно в диапазоне от нескольких микроампер до десятков миллиампер.

А ЦАП уже есть в ESP32. И обычно ЦАП умеет сохранять свое выходное напряжение, записанное в него. В статике сохранять. А раз тактирование не нужно, значит потребление должно быть очень низким.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, jcxz сказал:

...потребление должно быть очень низким.

Ни какой конкретики от Вас не последовало, к сожалению... Хотя бы пример привели реализации вашей идеи, с оценкой потребления...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, quark сказал:

Ни какой конкретики от Вас не последовало, к сожалению... Хотя бы пример привели реализации вашей идеи, с оценкой потребления...

Какая конкретика ещё нужна?

МК измеряет (с помощью АЦП) напряжение на потенциометре. Выставляет такое же напряжение на своём ЦАП. С ЦАПа это напряжение идёт на два резистивных делителя - один смещает напряжение чуть вверх, другой - чуть вниз. Таким образом создавая 2 порога - выше и ниже напряжения потенциометра. Порог1 подаётся на вход1 первого компаратора; порог2 - на вход2 2-го компаратора. На противоположные входы обоих компараторов подаётся напряжение с потенциометра. Выходы компараторов - на ноги МК, от которых пробуждаемся. Когда вал потенциметра двинется - произойдёт пересечение одного из порогов -> просыпание МК, измерение АЦП, установка нового уровня на выходе ЦАП -> засыпание МК. Коэффициентами деления резистивных делителей (формирующих пороги) можно подобрать нужную чувствительность к смещению вала потенциометра. Номиналы сопротивлений этих делителей можно сделать большими (мегаомы), чтобы много не ели. Так как утечки по входам компараторов очень малы.

А "оценку потребления" пусть делает ТС. Я не работал с ESP32. Да и нужно это ему. Да и сделать такую оценку намного проще: ESP32 тут не просыпается периодически, а всё время спит. А значит просто взять потребление ESP32 в нужном режиме сна с включённым выходом ЦАП и прибавить к нему потребление 2-х выбранных компараторов (из даташита) + потребление 2-х делителей. Компараторы + делители - думаю в сумме можно добиться потребления <1мкА.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Повесьте опрос кнопок и потенциометра на ULP. Он будет просыпаться сравнительно часто (те же 100ms), опрашивать всё и будить основной процессор, если надо. А основной будет спать в deep sleep режиме всё время.

Правда опрос придётся на ассемблере писать 🙂

 

PS. А для BLE не надо преиодически просыпаться? Что бы из сети не вывалился?

 

8 minutes ago, jcxz said:

А значит просто взять потребление ESP32 в нужном режиме сна с включённым выходом ЦАП

Так, для сведения: DAC в ESP32 сделан на основе резисторной цепочки (8 битов). Так что потреблять он мало не может (в DS данных нет 😞 ). И точности ТС может не хватить. В любом случае тут нужны натурные эксперименты 😞

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, jcxz сказал:

Какая конкретика ещё нужна?

Вас не про алгоритм обработки спрашивали - он понятен и так. А про характерное потребление конструкции:

20 минут назад, jcxz сказал:

... просто взять потребление ESP32 в нужном режиме сна с включённым выходом ЦАП и прибавить к нему потребление 2-х выбранных компараторов (из даташита) + потребление 2-х делителей. Компараторы + делители - думаю в сумме можно добиться потребления <1мкА.

И где же расчет, подтвердающий вашу правоту?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 минут назад, xvr сказал:

А для BLE не надо преиодически просыпаться? Что бы из сети не вывалился?

Спросим у всемирного интеллекта:

Цитата

Q: Как часто надо просыпаться, что бы не потерять связь с сетью? Максимально допустимый период просыпания каков? В единицах времени.

Спойлер
Цитата

A:

Для того чтобы не потерять связь с сетью Bluetooth Low Energy (BLE), устройство должно периодически просыпаться и проверять наличие и доступность сети. Максимально допустимый период просыпания зависит от конкретной реализации устройства, а также от его настроек и роли в сети.

В стандарте BLE предусмотрены два типа устройств: Central и Peripheral. Central устройство обычно инициирует связь с другими устройствами (Peripheral), и затем поддерживает эту связь, обращаясь к Peripheral устройствам по мере необходимости. Peripheral устройства, в свою очередь, находятся в режиме ожидания и готовы отвечать на запросы от Central устройств.

Для Central устройств максимально допустимый период просыпания зависит от количества подключенных Peripheral устройств и необходимости периодически обращаться к ним. Если Central устройство находится в режиме ожидания и не обращается к Peripheral устройствам, то его период просыпания может быть достаточно большим (например, в пределах нескольких минут).

Для Peripheral устройств максимально допустимый период просыпания зависит от настроек advertising interval, которые определяют, как часто устройство рассылает сигнал обнаружения (beacon). Если advertising interval слишком велик, то сеть может потерять связь с устройством, поэтому оптимальное значение advertising interval должно быть выбрано экспериментально. В целом, для большинства приложений максимальный период просыпания Peripheral устройств составляет несколько минут.

В общем случае, период просыпания устройства должен быть достаточно малым, чтобы обеспечить своевременное обнаружение сети и обмен данными, и достаточно большим, чтобы уменьшить потребление энергии в режиме ожидания. Оптимальное значение периода просыпания должно быть выбрано с учетом конкретных требований приложения и настроек устройства.

Вроде как получается - минуты. Что многократно больше чем 100 мсек.

12 минут назад, quark сказал:

И где же расчет, подтвердающий вашу правоту?

А вашу - где?  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, jcxz сказал:

А вашу - где?  :unknw:

Там же. Посчитайте, что Вы предложили, и выложите расчеты сюда. Спор немедленно разрешится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, quark сказал:

Там же. Посчитайте, что Вы предложили, и выложите расчеты сюда. Спор немедленно разрешится.

Ok. Предоставьте документ, в котором указаны потребления различной периферии ESP32 поблочно. Посчитаю.

43 минуты назад, xvr сказал:

Так, для сведения: DAC в ESP32 сделан на основе резисторной цепочки (8 битов). Так что потреблять он мало не может

Это не совсем так. Читаем даташит:

Цитата

Two 8-bit DAC channels can be used to convert two digital signals into two analog voltage signal outputs. The
design structure is composed of integrated resistor strings and a buffer.

Т.е. - не просто цепочка резистоов, а цепочка с последующим буфером. Видимо - ОУ. А значит вполне возможно, что это цепочка высокоомных резисторов. Насколько высокоомных - можно только гадать.

45 минут назад, xvr сказал:

И точности ТС может не хватить.

Не хватить для чего? Точность ЦАП будет определять только точность установки порогов -> чувствительность просыпания МК к смещению вала потенциометра. Здесь нужно исходить из целей - для чего служит тот потенциометр?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, jcxz сказал:

Предоставьте документ...

Калькулятор Вам тоже предоставить? Не можете посчитать - не считайте.

Будем считать - Вы ничего не предлагали. )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...