Умное цветоводство, или Пусти ИТ-шника в огород… Часть 1

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

    Недавно у нас в офисе появился необычный, но очень полезный девайс – автополивщик для растений. Настоящая умная система в отдельно взятом цветочном горшке. Первым подопытным стал фикус. И, судя по его упитанности, он остался доволен. ;)

    Подробности – в рассказе «зачинщика» сего «безобразия» Михаила Пичугина, ведущего инженера-проектировщика вычислительных комплексов.




    Получился настоящий командный проект. Экспертная группа работала сообща: одни приносили новые модули для девайса, другие помогали с тестированием и подкидывали интересные идеи. Главный архитектор проекта (ваш покорный слуга) написал прошивку для микроконтроллера, который лег в основу устройства, и собрал все воедино.

    Вот он – маленький шажок для человечества, но огромный – для фикуса.


    Программно-аппаратный комплекс в разрезе


    Существует целое семейство микроконтроллеров Arduino (любопытствующим советую зайти на www.arduino.cc). У Arduino есть своя среда разработки, в которой используется язык программирования на основе C/С++. Однако мы использовали их восточный аналог, nano-модель. Чип работает на 16 МГц, имеет 2 килобайта ОЗУ и примерно 30 килобайт флеш-памяти для прошивки. Система ориентирована на непрофессиональных пользователей. Фактически, это «Lego» от мира микроэлектроники, позволяющее автоматизировать самые разные процессы. Микроконтроллеры обладают достаточно простой архитектурой и стандартным набором портов. Вкупе со всевозможными модулями, реле, датчиками и т.д. они формируют устройства для решения огромного количества задач – от систем управления отоплением до радаров и роботов.

    Помимо контроллера мы использовали датчик влажности, два реле для подачи электричества к механизму полива, ЖК-дисплей для вывода информации и электронные часы с батарейкой. В роли «поливалки» – моторчик для полива стекол и бачок для воды от ВАЗ-2108 :). Часы посылают импульс микроконтроллеру, который с помощью датчика проверяет влажность почвы. Если она достаточная – ничего не происходит, если нет – включается автополив. Параметры полива заданы исходя из качества почвы (ее солености).

    Отказо- и катастрофоустойчивость в одном флаконе


    Ведь мало кто станет спорить с тем, что внезапный «великий потоп» в случае отказа оборудования или программного сбоя – это настоящая катастрофа (особенно ночью)? Чтобы избежать подобного сюжета, мы предусмотрели несколько уровней защиты. Во-первых, установили последовательно два реле: если одно «залипнет», запасное прервет электрическую цепь и остановит поток воды. Второй защитный эшелон – программный. Он вообще оказался одной из самых интересных идей проекта. Поработав с прошивкой, мы научили систему запоминать момент полива растения. Если при следующей проверке почвы окажется, что влажность в горшке не повысилась, значит что-то случилось: кончилась вода, сломался датчик и т.д. Тогда на дисплее появится сигнал об ошибке и автоматический полив остановится.


    Недавно добавили новую «фичу» – полив только в определенное время. Теперь можно задать рабочие часы устройства, предположим, с 9 утра до 8 вечера, и не бояться ночного потопа. При желании функционал всегда можно расширить с помощью новых модулей. Например, подключив модуль GSM, мы будем получать уведомления о сбоях, состоянии почвы и т.д. в твиттер или на электронную почту.

    Схема устройства



    Внедрение в продуктив


    Базовую прошивку мы сделали за три вечера, и еще один вечер потребовался на сборку устройства. Следующим этапом была пусконаладка: тут пришлось немного «поковыряться». Например, когда не могли понять, почему не срабатывает реле. Оказалось, что нам банально не хватало мощности блока питания, чтобы справиться с бешеным моторчиком от восьмерки. Даже при переполюсовке схемы, крутясь в обратную сторону, он все равно как-то умудрялся поливать, а уж когда мы включали его в нормальную последовательность – вообще лил со страшной силой.

    Цена вопроса


    Если не косячить, выйдет довольно бюджетно, только придется заказывать из Китая и ждать. Простенький контроллер обойдется в 250 р., модуль часов реального времени – 100, реле – 150, экран – 300, еще 250 за корпус (я выпилил его из полочки) и 100 – за датчик влажности. Новый моторчик омывателя с баком можно купить за 300 р. или попросить у соседа по гаражу.


    Прикладное значение разработки


    Сфера применения самой идеи – от системы мониторинга падения электрического напряжения до автоматического самогонного аппарата. Ограничение – только ваша фантазия. Лично для меня это уже третье решение на базе микроконтроллера. Сначала была система охлаждения устройства, у которого отказала собственная система охлаждения. В зависимости от температуры она включала или выключала вентилятор и выводила климатические данные на дисплей. Затем – бортовой компьютер, который я делал для своей «Хонды» 90-го года выпуска. Здесь меня постиг просто эпический фейл: когда я все доделал и решил протестировать, оказалось, что в автомобиле нет диагностического разъема, к которому нужно подключать мое устройство, а заранее я не мог это проверить потому что надо было снимать напольное покрытие. В любом случае, это был самый интересный и мозголомный проект – одни протоколы передачи данных чего стоили.

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

    Upd1: Друзья, в новом посте спешим поделиться с вами техническими деталями используемыми в решении.
    Инфосистемы Джет
    840,00
    Системный интегратор
    Поделиться публикацией

    Комментарии 7

      +5
      А где сами подробности-то? Код, костыли, проблемы возникшие?
        0
        А где WiFi и приложение для android/ios?
        Где статистика потребления воды с данными из облака?
        Сколько проживет цветок при отключении 220В?
        2-ой курс судя по всему.
          0
          Как справились с избыточной мощностью моторчика омывателя? Не было ли мысли использовать аквариумную помпу? Автомобильный это слишком всё-таки.
            0
            Использовал «шестеренчастые»(название придумал сам) помпы с али — как раз приемлемый для полива вазонов поток.
            0
            Еще бы фото всех частей, крупным планом.
              0
              Как будете решать вопрос коррозии датчика влажности?
              Датчик влажности где расположен.
              Как высчитывали норму полива?
                0
                Коррозию можно уменьшить до минимума если для датчика влажности использовать два пина: первый «подтянуть» к земле через резистор 10-500 КОм, а второй пин программно включать(лог 1) на короткое время с желаемой периодичностью, фактически его нужно включать лишь тогда, когда будет работать ADC считывающий с показания с первого пина.

                  digitalWrite(spowerPin, HIGH);
                  delay(1);
                  tValue = analogRead(sensorPin);
                  digitalWrite(spowerPin, LOW);
                

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

              Самое читаемое