Можно гуглить по запросу "usb powered humidifier". Но я сомневаюсь что источник мощного ультразвука в замкнутом объеме пойдет на пользу растениям.
Я все-таки склоняюсь к тому, чтобы сделать увлажнитель на обычном испарении. В качестве испарителя можно использовать микрофибровые салфетки, которые для кухни продаются. Они не гниют, в отличае от целюлозы. Нужна длинная узкая емкость, в которую одним краем будет опущена салфетка и вентилятор, который будет ускорять испарение. Поддержание уровня в этой емкости можно сделать по принципу автопоилки
Помпа при этом не нужна, вода будет подниматься за счет капиллярного эффекта. Только про качество воды нужно будет подумать, а то судя по чайнику, очень часто прийдется менять микрофибру.
Думаю, что для моего гроубокса (а он объемом в 70 литров) этого должно хватить. А то сейчас, когда вентиляторы нагоняют холодный воздух из помещения, и он нагревается внутри, то его относительная влажность понижается почти втрое. И это притом, что и снаружи влажность довольно небольшая, поэтому с припочвенного слоя влага испаряется ооочень быстро, что для ростков с неглубокими корешками не есть хорошо. При повышении-же влажности должно и уменьшиться испарение и с испарителя. Так что особой регулировки там и не нужно будет.
Но все равно датчик влажности для мониторинга состояния все-таки думаю прикупить и установить.
Добавлено спустя 17 минут 59 секунд:Вот, кстати, нигде не мог найти вменяемой простой реализации фильтра Калмана для одной переменной, так что написал сам:
https://github.com/nut-code-monkey/KalmanFilter-for-Arduino Думаю попробовать ее для фильтрации показания датчика температуры:
- Код: Выделить всё • Развернуть
#include "KalmanFilter.h"
KalmanFilter filter; // Можно создать и без параметров
void setup(){
double defaultValue = getValueFromSensor();
filter.setState( defaultValue ); // Устанавливаем начальное значение
}
void loop(){
double temperature = getValueFromSensor();
filter.correct( temperature ); // Добавляем данные для фильтрации
double correctedTemperature = filter.getState(); // И получаем скорректированую температуру
}