Поворотная платформа с автополивом для домашнего растения

В прошлом году мною была изготовлена вот такая приблуда для комнатного растения. Суть изделия состоит в следующем — растение поворачивается на ≈350 градусов в одну сторону, потом возвращается обратно и на столько же градусов в другую сторону. Это происходит очень медленно. Время поворота в одну сторону составляет ≈50 минут, полный цикл получается ≈700 градусов за ≈1 час 40 минут. К тому же имеется датчик влажности почвы, маленький низковольтный насос и ёмкость с водой. В итоге получается что растение поворачивается для равномерного освещения со всех сторон и отслеживается от пересыхания почвы.

Все разработано в среде SolidWorks 2019 SP5.0 , Arduino IDE, Fritzing, Sprint-Layout 6.0. Так как устройство собрано в прошлом году и нет возможности выложить фотографии процесса сборки, я буду это делать пошагово из среды SolidWorks. Думаю всё будет понятно и лишних вопросов не возникнет.

Материалы и инструменты:
— Фанера березовая 4,5 мм
— Пропитка (морилка неводная)
— Деревянные зубочистки
-Ось 50*12 мм (материал любой, у меня сосна)
— Подшипник 32*12*10 мм
-Подшипники 8*3*3 мм (31 штука)
-Дубовая дощечка толщиной 15-19мм
-Arduino Nano v3.0
-Модуль реле 5в
-Микро погружной насос 5в
-Модуль датчика влажности почвы FC-28
-Шаговый двигатель с драйвером ULN2003 28BYJ-48 5 В
-Аквариумная трубка для воздуха
-Клей ПВА
-Фрезерный станок ЧПУ или лазер для резки фанеры
-3D принтер
-Струбцины

Процесс сборки:
Для начала нужно вырезать из фанеры детали.
Скачать можно тут. Формат .SLDPRT или с сайта

004-01-2-05-detali.rar

[3.68 Mb] (скачиваний: 7)

Лично я вырезал на фрезерном ЧПУ, управляющую программу писал под фрезу 1мм, а резал фрезой 1,5мм

Итак, шлифуем вырезанные детали и начинаем сборку.

Обратите внимание, мелкие отверстия сделаны для точной сборки. В них вставляем зубочистки, они отцентрируют детали между собой. Детали смазываем клеем ПВА или подобным.

Обратите внимание, некоторые детали одинаковы и их следует размещать со смещением. Всё по прежнему нанизываем на зубочистки, предварительно смазав клеем.

Обрезаем торчащие зубочистки, стягиваем струбцинами, ждем высыхания клея, шлифуем и покрываем пропиткой. В итоге получаем готовую верхнюю деталь.

Далее вырезаем из дубовой дощечки ведущую шестерню. Деталь скачать можно тут или тут

004-01-2-05-veduschaja-shesterenka.rar

[255.54 Kb] (скачиваний: 8)

Следующий шаг будет распечатыванием шайбы 6*3*1 мм на 3D принтере в количестве 64 шт. Модель шайбы качаем отсюда. Формат .STL или с сайта

004-01-2-05-shajba-6h3h164sht.rar

[3.72 Kb] (скачиваний: 6)

. Я использовал пластик PLA.

Начинаем собирать основание. Используем предыдущий метод с зубочистками. Для начала монтируем детали в нижней части. Так же используем клей.

Далее переворачиваем и монтируем верхнюю сторону.

Срезаем торчащие зубочистки, стягиваем струбцинами. После высыхания шлифуем. Впрессовываем (или вклеиваем) подшипник 32*12*10 мм.

Далее собираем блоки скольжения. Используем мелкие подшипники, ранее распечатанные шайбы 6*3*1 мм, оси 14*3мм, кронштейны. Выглядит это так:

Собираем неспеша, используя клей. В итоге получаем вот такое:

После высыхания проверяем подшипники, чтобы вращались свободно. В случае попадания клея, нужно «раскрутить» проблемный подшипник. Пробуем собрать нижнюю и верхнюю части. Проверяем вращение. Я использовал свой вес, просто вставал на собранное изделие (75 кг) и вращался, притирая таким образом неровности фанеры. Разбираем. Далее монтируем шаговый двигатель. Для этого используем пару прокладок и винты М4*20 с гайками. Выглядит в итоге вот так:

Дальше печатаем на 3D принтере основание для монтажа радиокомпонентов. Скачать можно тут. Формат .STL или с сайта

004-01-2-05-var2-karkas-dlja-plat.rar

[416.09 Kb] (скачиваний: 7)

Крепим готовое основание. Используем при этом мелкие саморезы (9 мм). Места креплений обведены красными кружками.

Электрика:

Для начала разберём схему. Для простоты выложу ее в таком виде.

Печатную плату вырезал на фрезерном станке. Во вложении для удобства разные форматы или вариант с сайта

004-01-2-05-povorotnaja-platforma-s-avtopolivom.rar

[1.2 Mb] (скачиваний: 7)

Для прошивки нужна библиотека AccelStepper и сам код программы . Скачать с сайта

004-01-2-05_ino.rar

[1.56 Kb] (скачиваний: 8)

+

accelstepper.zip

[82.55 Kb] (скачиваний: 8)

Код программы выглядит так:

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//004-01-2-05 Поворотная платформа с автополивом
#include
#define HALFSTEP 8
int maxv = 950;//полный полив
int minv = 750;//малая влажность
int normv = 400;//влажная
int value = 0;//полученное значение
int last_value = 0;//последнее значимое изменение
int value_sdvig = 50; //значимое изменение
int ralay = 2; //пин реле
int time_work = 10;//время работы помпы в сек
int analogPin = A0;//пин датчика
//Переменные таймаута
int second = 0; // секунды
int time_off = 0; // счетчик оставшегося времени
int pause_time = 15; // время отдыха после полива в минутах
// Определение пинов для управления двигателем
#define motorPin1 8 // IN1 на 1-м драйвере ULN2003
#define motorPin2 9 // IN2 на 1-м драйвере ULN2003
#define motorPin3 10 // IN3 на 1-м драйвере ULN2003
#define motorPin4 11 // IN4 на 1-м драйвере ULN2003
// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4
// для использования AccelStepper с 28BYJ-48
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void setup()
{
Serial.begin(9600);
pinMode(ralay, HIGH); //настройка реле
digitalWrite(ralay, HIGH);
stepper1.setMaxSpeed(100.0); //максимальная скорость
stepper1.setAcceleration(100.0); //ускорение
stepper1.setSpeed(200); // колличество шагов на оборот ротора
stepper1.moveTo(53000); //колличество шагов
//полный оборот — 53000 шагов
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void poliv()
{
int time_tmp;
time_tmp = time_work;
digitalWrite(ralay, LOW);
while (time_tmp > 0 && value > normv) { // ждем истечения времени time_work или нормальной влажности почвы
delay(500);
value = analogRead(analogPin); //обновляем значение влажности
time_tmp—;
}
digitalWrite(ralay, HIGH);
second = 0; // сбрасываем секунды на ноль
time_off = pause_time; // устанавливаем задержку между поливами
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void loop() {
value = analogRead(analogPin);
if (value > (last_value + value_sdvig) || value < (last_value — value_sdvig)) { // если last_value отклонился на value_sdvig выводим value в uart
Serial.println(value);
last_value = value;
}
if ((value > (minv — value_sdvig)) && time_off < 1) poliv(); //если значение влажности > критическая влажность — 50 и не было недавних поливов
// временные функции что бы не играться с таймерами
if (second > 59)
{
second = 0;
if (time_off > 0) time_off—;
}
delay(50);//пауза 1 сек
second++;

// Изменяем направление, если шаговик достигает заданного положения
if (stepper1.distanceToGo() == 0)
stepper1.moveTo(-stepper1.currentPosition());
stepper1.run();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Собираем согласно схеме, прошиваем и готовимся к запуску. На стандартном датчике влажности рекомендую изменить родную контактную группу на напаянные сверху медные контакты от силового кабеля Ф2,5-4мм. Родных контактов хватает максимум на неделю, съдаются за счёт электроэрозионного воздействия. В качестве источника питания использовал плату от зарядки сотового телефона.

Устанавливаем ведущую шестерню на вал двигателя. У меня она свободно снимается.

Одеваем сверху верхнюю поворотную часть.

Пробуем включить. Если сделали все правильно, схема заработает сразу. Возможно придётся руками немного доработать ведущую шестерню, использую мелкий круглый напильник.

Рекомендую ставить горшок с растением 3-4 кг. Двигатель слабенький, более тяжелый горшок может не потянуть.
У меня всё. Возникнут вопросы, спрашивайте.

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Подборки: автополив Arduino

Источник: usamodelkina.ru

Понравилась статья? Поделиться с друзьями:
KIA