Skip to content

Таймер автополива растений

License

Notifications You must be signed in to change notification settings

asilichenko/Autowatering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Autowatering

Таймер автополива растений

Доработка проекта https://github.com/AlexGyver/Auto_Pump_Sleep

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

Поскольку вачдог attiny срабатывает неточно, необходимо использовать поправочный коэффициент, который переведет реальные секунды в тики вачдога. Например, необходимо чтобы таймер срабатывал каждые 60сек, но если поставить 60 тиков, то реально будет проходить 63сек. Чтобы скомпенсировать эту разницу домножаем 60сек на поправочный коэффициент (60 / 63) 0.95: 60с * 0.95 = 57т. Таким образом, вачдог отработает 57 тиков и это займер реальных 60 сек.

Чтобы вычислить поправочный коэффициент наиболее точно:

  • в pump.ino выставляем значения #define WORK 5 #define PERIOD 5
  • прошиваем Pump.ino в attiny
  • в TimerCorrectionCalculator.ino WORK и PERIOD соответсвуют переменной EXPECTED (в миллисекундах)
  • TimerCorrectionCalculator.ino выводит в порт информацию при каждом срабатывании таймера attiny
  • corr - вычисляемый поправочный коэффициент. Чем больше времени работает система, тем точнее значение. 1ч достаточно для точности в несколько секунд на 3 дня.
  • прошиваем TimerCorrectionCalculator.ino в ардуино
  • подключаем attiny к GND, VCC и D12 ардуино
  • подключаем ардуино к компьютеру
  • открываем монитор порта
  • каждые WORK и PERIOD сек ардуино будет писать в порт результаты вычислений
  • после того как получена требуемая точность - указываем поправочный коэффициент в TIMER_CORR файла Pump.ino
  • выставляем необходимые значения в INTERVAL, WORK и PERIOD файла Pump.ino

SENSOR_PIN: берем два провода, один подключаем к SENSOR_PIN, второй к GND, бросаем в воду. Между собой провода не замыкать - из замкнет вода, что и будет индикатором наличия воды. Нет воды - нет соединения, помпа не запустится. Если в этом нет необходимости - комментируем строчку "#define SENSOR_PIN" и проверка выполнятся не будет.

МК очень не любит сильные помехи по питанию. Помпа создает сильные помехи во время работы, которые приводят к перезагрузке МК. Для того чтобы избежать данной проблемы необходимо использовать стабилизатор напряжения (если критична энергоэффективность - можно применить low-drop стабилизатор). Например: LP2950CZ-5.0 (потребляет 130мкА) или UM1550S-5.0 (потребляет 2мкА, но очень мелкая деталюшка).

Troubleshooting

  • Дешевые китайские помпы

Эти помпы - откровенный хлам. Годятся разве что для одноразового или демонстрационного использования. По сути, это обычный электродвигатель с крыльчаткой в пластмассовом корпусе. Вал двигателя - железный = ражавеет. В месте выхода вала из отсека двигателя, вода потихоньку просачивается внутрь и затопляет двигатель - рано или поздно он выйдет из строя.

Решение: использовать качественные более дорогие и редкие бесщеточные помпы.

  • Проблема SENSOR_PIN

Дешовые китайские помпы имеют очень плохую гидроизоляцию, вследствие чего, "питание пробивает на массу", т.е. конктакты двигателя оказываются затоплены, а значит электрически соединены и между собой и с "датчиком наличия воды". Поскольку датчик воды определяет наличие воды по низкому потенциалу (соединение с GND), а в воде возникает высокий потенциал в момент включения двигателя, то МК интерпретирует это как отсутствие воды и отключает помпу. В результате система как будто не срабатывает в положеное время.

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

About

Таймер автополива растений

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages