В статье автор описывает реализацию индивидуального проекта. Цель проекта: сохранение комнатных растений от увядания и гибели на продолжительный срок. Данная статья поможет любителям комнатных растений сконструировать и апробировать устройство для автоматического полива растений.
Ключевые слова: комнатные растения, автополиватель,аппаратная платформа Arduino Uno.
Комнатные растения выращивают в домашних условиях в жилых домах и общественных помещениях. Уход за ними состоит в первую очередь в соблюдении определенных условий их содержания, полив — главное из них.
Цель проекта: Сохранение комнатных растений от увядания и гибели на продолжительный срок.
Задачи: 1) Изучить возможности аппаратной платформы Arduino. 2) Сконструировать и апробировать устройство для автоматического полива комнатных растений.
Актуальность. Многие любители домашних растений, отправляясь в командировку, в отпуск или имея сложный рабочий график, переживают о сохранности растений.
Основная часть. Глава I . Теоретическая часть. Как часто нужно поливать цветы для того, чтобы они имели возможность обеспечить активный рост корневой системы и лиственной массе? Растения будут страдать, если корни получат слишком мало воды или слишком много. К сожалению, нет простого ответа на вопрос о том, как часто поливать цветы, но зато есть ряд руководящих принципов. Необходимая частота полива зависит от растения, размера горшка, типа компоста, сезона, условий в помещении и т. д. Лучший способ заключается в том, чтобы узнать, как растение дает понять, когда оно нуждается поливе. Для этого необходим индикатор влажности почвы. Индикатор влажности почвы особенно полезен для определения необходимости полива в больших контейнерах. Перед тем, как поливать цветы, необходимо определить степень влажности почвы и подготовить воду. Существует множество советов, как правильно поливать цветы, но универсального рецепта в этом деле нет.
Сердцем устройства автополивателя служит Arduino Uno .
Проект Arduino стартовал в Институте дизайна в Италии. В то время студенты использовали микроконтроллер BASIC Stamp, стоимость которого была значительной для многих студентов. В 2003 году Эрнандо Барраган создал платформу для разработки Wiring в качестве проекта магистерской диссертации. Целью проекта было создание простых и недорогих инструментов для создания цифровых проектов не инженерами. В 2003 году Массимо Банци вместе с Дэвидом Меллисом, другим студентом IDII, и Дэвидом Куартьелесом добавили в Wiring поддержку более дешевого микроконтроллера ATmega8. Но вместо того, чтобы продолжить работу над Wiring, они разделили проект и переименовали его в Arduino. Слово «uno» на итальянском языке означает «один» и было выбрано для обозначения первого выпуска программного обеспечения Arduino.
Arduino Uno — это плата микроконтроллера с открытым исходным кодом, основанная на микроконтроллере Microchip ATmega328P и разработанная Arduino.cc. Плата оснащена наборами цифровых и аналоговых контактов ввода, которые могут быть подключены к различным платам расширения и другим схемам. Плата имеет 14 цифровых входов / выходов, 6 аналоговых входов / выходов и программируется с помощью Arduino IDE через USB-кабель типа B. Он может питаться от USB-кабеля или от внешней 9-вольтовой батареи, но принимает напряжения от 7 до 20 вольт.
Программы для Arduino пишутся на обычном C++, дополненным простыми и понятными функциями для управления вводом-выводом на контактах.
Следующая важная часть устройства — это сам язык программирования. C++ (Си++) — компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования.
Разработка языка началась в 1979 году. Целью создания C++ было дополнение C возможностями. Изначально новый язык назывался «C с классами», но затем имя было изменено на C++ — это должно было подчеркнуть как его происхождение от C, так и его превосходство над последним.
Первый выпуск C++ для коммерческого использования состоялся в 1985 году, вместе с публикацией книги «The C++ Programming Language», которая на долгое время стала его неофициальным стандартом. В 1989 году вышла вторая версия языка в сопровождении книги «The Annotated C++ Reference Manual».
В 1990-х годах язык стал одним из наиболее широко используемых языков программирования общего назначения. Первым официальным стандартом языка стал ISO/IEC 14882:1998, более известный как C++98.
В 2003 году была принята его дополненная версия, C++03, а в 2005 году был опубликован «Library Technical Report 1» — документ, описывающий расширения стандартной библиотеки. TR1 не является стандартом, но большинство актуальных компиляторов C++ поддерживает его. Наконец, в 2011 году был принят текущий стандарт, C++11.
Рассмотрим пример минимально возможной программы на C++ для Arduino:
voidsetup()
{
}
voidloop()
{
}
Для начала стоит понять, что программу нельзя читать и писать, как книгу: от корки до корки, сверху вниз, строку за строкой. Любая программа состоит из отдельных блоков. Начало блока кода в C/C++ обозначается левой фигурной скобкой {, его конец — правой фигурной скобкой}. Блоки бывают разных видов и какой из них, когда будет исполняться зависит от внешних условий. В примере минимальной программы мы можем видеть 2 блока. В этом примере блоки называются определением функции. Функция — это просто блок кода с заданным именем, которым кто-то затем может пользоваться из внешней.
В данном случае у нас 2 функции с именами setup и loop. Их присутствие обязательно в любой программе на C++ для Arduino. Они могут ничего и не делать, как в нашем случае, но должны быть написаны. Иначе на стадии компиляции мы получим ошибку.
Большую роль у нас играет датчик влажности, который определяет влажность почвы. У всех подобных датчиков имеется 3 выхода — VCC (питание), GND (земля) и S (сигнальный выход). Из-за особенностей работы датчика и относительно небольшого его потребления, питать датчик желательно от цифрового пина микроконтроллера, включая лишь на время замера и выключая после него.
Датчик влажности почвы Arduino предназначен для определения влажности земли, в которую он погружен. Он позволяет узнать о недостаточном или избыточном поливе наших домашних или садовых растений.
Работа датчика влажности почвы довольно проста. Вилка в форме зонда с двумя открытыми проводниками действует как переменный резистор (потенциометр), сопротивление которого изменяется в зависимости от содержания воды в почве.
Типовой датчик влажности почвы состоит из двух компонентов:
1) зонд: вилочный зонд с двумя открытыми проводниками, который погружается в почву или в любое другое место, где должно измеряться содержание воды;
2) модуль: электронный модуль, который соединяет датчик с Arduino. В соответствии с сопротивлением датчика модуль выдает выходное напряжение, которое доступно на выводе аналогового выхода (AO). Этот же сигнал подается на высокоточный компаратор LM393 для его оцифровки, с выхода которого сигнал подается на вывод цифрового выхода (DO).
Дисплейвкаком-то смысле можно считать, как дополнение, ведь не всем важно видеть влажность почвы, главное, что это видит компьютер.
Жидкокристаллический дисплей (Liquid Crystal Display) LCD 1602 является хорошим выбором для вывода строк символов в различных проектах. Он стоит недорого, есть различные модификации с разными цветами подсветки.
Для подключения необходимы сама плата Ардуино, дисплей, макетная плата, соединительные провода и потенциометр
Насос или помпа — это механическое устройство для подачи/перекачки некоего текучего вещества, например, жидкости или газа, из более низкой в более высокую точку или из зоны низкого в зону высокого давления.
Глава II . Практическая часть. Сборка устройства. Для начала все модули: датчик влажности, дисплей и насос нужно подключить к плате Arduino Uno через макетную плату с помощью проводов. Далее нужно Arduino Uno подключить к компьютеру через последовательный USB-порт и открыть среду разработки Arduino Uno. Данную среду я скачала с официального сайта, написала в ней код программы на языке СИ++, отправила через USB на Arduino Uno (рис. 1а).
После подключения всей схемы помпу опустила в емкость для воды. В проекте использован микро водяной насос DC 3–6V 120L/H Low (помпа) с рабочим напряжение 3…12В и садовый шланг. Вода подается из обычной пластиковой бутылки. Датчик влажности вставляем в почву с растением и включаем плату. Для этого использовала адаптер.
Рис. 1а. Схема работы автополивателя. Рис.1б. Собранное устройство
1— Датчик влажности, 2 — плата Ардуино Уно, 3 — механический ключ или макетная плата, 4 — насос, 5 — дисплей
Все вышеперечисленные части устройства соединяются к плате с помощью проводов «папа-мама» и «папа-папа». Источником питания для данного устройства служит стандартная электросеть 220 вт. (рис. 1б).
Заключение. Это мой первый самостоятельный проект, первая работа с аппаратной платформой Arduino Uno.
Я заинтересовалась возможностями данной платформы, у меня возникли новые идеи. Я хочу дополнить к данному устройству удаленный доступ, чтобы, находясь в любой точки мира, я могла сама управлять данным механизмом. Для этого мне нужно более подробно изучить Arduino Uno и сам язык программирования. Почему я выбрала именно это устройство —автополиватель растений, поскольку я всегда хотела иметь какое-то уникальное растение, но всегда боялась, что попросту буду забывать его поливать. А это устройство будет все делать вовремя.
При выполнении проектной работы я испытала сложности с работой дисплея и платы. Плата периодически зависала, а дисплей показывал неточную влажность. Причина всему этому поддельное производство. Чтобы избежать данной проблемы нужно все модули покупать в оригинальном виде.
Литература:
- Воронцов В. В. Уход за комнатными растениями. Практические советы любителям цветов. — М.: Фитон+, 2011. — 184 с.
- Торопов С. Школа юного изобретателя//Юный техник, 1980. — № 11, С.47.
- АрдуиноWeb: https://arduinomaster.ru/uroki-arduino/arduino-uroki-nachalo-raboty/https://amperka.ru/page/what-is-arduino
- https://all-arduino.ru/arduino-dlya-nachinayushhih/
- Растения и их полив Web: http://www.plantopedia.ru/window-gardening/sekrets/plant-care.phphttps://iplants.ru/ruhod.htm
- https://orhide.ru/?p=2578
- Arduino UNO Web: https://voltiq.ru/wiki/arduino-uno-review/
- http://arduino.ru/Hardware/ArduinoBoardUno