Теплица на Ардуино-Мега. Часть 7.
Для тех, кто интересуется моим рассказом о создании умной теплицы - продолжение.
20 мая. Теплица обзавелась передачей данных о своем состоянии. Что сделано:
1. На Raspberry-Pi установлены веб-сервер Apache, MySQL, PHP. Спасибо за помощь коллеге по работе - Евгению.
2. Raspberry-Pi подключено дома к роутеру, интернет имеет статический IP-адрес.
3. Сын написал программу, которая будучи запущенной на Распберри-Пи, принимает UDP пакет, содержащий массив из 16 элементов с данными по теплице и записывает его в базу данных.
4. К Ардуино Мега по Serial порту подключен ESP8266 LoLin NodeMCU, который также прошивается из Arduino-IDE. Скетч пока тестовый, самый простой: http://ideone.com/q3GpDC
5. К скетчу теплицы добавлена функция отправки данных, измененный скетч для теплицы: http://ideone.com/EUS6W5
6. @MDIMAN, спасибо за написанную страницу, на которой отображаются данные о теплице, получаемые из базы данных.
Совсем короткое видео, как теперь все выглядит, можно посмотреть тут.
Страница, на которой отображаются данные выглядит просто, но информативно:
Собственно, данные с датчиков, статус бака, окон и обогревателей с датой и временем изменения состояния.
Теперь "приключения электроника" с подключением ESP 8266:
1. Я полагал, что сериал порт надо подключать так: Rx-Tx. Ан нет, оказалось, что клемма Rx ESP должны быть подключены к клемме Rx Меги. То же и с Тх.
2. Поскольку плата ESP8266 LoLin NodeMCU подключается для программирования по USB, а на плате присутствует стабилизатор трехвольтовый, я решил подключить 5в для питания устройства к клемме Vin. К тому же в разных статьях, которые я читал, так и советовали. Опять не то. Процессор греется, плата не работает. Подал 5в через разъем USB, все хорошо. Может с платой что-то не то? Так и поставил, отрезал кусок от шнура USB и запитал от 5в через него.
3. Несмотря на многократное тестирование, на месте плата отказалась цепляться к вайфаю. Включаю точку доступа на смартфоне - цепляется, а к роутеру ни в какую. Предположил, что дело в названии точки доступа. Что-то вроде TP_Link-600 (точно цифры не помню). Изменили название точки доступа в роутере, все заработало. Я подумал, что виновато тире, сын говорил, что нижнее подчеркивание, но, поскольку избавились сразу и от того и от этого, сказать точно не могу, в чем причина была.
4. Интернет там не очень, DSL-модем при плохой телефонной линии, пинги теряются. Соответственно и UDP пакеты тоже, иногда несколько подряд. Но поскольку они идут раз в 10 сек, то даже одного из 10 пакетов достаточно, чтобы получать актуальную информацию, зато никаких зависаний.
Какие вскрылись проблемы за это время: Включение обогревателя в 1200Вт оказалось непосильной ношей для Ардуиновского реле. И вовсе оно не 10А. Временно поставил каскадом еще реле, на 30А. Сейчас пытаюсь сколхозить управление на симисторе.
Теплица на Ардуино-Мега. Часть 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); // Насос отключить
Все сразу заработало, но непонятки так и остались. Раз уж скетч я выкладывал ранее, выложу и измененный.
Теплица на Ардуино-Мега. Часть 5.
Поскольку прошлые рассказы о постройке умной теплицы вызвали интерес,
Теплица на Ардуино-Мега. Часть 4.
решил рассказать своим подписчикам и всем, кому интересно, как продвигаются с ней дела.
Несмотря на то, что снег еще у нас не сошел, неделю назад я установил блок управления в теплицу и подключил обогрев почвы (теплый пол) пока без автоматики и обогрев воздуха обогревателем с автоматическим управлением. По прошествии недели, в минувшие выходные оказалось, что почва прогрелась до 30 градусов, на момент осмотра обогреватель отключен, температура воздуха 22 градуса - солнце уже работает как надо.
Кроме того, 15 апреля я включил автопроветривание, чтобы понаблюдать за его работой.
Посмотреть как работает система автопроветривания и регулирования температуры можно на Youtube.
Попробовал следующие настройки:
открывание окон 25 градусов
закрывание окон 21 градус
включение обогревателя 18 градусов
выключение обогревателя 20 градусов
Нстройки оказались неоптимальными. То есть на улице темпратура 8 градусов и ветер. Примерно каждые 20 минут температура в теплице достигала 25 градусов, окна открывались, теплица быстро проветривалась, окна при 21 градусе начинали закрываться, пока закрывались, температура падала еще ниже, поэтому сразу после закрытия окон на 5 мин. включался обогреватель. Изменил настройки:
открывание окон 28 градусов
закрывание окон 22 градус
включение обогревателя 16 градусов
выключение обогревателя 19 градусов
Все устаканилось, теплица перестала хлопать окнами. Возможно надо установить еще датчик температуры на улице и коррелировать как-то управление температурой в теплице, основываясь на его показаниях.
Систему открытия окна тыла, котора была на шкиве и веревочке, признал ненадежной, заменил на зубчатый ремень.
Когда переделывал окно, увидел ошибку в программе. Там есть защита от несработки концевика, то есть если концевик не сработал, то мотор работает какое-то время и отключается. Но счетчик попыток я не сделал и мотор, отработав положенные секунды отключается, но затем включается вновь, пытаясь закрыть окно и замкнуть концевик. Допилю код - выложу обновленную версию.
На следующих выходных - посадка огурцов.) Автополив пока включить невозможно, отрицательные температуры, подача может перемерзнуть.
Теплица на Ардуино-Мега. Часть 4.
Некоторые мои подписчики интересуются, как продвигаются дела с теплицей, о которой я рассказывал ранее:
Теплица на Ардуино-Мега. Часть 2.
Теплица на Ардуино-Мега. Часть 3.
Будет много текста, но он пригодится тем, кто интересуется, все-таки почти 200 подписчиков. На сегодняшний день можно сказать, что электроника готова к дачному сезону, а остальное было готово еще в прошлом году. Из схемы изменилось лишь одно - добавился аналоговый датчик температуры LM235Z. Просили выложить измененную программу - вот, выкладываю в конце поста.
Немного о том, как все получилось так как получилось. Изначально настройка параметров теплицы с кнопочек с отображение на дисплее не планировалась, поэтому я предусмотрел кнопки и переключатели в ящике. Все это можно было тоже реализовать программно, но раз уже сделал, то они сохранили свою функциональность:
- переключатель обогрева почвы (обогрев отключен / включен автоматический обогрев),
- переключатель обогрева водуха (обогрев отключен / включен автоматический обогрев),
- трехпозиционный переключатель открывания окон (автоматика отключена, окна открыты / автоматическое управление окнами / автоматика отключена, окна закрыты),
- кнопка набора воды в бак,
- кнопка полива,
- переключатель режимов полива (один раз в день / два раза в день)
- кнопка включения подсветки дисплея, установленная сверху ящика. Включает подсветку на 30с.
Сразу понятно, что все это для случаев, если вдруг что-то пойдет не так с автоматикой.
Теперь о настройках, которые можно установить с кнопок на панели. Основное меню состоит из 3-х пунктов:
1. Меню настроек.
2. Установка даты-времени.
3. Тестовая программа для концевиков и моторов открывания окон.
С установкой даты и времени все понятно. Тестовая программа - чтобы подключить окна, погонять их с помощью кнопочек, проверить как закрываются, правильно ли подключил, настроить сработку концевиков и т.д.
В меню настроек можно установить следующие параметры:
1. Время полива.
2. Время второго полива (если включен режим полива 2 раза в день)
3. Время набора воды.
4. Температура открытия окон.
5. Температура закрытия окон.
6. Температура включения обогрева почвы.
7. Температура отключения обогрева почвы.
8. Температура включения обогрева воздуха.
9. Температура отключения обогрева воздуха.
Жена сказала, что поскольку нет никакого резервирования и защиты, если концевики не сработают, нужно еще установить предельное для работы насоса и моторов окон. Это было правильное и справедливое замечание, поэтому пришлось ввести и такие настройки:
10. Предельное время работы мотора открывания окна 1.
11. Предельное время работы мотора открывания окна 2.
12. Предельное время работы мотора закрывания окна 1.
13. Предельное время работы мотора закрывания окна 2.
14. Предельное время работы насоса.
15. Время работы насоса для запуска полива.
Об изменениях. Не могу понять, что творится с датчиком DHT11. Работает, работает, а вдруг раз, и повиснет. Смотрел на форумах - многие жалуются. Коллега сделал себе метеостанцию - та же песня. Решил поступить таким образом. Добавил в схему аналоговый датчик LM235Z. Программно написал, чтобы при зависании DHT11 система переключалась на данные с LM235Z. Приедет еще один датчик - буду тестировать его на другой плате до посинения, может мне попался не совсем исправный экземпляр. Даже если добьюсь нормальной работы цифрового - аналоговый для резерва оставлю.
Еще один датчик DS18B20, такой же, как остался закопанным в почву, уже приехал. Поэтому я смог подключить его к панели и панель на столе была протестирована полностью. Работу концевиков я имитировал микропереключателями, датчики прислонял к бутылке со льдом, а в кабинете 27 градусов, жарко, так что включение всех реле протестировал.
Теперь о грустном. Очень хотелось видеть данные с теплицы онлайн. Был приобретен модем SIM800L и Распберри Пи. На Малинке с помощью коллег по работе подняли веб-сервер, запустили модем. Перепробовали кучу библиотек, но они то конфликтовали с другими библиотеками, то зависали. В итоге все-таки добились, чтобы данные передавались по GPRS Get-запросом в базу записывались и на сайте отображались. По IP сайт был доступен в глобале. Однако связь была неустойчива и модем терял GPRS. Приходилось перезагружать модем и как-то раз я, выдергивая провода, прилично долбанул его статикой. Волшебный синий дым и него не вышел, но искра пролетела знатная. Тут уж он совсем что попало погнал. Короче, в этом году мне не удастся увидеть теплицу онлайн. Есть и еще один аспект. Передавать данные на сервер лучше UDP пакетами. Это точно спасет от зависаний, но я не знаю, как данные из этих пакетов затолкать в базу, потому что, когда я учился, ЭВМ были еще с комнату размером и программирование я освоил только на начальном уровне, да и было это в 89-м году. Если кто поможет, буду признателен и в след. году теплица появится онлайн. Теперь, собственно программа для теплицы. Прошу не смеяться, я, можно сказать, пенсионер-самоучка, но код рабочий. Настроечные вещи, типа вывода в монитор порта не убирал специально - может, пригодятся для отладки. Если будут какие-то изменения в процессе эксплуатации летом - могу потом исправленное выложить. Приму конструктивную критику. Небольшое видео - как работает настроечное меню.
Теплица на Ардуино-Мега. Часть 2.
Несмотря на то, что в этой части не будет ничего про электронику, я все же опубликую в этом сообществе, поскольку это продолжение статьи, вызвавшей интерес читателей.
Многие читатели заинтересовались именно постройкой, инструментами и приспособлениями для сгибания (очевидно в каждом есть что-то от Бендера), поэтому эту часть статьи посвящу этой теме.
Посетил сегодня свою мать и зашел к своему родственнику Александру специально, чтобы сделать несколько фотографий, несмотря на -32 градуса по Цельсию.
Как видно по фотографии, основа приспособления - два ролика на подшипниках, находящиеся на неподвижной части и один ролик с зубчатой передачей на колесо - на подвижной части устройства, имеющей ход вверх-вниз.
С другой стороны хорошо видно, что прижим подвижного ролика осуществляется с помощью домкрата, который, преодолевая сопротивление возвратной пружины, прижимает ролик к профилю. Этим же домкратом регулируется радиус загиба.
Из-за некоторого несовершенства конструкции (отсутствия направляющих для профиля), процесс изготовления дуг осуществляется следующим образом.
1. Устройство жестко закрепляется к бетонному постаменту (в наше случае к тротуару).
2. Призывается на помощь жена (в моем случае - моя).
3. Профиль вставляется межу верхним роликом и нижними, причем верхний ролик над тем местом профиля, с которого должен начинаться загиб. Шов профиля (если присмотреться, его видно) должен находиться вверху.
4. Создается небольшой (!) прижим с помощью домкрата и Вы начинаете вращать колесо.
5. Жена и родственник держат профил с двух сторон, направляя его в ролики, чтобы он не "пошел винтом".
6. Когда будет выполнен первый проход, увеличивается прижим и все крутится в обратную сторону. И так 4-5 раз. Радиус контролируется методом измерения рулеткой расстояния между концами профиля.
Процесс мне чем-то напомнил закатывание стеклянных банок для консервирования.
Кстати, Александр сказал, что делал знакомому дуги из круглых труб, все получилось неплохо, несмотря на отсутствие в роликах проточки под круглое.
Был еще вопрос про садовые качели, но... все под снегом
Как видите почти ничего не видно, тент снят, диван, подвешивающийся на цепях, тоже снят, красивые вьющиеся растения отсутствуют. Зато по центру на заднем плане видна моя теплица)).
В этом случае, загибание труб небольшим радиусом изгиба осуществляется при помощи обычного трубогиба. Его я не сфотографировал, но нашел в интернете такой же:
http://obustroeno.com/wp-content/uploads/2016/07/trubka-pros...
Про загибательство все, надеюсь, что в течение недели нарисую схему и поподробнее распишу про электронику. Мое не ставлю - девайс конструкции и производства Александра.
Теплица на Ардуино-Мега.
Все мои истории с предысторией. Моя мать живет в собственном доме, но здоровье уже не позволяет ей возиться в огороде. А моя жена, кандидат наук, очень любит "отдохнуть", копаясь в верхнем слое планеты. В соседем от матери доме живет моя сестра с семьей. Так вот, муж моей сестры, зовут его Александр, ближе к концу лета (мой отпуск как раз был где-то на середине), позвал меня посмотреть на сконструированный им девайс. Это было устройство с роликами, шестеренками и большим круглым рулем. Александр пояснил, что девайс предназначен для того, чтобы гнуь металлический профиль в красивые ровные дуги. Устройство впечатляло своей основательностью, а он пояснил, что теперь страсть как хочется что-то гнуть, но, вроде как нечего, да и свободные средства отсутствуют. Я похвалил его и спокойно себе пошел в свой огород, помогать жене наслаждаться огородными работами. И тут жена спрашивает, видел ли я устройство, и не хочу ли я принять предложение Александра загнуть нам профилей на теплицу. Я понял, что хитрый родственник уже заинтересовал жену перспективами новой теплицы для огурцов. Я с кислой рожей стал говорить, что надо ее открывать-закрывать, поливать, а мы только на выходных... и т.д. А она мне и говорит: "Ну вот и сделай на Ардуине, чтоб она сама.. Или не по силам?"
Знает меня, подловила. Ну что ж, вызов принят. Сварочник у Александра в наличии, у меня в наличии деньги на материал. Сначала, использовав свои скупые знания в 3Д моделировании, нарисовал во FreeCad проект. Вот такой:
Кое-что, надо сказать, в процессе строительства я изменил, но по мелочи. Итак, затарился 6-ти метровым профилем 25х25мм, стенка 2мм, плоским шивером, и стройка началась. Вдвоем с женой сделали планировку местности - она всегда активно и с удовольствием помогает. Затем пришло время сварочных работ:
Семья активно помогала, дочь занималась покрасочными и украшательскими работами, а также подавала инструменты.
Пол в одной из грядок решил сделать с подогревом - пусть пораньше садят свои огурцы.
Засыпал, как положено, песочком, прикрыл металлической сеткой, утеплил наружний борт пеноплексом, а уж потом землю насыпали.
Установил бак на одну поливку (в него насос будет воду накачивать). Установил систему полива самодельную.
Дорожку к теплице выложил (вокруг газончик будет).
После этого занялся форточками. Алекандр, идейный вдохновитель, сварщик и любитель гнуть профили, (когда он говорил, как ему не терпится опробовать свой девайс и что-то гнуть, напомнил мне робота из м-ф "Футурама") еще и занимается ремонтом автомобилей. Поэтому подарил мне стаклоподъемник от какого-то иностранного автомобиля. Еще валялся у меня от "Приоры". Вот они-то и были использованы для открывания форточек. Вот этот от иномарки, кажется от Субары:
Попрошу за качество видео не пинать, я не оператор. Вот видео второго окна, которое открывается стеклоподъемником от приоры, но его я решил переделать, поставлю зубчатый ремень от 3Д принтера, уже приготовил.
Потом стал заниматься электонной частью, сделал коробочку:
Натолкал туда электроники
А тут уже и осень наступила. Написал код пробный, успел открывание и закрывание окон по температуре проверить, полив по времени.
Настроить не успел как следует. Сейчас пишу код, чтобы настройки с кнопочек вводить, на дисплее смотреть. Надеюсь что уже этой весной запущу. Длинновато получилось, но куда деваться? Баяномер неадекватен. Выдал много всего, включая А.М.Горького и спящих ежей.
Купил телевизор, новый, умный.
Принес, включил, а он и спрашивает:
- Какой язык пожелаете?
- Язык русский, давай уже показывай кино.
- А в какой стране живете?
- В России, кино давай.
- А часовой пояс у тебя какой?
- Московский, кино уже давай, ирод.
- Минуточку, куда спешишь у нас с тобой вечность впереди.
- Точно вечность?
- Клянусь годом гарантий.
- Ладно, но ты это кино то давай, там сейчас самое интересное начнется.
- Вот нетерпеливый, уже включаю. О да у тебя WiFi дома есть, давай сперва его подключим?
- АААА, вот тебе пароль зараза и что бы по ночам на левые сайты не лазил, понял?
- Да не буду честно, можешь даже пароль на допуск к материалам 18+ поставить. Ах, я тебе говорил что у меня гарантия год но я с тобой буду вечность?
- Да говорил, давай хотя бы концовку фильма глянем, а?
- Ой, ну чего ты начинаешь. Ты лучше прочти вот это. Не, пропустить нельзя. Нужно листать до конца. Я тебе уже говорил что у меня гарантия год?
- Да говорил, да я согласен с тем что там написано. Кино давай, хотя бы кто снимался посмотрим.
- А ты знаешь что я могу из Google Play программки ставить, хочешь покажу?
- Да знаю, ты лучше кино уже покажи.
- Ой всё, не хочешь гугл аккаунт вводить так бы и сказал сразу, орет тут чего то. Ты же помнишь что гарантия год?
- Помню, даже помню что уже не год, а 364 дня и 22 часа 17 минут. Будь телевизосапиенсам, давай хоть новости посмотрим, а?
- А давай! Сейчас только каналы давай найдем.
- ААААА.
- Ну чего орать. я уже нашел 23 цифровых канала, подожди еще минут 30 я не все аналоговые частоты проверил.
- Не надо, аналоговые.
- Как скажешь, но тогда я не запомню цифровые. Продолжим ;)(муахахахаха).
- Ладно, хоть Познера посмотрю.
- Слушай, тут такая фигня. Я нашел всего три аналоговых канала но они плохо показывают, давай я не буду их добавлять в список каналов?
- ХО-РО-ШО! Покажи уже что нибудь.
- Да что ты так нервничаешь. Слушай, я WiFi потерял, пароль не подскажешь еще раз, ну пожалуйста?
- На зараза, и включай уже картинку.
- Уже включаю, дай только загружу твои персональные рекомендации. Вот например France 24, хороший канал, давай посмотрим только прочти сперва это. Нет, пропускать нельзя.
- Уффф, я не понимаю по французски, давай хотя бы карусель включи, там мультики.
- А давай!
- Урааа, почему экран темный?
- Щас все будет, в 4К и без потерь качества... Только давай я сперва обновления поставлю, без него ни как.
- Давай, только быстро.
- Да тут всего 3, нет пять, ну может 32 минуты и все будет просто супер.
- Убью.
- Я тебе говорил что у меня гарантия год, а от дополнительной ты отказался в магазине?
- Точно убью.
- Ага, давай. Только я сперва пере загружусь, а потом убивай.
- !!!!!!
- Какой язык пожелаете? А в какой стране живете? А часовой пояс у тебя какой? О, у вас есть WiFi. А я вам говорил что у меня год гарантииии.....
Отличный телевизор, всем рекомендую.



















