Доброе время суток.
Вы уверены, что это именно проблема с оперативной памятью? В консоль выводится какая-либо информация по ОЗУ? Если нет, то добавьте для теста, в Setup следующий код.
cron.add(cton::time_10s, [&](){
Serial.printf("free ram: %u\r\n", ESP.getFreeHeap());
});
После этого запустить контроллер с прописанными 30-ю и более датчиками. Понаблюдайте за этим значением.
Уточните, что вы имеете в виду под "полностью отрубается web ...", при заходе на страницу вы получаете ошибку, что запрашиваемая страница не найдена или что-то появляется?
Я предполагаю, что проблема не с ОЗУ, а с тем, что все данные с датчиков, в том числе их структура и логи, передаются через объекты String, а не потоковым выводом. Думаю, что просто данных слишком много и все не поместилось. А т.к. данные представлены в формате json, который имеет строгий синтаксис, то при разборе вылетает ошибка, в следствии чего не создаются сенсоры в web интерфейсе и т.д.
Если я прав, то стоит пересмотреть как способ формирование ответов сервера на API запросы, так и варианты хранения данных.
@den48rus Если Вам еще нужна помощь, то сообщите какие изменения Вы уже вносили, какие пользовательские файлы используете и какие датчики?