Міжнародная канферэнцыя распрацоўнікаў і карыстальнікаў свабодных праграм

Smart GreenHouse

Dzmitry Yasevich, Vasili Slapik, Pavel Vervenko, Dmitry Ogievich. Minsk, Belarus

LVEE 2014

«Java for Farmers»: Greenhouse monitoring and automation, using Java, Raspberry Pi, Linux and multiple sensors. Smart Greenhouse Project is a Oracle IoT winner 2014 in professional category.

История проекта

Ни для кого не секрет, что “умные” программные решения (дома, парники, и т.д.) находят все большее применение в реальном мире. Узнав о существовании Java Embedded для создания “Интернета вещей”, мы загорелись идеей попробовать ее в деле. После недолгого обсуждения в качестве объекта для экспериментов была выбрана “умная” теплица.

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

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

Java Embedded

Java уже успела зарекомендовать себя в качестве успешной платформы для решения множества задач, включая и “умные” системы. Если охватывать весь спектр техники, то можно насчиать более 10 млрд устройств, использующих Java. При этом подавляющая часть таких устройств так или иначе базируются на *nix платформах.

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

  • Java является одной из самых популярных платформ для разработки приложений;
  • Оптимизирована для Embedded решений;
  • Высокопроизводительные, переносимые приложения;
  • Свободно распространяемые инструменты разработчика;
  • Проверенная модель безопасности.

Как показала практика, для создания “умной” теплицы с помощью Java Embedded достаточно скромных ресурсов Raspberry Pi, работающей под управлением Linux.

Функциональные возможности теплицы

К числу основных особенностей проекта относятся:

  • Контроль и управление светом.
  • Контроль полива.
  • Контроль температуры и влажности.
  • Удаленный мониторинг текущего состояния теплицы.
  • Автоматическое управление теплицей.
  • Автоматический процесс фотографирования роста растений.
  • Низкая потребляемая мощность.
  • Защита от коротких замыканий и отключения электричества.

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

Реализация

При создании нашего проекта мы старались использовать открытые и свободные компоненты и технологии: Raspberry Pi, Java Embedded, Raspbian, pi4j, Jetty и нескольких сенсоров.

Электрическая схема Smart GreenHouse показана на рисунке.

Raspbian — это операционная система, основанная на Debian и оптимизированная для Raspberry Pi, а pi4j — библиотека для работы с аппаратной частью Raspberry Pi.

Ниже приведен пример кода на Java для датчика влажности и температуры при использовании pi4j:

// инициализация
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalOutput light = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_07, "Light", PinState.LOW); // подключились к пину 7
light.setShutdownOptions(true, PinState.LOW, PinPullResistance.OFF); /* задали опцию, чтоб на выходе из приложения этот пин отключался (чтоб свет гас) */
// управление
light.high(); // включить пин
light.low(); // выключить

Текущий статус и планы

На данный момент проект все еще развивается — добавляем поддержку разных датчиков, решаем проблемы, возникающие при совместной работе нескольких таких устройств.
Также создаем специализированный дистрибутив на базе Yocto Project, содержащий все необходимое для работы автоматизированной теплицы “из коробки”.

Полный исходный код управляющей части проекта доступен по адресу https://bitbucket.org/Temdegon/greenhouse

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад