Нужен алгоритм параллельных вычислений

smaglyuk

✩✩✩✩✩✩✩
23 Окт 2022
8
1
Уважаемые гуру.
Вопрос такой. Имеется модуль zmpt101b для мониторинга напряжения сети. Работает с библиотекой emonlib. на esp32.
Эта библиотека измеряет напряжение в течении 2ух секунд. В Esp работает так же wifi как точка доступа.
Подскажите алгоритм, чтобы можно было что то делать другое, пока обрабатывают информацию с модуля?
Например на Oled дисплее работаю часы. Я пока убрал секунды с экрана, но хочется другого.
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
340
105
Эта библиотека измеряет напряжение в течении 2ух секунд.
Про переписать библиотеку и многозадачность - советы правильные, если хотите понимать, как "чтобы можно было что то делать другое ".
Но для решения проблемы вывода секунд на OLED может достаточно уменьшить время ожидания emonlib с 2-х секунд до 0,5 ?
 

bort707

★★★★★★✩
21 Сен 2020
2,924
868
причина в том, что zmpt101b очень тупой модуль. Ищите умные модули, которые сами выполняют интегрирование данных и отдают контроллеру уже готовый результат. Или изобретите такой модуль сами, добавив к zmpt101b подходящий дешевый контроллер типа стм8 или тини25
 

smaglyuk

✩✩✩✩✩✩✩
23 Окт 2022
8
1
@bort707, есть модуль отдающий уже готовые данные, но стоимость его 1т.р , действительно проще промежуточный контроллер поставить. Спасибо
P.S.есть вариант на выходе модуля получать не синус,а среднее значение и его уже без библиотеки отдавать на ацп.
 

bort707

★★★★★★✩
21 Сен 2020
2,924
868
есть модуль отдающий уже готовые данные, но стоимость его 1т.р , действительно проще промежуточный контроллер поставить.
Это рассуждение верно только если вы эти устройства планируете делать сотнями. Иначе берите готовый модуль за 1 тыр - это совершенно несравнимо с ценой того времени, что вы потратите на разработку своей конструкции с дополнительным МК.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,875
600
44
Эта библиотека измеряет напряжение в течении 2ух секунд.
Уверен, что этот костыльный метод сделан потому что модуль подключается выходом переменного напряжения к ADC, чтобы измерить множество значений и выбрать из них максимальное, ну или среднее квадратичное(как это делают TrueRMS приборы).
Решается диодом и несколькими конденсаторами с резисторами.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
941
507
Saint-Petersburg, Russia
Всё уже сделано и придумано - peacefair модули стоят от 7 долларов, плюс асинхронная библиотека. Решать проблему корявой библиотеки путём выделения отдельного ядра под простой довольно странное занятие.
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
340
105
@smaglyuk,
Если два ядра, то чисто логически, я не вижу причины почему не работает с 500 мс. Правда и опыта с ESP32 у меня мало. Проверю на днях на своей на программно сделанном синусе.
 

bort707

★★★★★★✩
21 Сен 2020
2,924
868
не вижу причины почему не работает с 500 мс.
@Bruzzer, так два ядра еще надо уметь использовать. Никто эту библиотеку под многоядерность не адаптировал. Сам ЕСП32 автоматически задачи по ядрам не раскидывает. По умолчанию скетчи работают в одном, а второе занято под вай-фай
 
Изменено:

smaglyuk

✩✩✩✩✩✩✩
23 Окт 2022
8
1
@bort707, @Bruzzer, спасибо всем, сделал через костыль(таймер). он каждую секунду рисует значение "секунд".