Друзья, сегодня пятница! Самое время вспомнить о делах домашних…И тут пытливый ум ИТшника тоже найдет благодатную почву для оптимизации. Собственно о почве и братьях наших зеленых мы и поговорим.
Недавно у нас в офисе появился необычный, но очень полезный девайс – автополивщик для растений. Настоящая умная система в отдельно взятом цветочном горшке. Первым подопытным стал фикус. И, судя по его упитанности, он остался доволен. ;)
Подробности – в рассказе «зачинщика» сего «безобразия» Михаила Пичугина, ведущего инженера-проектировщика вычислительных комплексов.
Получился настоящий командный проект. Экспертная группа работала сообща: одни приносили новые модули для девайса, другие помогали с тестированием и подкидывали интересные идеи. Главный архитектор проекта (ваш покорный слуга) написал прошивку для микроконтроллера, который лег в основу устройства, и собрал все воедино.
Вот он – маленький шажок для человечества, но огромный – для фикуса.
Программно-аппаратный комплекс в разрезе
Существует целое семейство микроконтроллеров Arduino (любопытствующим советую зайти на www.arduino.cc). У Arduino есть своя среда разработки, в которой используется язык программирования на основе C/С++. Однако мы использовали их восточный аналог, nano-модель. Чип работает на 16 МГц, имеет 2 килобайта ОЗУ и примерно 30 килобайт флеш-памяти для прошивки. Система ориентирована на непрофессиональных пользователей. Фактически, это «Lego» от мира микроэлектроники, позволяющее автоматизировать самые разные процессы. Микроконтроллеры обладают достаточно простой архитектурой и стандартным набором портов. Вкупе со всевозможными модулями, реле, датчиками и т.д. они формируют устройства для решения огромного количества задач – от систем управления отоплением до радаров и роботов.
Помимо контроллера мы использовали датчик влажности, два реле для подачи электричества к механизму полива, ЖК-дисплей для вывода информации и электронные часы с батарейкой. В роли «поливалки» – моторчик для полива стекол и бачок для воды от ВАЗ-2108 :). Часы посылают импульс микроконтроллеру, который с помощью датчика проверяет влажность почвы. Если она достаточная – ничего не происходит, если нет – включается автополив. Параметры полива заданы исходя из качества почвы (ее солености).
Отказо- и катастрофоустойчивость в одном флаконе
Ведь мало кто станет спорить с тем, что внезапный «великий потоп» в случае отказа оборудования или программного сбоя – это настоящая катастрофа (особенно ночью)? Чтобы избежать подобного сюжета, мы предусмотрели несколько уровней защиты. Во-первых, установили последовательно два реле: если одно «залипнет», запасное прервет электрическую цепь и остановит поток воды. Второй защитный эшелон – программный. Он вообще оказался одной из самых интересных идей проекта. Поработав с прошивкой, мы научили систему запоминать момент полива растения. Если при следующей проверке почвы окажется, что влажность в горшке не повысилась, значит что-то случилось: кончилась вода, сломался датчик и т.д. Тогда на дисплее появится сигнал об ошибке и автоматический полив остановится.
Недавно добавили новую «фичу» – полив только в определенное время. Теперь можно задать рабочие часы устройства, предположим, с 9 утра до 8 вечера, и не бояться ночного потопа. При желании функционал всегда можно расширить с помощью новых модулей. Например, подключив модуль GSM, мы будем получать уведомления о сбоях, состоянии почвы и т.д. в твиттер или на электронную почту.
Схема устройства
Внедрение в продуктив
Базовую прошивку мы сделали за три вечера, и еще один вечер потребовался на сборку устройства. Следующим этапом была пусконаладка: тут пришлось немного «поковыряться». Например, когда не могли понять, почему не срабатывает реле. Оказалось, что нам банально не хватало мощности блока питания, чтобы справиться с бешеным моторчиком от восьмерки. Даже при переполюсовке схемы, крутясь в обратную сторону, он все равно как-то умудрялся поливать, а уж когда мы включали его в нормальную последовательность – вообще лил со страшной силой.
Цена вопроса
Если не косячить, выйдет довольно бюджетно, только придется заказывать из Китая и ждать. Простенький контроллер обойдется в 250 р., модуль часов реального времени – 100, реле – 150, экран – 300, еще 250 за корпус (я выпилил его из полочки) и 100 – за датчик влажности. Новый моторчик омывателя с баком можно купить за 300 р. или попросить у соседа по гаражу.
Прикладное значение разработки
Сфера применения самой идеи – от системы мониторинга падения электрического напряжения до автоматического самогонного аппарата. Ограничение – только ваша фантазия. Лично для меня это уже третье решение на базе микроконтроллера. Сначала была система охлаждения устройства, у которого отказала собственная система охлаждения. В зависимости от температуры она включала или выключала вентилятор и выводила климатические данные на дисплей. Затем – бортовой компьютер, который я делал для своей «Хонды» 90-го года выпуска. Здесь меня постиг просто эпический фейл: когда я все доделал и решил протестировать, оказалось, что в автомобиле нет диагностического разъема, к которому нужно подключать мое устройство, а заранее я не мог это проверить потому что надо было снимать напольное покрытие. В любом случае, это был самый интересный и мозголомный проект – одни протоколы передачи данных чего стоили.
Upd: Друзья, видим, что пост вызвал интерес с вашей стороны. Подробнее о технических деталях используемых в решении сообщим отдельным постом, о чем обязательно сообщим в данной статье.
Автор: Инфосистемы Джет