Питание Arduino и полив не только цветов.
Офисная жизнь она такая ... иногда даже кактусы вянут, особенно в мужском коллективе ;-)
В принципе можно просто взять Аруино и готовый датчик влажности для него, еслибы не преславутое НО!
Обе эти вещи стоят денег, +необходимость обеспечить схему питанием - а это дополнительные провода и адаптер.
От батареек напрямую не выйдет - сама плата потребляет 30 миллиампер, датчик еще столько-же, при средней емкости солевой батарейки в 500мАЧ, ее хватит на день (4 штуки).
При этом "голая" плата ардуинки без Атмеги-328 потребляет десятку.
Можно использовать режим сна, но все-равно будут выбросы по питанию, что для подсевшей батарейки - смерть . С другой стороны, в документации говорится о напряжении питания от 1.8В.
Но из диаграммы следует, что устойчивая работа на данном напряжении возможна только при частотах ниже 4МГц.
Не мудрствуя лукаво, я прошил ардуиновский загрузчик в atmega 328p-pu на внутренний генератор с делителем на 8 и порогом питания в 1.8в (скорость связи при этом уменьшается до 4800).
Прошивка - отдельная тема с риском "закирпичить" контроллер по невнимательности.
Казалось-бы мало, но цветы растут медленно, да и первый Эпл работал на той-же частоте в 1МГц - мы-же помним ;-)
Парадокс, но на 5 вольтовом питании "голый" контроллер потреблял ЦЕЛЫХ 8милиампер против 10 в штатном режиме.
Чудо произошло при снижении напряжения вдвое - 0.5-0.6 милиампер. Уже можно питаться от 2 батареек или аккумуляторов !
Была собрана примитивная схема, загружен скетч:
int x; // присваиваем имя для значений с аналогового входа A0
void setup() // процедура setup
{
pinMode(4, OUTPUT); // пин 4 с пьезоизлучателем будет выходом (англ. «output»)
pinMode(A0, INPUT); // к входу A0 подключим датчик (англ. «intput»)
Serial.begin(9600); // подключаем монитор порта
}
void loop() // процедура loop
{
//включаем на 4 пин напряжение на 1/10с (для контроля, что схема жива)
digitalWrite(4, HIGH);
delay(100);
x = analogRead(A0); // переменная "x" находится в интервале от 0 до 1023
digitalWrite(4, LOW);
if (x > 50) { delay(3000); } // больше 50 - пауза 3с
if (x < 50) { // меньше 50 - генерим звук на выводе 4, частоты 500 и 1000 с длительностью 0.5с
tone(4, 500, 500);
tone(4, 1000, 500);
}
}
Вот такая бета-версия с датчиком в горшке потребляет 1миллиампер.
Изначально была задумка брать плюс для датчика с четвертого пина - но что-то идет не так и зуммер жужжит постоянно.
Теперь задача с поливом цветов упрощается до контроля заряда батареек раз в месяц.
Поставив все в корпус от сломанного садового фонарика и запитав от его фотомодуля получим схему без батареек.
Основная-же идея состоит в том, чтобы отладить порог срабатывания, и путем добавления симистора управлять насосом в теплице.
Сколько стоит готовая система управления капельным поливом? А тут два доллара!
Вот так-то.