246

Теплица на Ардуино-Мега. Часть 6.

Серия "Умная" теплица на Ардуино-Мега

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

Теперь расскажу об автоматическом поливе. Его конструкция в моей теплице выглядит примерно так:

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

После этого вода в баке весь день греется в теплице, в которой тепло. А вечером, у меня настроено в 19-00, насос включатся на 40 секунд, вода переливается и уже самотеком, по закону сообщающихся сосудов, выливается на грядку:

Как я настраивал автополив можно посмотреть на Youtube.
Электрическую схему теплицы можно посмотреть в предыдущих постах, а вот скетч пришлось переделать. Время для работы насоса, достаточное для того, чтобы вода перелилась и начался полив, составляет 40 секунд. Я, недолго думая, написал:

digitalWrite (ReleNasos_2,0); // Включаем насос
delay (Parametr[2]*1000); // где Parametr[2] - это время в секундах, настраиваемое с  //помощью меню.
digitalWrite (ReleNasos_2,1); // Насос отключить

Однако оказалось, что если настраиваем 15 секунд, все работает нормально, а если 40, то программа останавливается на этом delay навсегда. Так и не разобрался, почему. Не подскажете начинающему? Переписал таким образом:

digitalWrite (ReleNasos_2,0); // Включаем насос
for (int Poliv_delay = 0; Poliv_delay<=Parametr[2]; Poliv_delay++)
{
delay (1000);
}
digitalWrite (ReleNasos_2,1); // Насос отключить

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

Arduino & Pi

1.5K постов20.9K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

10
DELETED
Автор поста оценил этот комментарий
Пробуй:

delay(Patametr[2] * 1000L);

Умножая два int16 числа 40 и 1000 ты получаешь отрицательное число, которое в функции delay становится очень большим положительным.

А вообще, используй timer1 и прерывания или delay в цикле как ты делаешь. Также научись пользоваться отладчиком. Решает много проблем.
раскрыть ветку (1)
14
Автор поста оценил этот комментарий
Умножая два int16 числа 40 и 1000 ты получаешь отрицательное число, которое в функции delay становится очень большим положительным.

Вот в чем проблема. Гуглил-гуглил - ничего не нашел, почему отрицательное. Я же потом написал на каждый чих функции полива Serial.print и увидел, что

Serial.print(Patametr[2] * 1000)

Выдает отрицательное число, что-то -20 с чем-то тысяч. Поищу почему. Именно после этого переписал код. А вообще смешно, притащил в теплицу столик со стулом, закрыл дверь (на улице-то снег идет) и сидел, искал причину. Ну ничего, теперь все работает.  Жена рассмеялась, потом пришла, сфотографировала:

Иллюстрация к комментарию
показать ответы
1
Автор поста оценил этот комментарий
простите, не корректно сформулировал. Почему не воспользовались готовыми поплавковыми датчиками как, например, на рисунке? Что подтолкнуло делать свой (судя по Вашему рисунку разница только в ходе поплавка\магнита по трубке)
Иллюстрация к комментарию
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

А, вот Вы о чем. Подтолкнуло то, что у меня лежали кусок пеноплекса, датчик ИО-102-16, клей PUR-501 и трубка пластиковая. 15 минут и готов датчик. Даже не задумывался о том, что его купить можно. Да и сделал я его так, как мне удобно, не нужно отверстий никаких, я его в горловину вставил.

16
DELETED
Автор поста оценил этот комментарий
Поищу почему

Дело в компиляторе. Он считает что ты множишь 2 int16 числа. Но int16 ограничивается 32767. Поэтому происходит переполнение и ты вместо ожидаемых 40000 получаешь -25536.


После чего это число передается как аргумент в функцию delay, которая в качестве аргумента принимает uint64. Поскольку uint64 беззнаковое, отрицательным быть не может, то опять происходит переполнение и вместо ожидаемых 40000 миллисекунд ты получаешь 18446744073709544384. Можно подождать 584942417 лет и ты увидишь что твоя программа не зависла на самом деле.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Спасибо, точно так и есть. Я еще поискать не успел, как Ваш ответ прочитал. Теперь все понятно.

1
Автор поста оценил этот комментарий

Там где можно обойтись поплавком и будильником механическим, мы ставим контроллер. Или всё же планируется проводить контроль влажности почвы и автоматизации вентиляции?

Использовать поплавок с герконом это тоже не очень, есть специализированные (например такие как на насосах дождевой канализации, конструктивно обеспечивают гистерезис).

Хотя если всё собрано из подручного хлама, то решение годное.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вот Вы смотрите 6-ю часть серии постов о теплице, остальные не смотрели, как я понимаю. Рекомендую, посмотрите. Сам я ничего подобного в интернете не видел. Если не хочется или лень, напишу:

Сделано:
- автоматический подогрев почвы
- автоматическое проветривание (2 форточки с электроприводом) по 2-м датчикам - основному цифровому и резервному аналоговому, автоматически включающемуся при выходе из строя цифрового.
- вывод параметров на дисплей

- дисплейное меню с 16-ю настраиваемыми параметрами и тестовыми программами

- измерение влажности почвы (пока только информативно, датчик ненадежен)

- автоматический набор воды и полив по времени

- резервирование моторов открывания форточек и насоса набора воды путем установки предельного времени работы.


Планируется:

- "продление дня" с помощью ультафиолетовых ламп

- передача данных на сайт

- управление через интернет.

показать ответы
Автор поста оценил этот комментарий

Не понимаю повального увленчения ардуинками. Очень многое можно сделать с помощью готовых решений аля программируемых реле от owen'а. Язык для новисов понятный, ошибку сделать очень сложно, бывают как на 24 вольтовых, так и на 220 вольтовых входах. А денег стоят не слишком много - пр-ка на 8 входов и 4 реле стоит около 3 рублей. Модно это шоле? Не поймите неправильно, ардуинка конечно предлагает большую область применений, да вот только ценник за релейные модули, саму ардуинку, входы и датчики получается конский.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
ардуинка конечно предлагает большую область применений, да вот только ценник за релейные модули, саму ардуинку, входы и датчики получается конский.

Давайте посчитаем, ссылки не буду выкладывать, их есть у меня в заказах, оттуда и напишу, это не самая маленькая цена, а то, что я заказал. Цены с доставкой:

Ардуино-Мега - 387.44

DHT11 Цифровой Датчик Температуры и Влажности - 54,02 руб

Плата ДИСПЛЕЯ 2004 20*4 ЖК - 235,99 руб

Переходная Пластина 2004 ЖК IIC I2C - 35,23 руб

5 В 4-канальный Релейный Модуль - 139,13 руб 2шт. - 278,26 руб

DS18b20 датчик температуры - 63,99 руб

Clock Модуль DS3231SN Для arduino - 39,34 руб.

ИТОГО: 1094,26 руб.

Можете посчитать этот же набор по оборудованию, которым пользуетесь Вы, чтобы функционал был не менее? Ну в дальнейшем я буду данные с теплицы по ВайФай передавать на сайт.

1
Автор поста оценил этот комментарий

а почему не стали использовать поплавковый выключатель?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Как это не стал? Он и выключает насос после набора воды утром. А долить немного воды для перелива - достаточно сложно сделать конструктивно с одним поплавком. Да и для мелочи такой не захотелось второй датчик делать.

показать ответы
Автор поста оценил этот комментарий

Кто вы по образованию?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Разве это так важно? Главное - кто ты по жизни). А по жизни я инжнер).

ВУЗ я окончил по специальности автоматизация и электрификация горных работ. Горный инженер-электромеханик. Но работал в сфере охранно-пожарной сигнализации. Закрытие шахт и глупость вороватого начальства в начале 90-х не позволили долго проработать в горной промышленности.

Автор поста оценил этот комментарий

Кем вы работаете?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я пенсионер, майор милиции в отставке. Работаю эникейщиком.

0
Автор поста оценил этот комментарий

Ну хз, геркон та ещё тварь, хороша только разово.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну хз, геркон та ещё тварь, хороша только разово

Вы ими пользоваться не умеете. Они по 20-30 лет без проблем работают.

0
Автор поста оценил этот комментарий
Я о том насосе, на который на видео ссылку кинул. В любом случае ты молодец. Понравилось все. Почитал твои посты. Успехов тебе.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А, ну я написал примерно такой. В смысле центробежный погружной. За пожелания спасибо.

0
Автор поста оценил этот комментарий

Ну ок.


У тебя насос на 9 кубов в час. За 40 секунд качает 100 литров. Ну и ответь сам на свой вопрос.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

У меня нет насоса 9 кубов в час. Шланг 0.5 дюйма, какие 9 кубов? насос накачивает бак за 353 секунды, это почти 6 минут.

показать ответы
0
Автор поста оценил этот комментарий
Вода переливается и уже самотеком, по закону сообщающихся сосудов, выливается на грядку

Поступающая в сосуд холодная вода уходит вниз и по сливной трубке на грядку...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Холдная вода поступает сверху и перемешивается, поскольку падает сверху на теплую под давлением..

Вам задачка: В баке находится 75л воды температурой 25-28 градусов. Для перелива добавляется 5л воды температурой 18-20 градусов. Насколько они могут остудить воду в баке?

показать ответы
0
Автор поста оценил этот комментарий

Герконы залипают и очень часто. Будьте готовы к этому. На моей памяти из 8 штук, 3 вышли из строя в первые дни, еще пара в течении месяца.


Какие решения я вижу?

Дублируйте в цепи параллельно два геркона и периодически проверяйте их работоспособность (поднесите магнит и вслушайтесь в щелчки или звонилкой)


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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я 20 лет занимался техническими средствами охраны, поэтому могу поделиться опытом:

При правильной установке герконы не залипают никогда. Причины залипания:
1. Большой ток, походящий через контакты. В моем случае 4мА - вобще ниочем. До 20мА - норм.

2. Саморезы, которые крепят корпус с герконом - должны быть тонкими и слабомагнитными. Иначе они намагничиваются и удерживают геркон.
3. Воздействие сильного магнитного поля.
4. Установка вблизи металла, склонного к намагничиванию.

"Самый адекватный вариант - использовать схему как в сливном бачке туалета для управления уровнем воды, а вашу систему использовать для анализа расхода или еще чего там может в голову прийти."

Я как раз не для надежности, а изучения возможностей простой электроники все делал.

показать ответы
1
Автор поста оценил этот комментарий
Они просто открываются и не дают сдохнуть растениям у которых нет сайта. А точное преследование температур якобы идеальных для растения это для производства с боязнью просрать инвестиции и прочее напряжение сил которое истощает людей и в городе. А тут тупая уверенность что не сдохнет и хорошо. Тем более что теплица это то еще зло . Она нужна максимум месяца полтора , а потом тупо мешает . И поливать самому и изнашивается и вредители ее очень любят.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Если бы мне тупо были нужны огурцы, я бы их в магазине купил.) Но жене их нравится выращивать. А для меня поставить просто газовые поршни - скучно.

ПС поливать самому ее, как видите, не надо. Кстати, о погоде. Третий день идет снег. На улице +1С, ночью -5. Брр...

показать ответы
Автор поста оценил этот комментарий

Не пинайте, плюсы есть?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

О чем это Вы?

0
Автор поста оценил этот комментарий

Баловался я как то организацией интерфейсов управления. Как только заимеете полноценный веб-интерфейс, откажитесь от экраничка и делите всё: 1-для юзера простого (жены/детей/соседа, минимум средств интуитивно понятного управления крутильниками), 2-инженерное меню. Плюс полностью ручное управление желательно, чтоб при подыхани контроллера можно было без пересбора теплицы полить/проветрить/подогреть.

В качестве веб-сервера поразмыслите над использованием обычной мобилки под андроидом. Аппаратно это интеграция по синезубу, модем, веб-камета(для поглядеть) и сенсорный экран.

Написанное на мобилку приложение единственный серьёзный напряг.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Мы с коллегами на работе, когда время есть, занимаемся, вот подняли на Малинке веб-сервер, MySQL, сейчас ESP-8266 пытаемся заставить данные по UDP передавать в базу. Синие зубы и приложения под Андроид мне как-то не по душе. Пусть будет сайт сначала с телеметрией.

показать ответы
4
Автор поста оценил этот комментарий
Выдает отрицательное число, что-то -20 с чем-то тысяч. Поищу почему
Гугли: переполнение переменной или буфера
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо!

1
Автор поста оценил этот комментарий
Еще максимальное время непрерывной работы насоса можно ограничить, мало ли что с датчиком случится
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Так я и сделал. У меня и на открывание окон и на насос это время присутствует. Все настраивается с помощью меню на дисплее. Если посмотрите скетч и предыдушие посты, где есть описание меню, то увидите.

0
Автор поста оценил этот комментарий

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

P.S. Икал схему но пока тщетно, за 30 лет куда то черновики ушли ... но знаю что схема взята из журналов 60-70х годов по электронике

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Знаем эту схему. Набор деталей, кусок текстолита, хлорное железо - все это будет на порядок дороже цифрового датчика, стоимостью 35р.

показать ответы
1
Автор поста оценил этот комментарий
Таймеры юзай и перейди на свои библиотеки
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну, библиотеки я только начал писать. Пока написал две. Одну под аналоговый датчик температуры Lm. https://github.com/Leo-NVKZ/Lm335 Больно часто его использовать приходится. Товарищу сейчас терморегулятор начал на самогонный аппарат делать, уже использовал.

показать ответы
0
Автор поста оценил этот комментарий

Я бы для страховки добавил второй геркон внизу, т.е. продлил направляющую  до нижней границы...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Зачем?

показать ответы
1
Автор поста оценил этот комментарий
А у нас +22
раскрыть ветку (1)
Автор поста оценил этот комментарий
У нас тоже было неделю назад 22. Теплица радостно хлопала форточками.
0
Автор поста оценил этот комментарий

Зато обвязка для этого цифрового датчика будет на порядок дороже, да и как показала ваша же практика, если вы не можете что-то настроить с первого раза, то к цене готового изделия прибавляется стоимость вашего времени.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Зато обвязка для этого цифрового датчика будет на порядок дороже


Это Вы о чем? Стоимость резистора 4,7 - 10 кОм - 80 копеек. Нужна 1 штука. Он на порядок больше чего, стоимостью 8 коп.?


прибавляется стоимость вашего времени


Неужели Вы считаете стоимость времени, потраченного на хобби? Вот Вы что любите делать? Я считаю, что в огороде копаться - в наше время не является жизненной необходимостью. Не 90-е годы, когда без огорода я бы жил впроголодь. Теперь денег хватает овощи на рынке покупать.

1
Автор поста оценил этот комментарий
Вот совершенно случайно (пьяный дурень въехал в столб) и огорчите вы свою жену сварившимися стеблями в теплице в жару с вероятностью процентов 70. Для этого нужно плюс двадцать пять и часов 5 полностью закрытой теплицы. ПОЭТОМУ нахер всякую электрику в автоматике проветривания .Газонаполненные баллоны и рычажная система . У меня работают уже 10 лет и ни одной осечки.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Во, точно. Поставлю аккумулятор, 14 Ач достаточно будет, у меня как раз есть такой.

Газонаполненные баллоны и рычажная система

А они как данные о своем открытии передают на сайт?

показать ответы
2
Автор поста оценил этот комментарий

Затык скорее всего связан с тем, что у тебя переменная Parametr объявлена как int, соответственно она может быть в диапазоне от от -32 768 до 32 767 (т.е. 32 секунды максимум) , для больших значений юзай long


http://arduino.ru/Reference/Int

http://arduino.ru/Reference/long


ну и как тут правильно заметили, используй библиотеку таймер

http://playground.arduino.cc/code/timer

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо

1
Автор поста оценил этот комментарий

А, тогда пардон, не верно понял... Тогда в Вашем случае возможно переполнение регистра,
Попробуйте разбить один Delay на несколько, если например 20 будет работать без сбоев, то сделать две задержки...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну я уже сделал через цикл по 1000мс. Теперь работает.

показать ответы
0
Автор поста оценил этот комментарий

Вариант для избавления от проблем с таймерами, просто пара герконов, один дает сигнал на включение насоса если бак пуст, второй ( тот, что есть в схеме), как и предполагается дает сигнал на остановку насоса если бак полон...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Мне не надо сигнал на включение насоса. Мне надо, чтобы вода набиралась в 10-00.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества