Система контроля параметров комнатных растений

Используя контроллер Arduino и несколько недорогих датчиков, вы можете поддерживать комнатные растения в хорошем состоянии благодаря контролю таких параметров, как влажность, уровень тепла и света.

В простейшем варианте исполнения система контроля комнатных растений определяет уровень яркости света, влажность почвы и температуру воздуха, от которых зависит состояние вашего растения. Устройство считывает эти показания по USB и отображает на экране компьютера. Мы начнем наш проект с самых простых шагов, и далее будем его усложнять, используя светодиоды и ЖК-дисплеи, узнавая все больше об Arduino и других электронных компонентах.

Все электронные компоненты для 3-х различных исполнений доступны на сайте Radio Shack в конструкторе Make: Ultimate Microcontroller Pack. Компоненты также можно приобрести отдельно.

Шаг #1: Начальный этап: измерение уровня света, тепла и влажности

На начальном этапе нам потребуется микроконтроллер Arduino Uno, плата для беспаечного макетирования, три резистора номиналом 10 кОм, проводники для навесного монтажа, термистор (датчик температуры), фоторезистор (датчик света), и стальные винты и гайки.

Нам также потребуется изготовить 2 разделителя для датчиков влажности почвы (сделанных из винтов). В кусочке пластика просверлите 2 отверстия диаметром ½ дюйма в соответствии с размером винтов. Изготовьте второй разделитель и далее вкрутите винты через оба разделителя, чтобы они находились друг от друга на незначительном расстоянии.

Я точно определил размеры датчика почвы. Он изготовлен путем лазерной резки кусочка акрилового полимера размером 1/16 дюйма, который служит в качестве разделителя между маленькими отрезками прутка из нержавеющей стали диаметром 1/16 дюйма, обычно используемого при аргонно-дуговой сварке. Шаблоны заготовок, которые потребуются для вырезания из кусочка акрилового полимера вы можете скачать ниже.

Шаг #2: Создание схемы для 3-х датчиков

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

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

В соответствии с электрической схемой, соберите цепь на макетной плате, как показано на третьем рисунке. Термистор и фоторезистор располагаются на макетной плате; датчик влажности почвы представляет собой 2 длинных провода, каждый из которых накручен на винт и закреплен гайкой. Датчик влажности почвы подключается к аналоговому выводу А0 микроконтроллера Arduino, термистор к выводу A1, и фоторезистор подключается к выводу A2.

Шаг #3: Программирование Arduino

Обычно мы считываем показания изменения сопротивления датчиков, которые подключены к аналоговым выводам Arduino, с помощью следующего кода:

sensorValue = analogRead(inputPin);

где sensorValue представляет собой показание от датчика, а параметр inputPin – это номер аналогового входа, к которому подключен датчик.

Для считывания показаний 3-датчиков, мы просто повторяем данный код для всех 3-х датчиков, добавляем описание переменных и выполняем настройку последовательного порта. В результате мы имеем следующий код (PPPBasic.ino), который нужно открыть в среде разработки Arduino IDE, и загрузить его в микроконтроллер Arduino.

Шаг #4: Размещение и калибровка датчиков

Вставьте датчик уровня влажности в почву возле растения, установите фоторезистор, где на него будет подать такое же количество света, как и на листья растения, и установите термистор за фоторезистором. Подайте питание на Arduino и откройте Serial Monitor на вашем компьютере для просмотра показаний датчика, которые обновляются каждую секунду.

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

Вы можете использовать усовершенствованный датчик и откалибровать ваши датчики в соответствии с его показаниями. Ниже указаны показания промышленного датчика уровня влажности по сравнению с показаниями Arduino от самодельного датчика уровня влажности почвы, изготовленного из сварного прутка:

На открытом воздухе: оба датчика показывают 0

Очень сухая почва: 2% Vegetronix, 5% — самодельный датчик

Незначительная влажность: 7%, 150% — самодельный датчик

Незначительная влажность, промежуточное значение: 8%, 250% — самодельный датчик

Мокрая почва: 28%, 370% — самодельный датчик

Очень мокрая почва: 51%, 385% — самодельный датчик

Датчик, погруженный в воду: 85%, 480% — самодельный датчик

Потому, если я захочу достичь уровня влажности почвы около 28%, мне потребуется наблюдать за показаниями датчика до величины 385 и использовать данное значение как пороговую точку.

Шаг #5: Промежуточный этап: Добавление RGB светодиода

Теперь в схему можно добавить светодиод для индикации состояния вашего растения. Я использовал синий для отображения необходимости полива водой, зеленый для света и красный для температуры. Все состояния отображаются одним RGB светодиодом. (Разумеется, можно использовать различные опции!). Установите RGB светодиод и три резистора номиналом 330 Ом.

Вы можете подключить светодиод к микроконтроллеру Arduino по схеме, указанной на первом рисунке. На схеме светодиод обозначен как треугольник с общим соединением – анодом. На обычном светодиоде самый длинный вывод необходимо подсоединить на землю (при неправильном подключении светодиод может сгореть!).

Резистор регулирует ток светодиода: при очень большом токе светодиод может перегореть за несколько секунд, а не через 10 000 часов, которые он мог бы проработать.

Шаг #6: Подключение светодиода к схеме

При использовании RGB светодиода, красный, зеленый и синий элементы могут иметь общий катод или общий анод, т.е. светодиод имеет 4 вывода (проверьте по даташиту, если вы используете специфический RGB светодиод с общим анодом или общим катодом). RGB светодиод в конструкторе Make: Ultimate Microcontroller Pack имеет общий анод, поэтому мы подключим его как указано на электрической схеме.

Согласно схемы, подключите светодиод к выводу питания +5В и к цифровым входам/выходам D9, D10, и D11 микроконтроллера Arduino.

Шаг #7: Перепрограммирование Arduino

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

digitalWrite(redPin, HIGH – красный вывод, Высокий потенциал);
digitalWrite(greenPin, HIGH — зеленый вывод, Высокий потенциал);
digitalWrite(bluePin, HIGH — синий вывод, Высокий потенциал);

Вместо того чтобы вводить данный код несколько раз для отключения светодиода, мы преобразуем данный код в функцию:

void off()
{
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
digitalWrite(bluePin, HIGH);
}

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

В результате мы имеем следующий код — в файле PPPLEDs.ino.

В результате выполнения кода светодиод будет загораться одним из цветов в течение 5 секунд, в зависимости от состояний вашего растения:

Светодиод будет гореть синим цветом в течение 1 секунды, если почва влажная

Светодиод будет гореть красным цветом, если растениям тепло

Светодиод будет гореть зеленым цветом, если растения находятся под воздействием солнца.

Шаг #8: Усложнение проекта: Вывод показаний измерений на ЖК-дисплей

Теперь в проект можно добавить текстовой ЖК-дисплей для циклического вывода показаний от 3-х датчиков, отображая каждое показание в течение 4 секунд (при этом светодиод также будет срабатывать в соответствии с установленными ранее условиями). Подключите 16-выводной ЖК-дисплей и потенциометр номиналом 10 кОм для регулировки яркости дисплея из конструктора Make: Ultimate Microcontroller Pack.

К выводам ЖК-дисплея необходимо припаять проводники.

Шаг #9: Подключение ЖК-дисплея и проверка работы

ЖК-дисплей подключается несколько необычным способом. Но не беспокойтесь, мы предоставляем всю необходимую информацию для полного понимания данного проекта! Для тех, кому интересно, обратитесь к ссылке http://arduino.cc/en/Tutorial/LiquidCrystalDisplay

В соответствии со схемой, подключите ЖК-дисплей согласно нижеуказанной цоколевки:
ЖК-дисплей, вывод #1 подключается к земле на макетной плате.
ЖК-дисплей, вывод #2 подключается к 5В и к внешнему выводу потенциометра – не важно, какой внешний вывод, можете выбрать любой.
ЖК-дисплей, вывод #3 подключается к скользящему контакту потенциометра – центральный вывод.
ЖК-дисплей, вывод #4 подключается к Arduino, цифровой вывод #7 – это отличается от заводской библиотеки ЖК-дисплея.
ЖК-дисплей, вывод #5 подключается к земле и к внешнему выводу потенциометра.
ЖК-дисплей, вывод #6 подключается к Arduino, цифровой вывод #6 — это отличается от заводской библиотеки ЖК-дисплея.
ЖК-дисплей, выводы #7 — #10 не подключены.
ЖК-дисплей, вывод #11 подключается к Arduino, цифровой вывод #5
ЖК-дисплей, вывод #12 подключается к Arduino, цифровой вывод #4
ЖК-дисплей, вывод #13 подключается к Arduino, цифровой вывод #3
ЖК-дисплей, вывод #14 подключается к Arduino, цифровой вывод #2
ЖК-дисплей, выводы #14 и #15 не подключены.

В учебном материале Arduino, который указан выше, предоставляется вся необходимая информация для управления ЖК-дисплеем. Для тестирования дисплея, вы можете использовать пример кода, адаптированный для нашей цоколевки. Код можно скачать ниже (PPPLCDtest.ino) и далее загрузить в микроконтроллер Arduino, после чего отрегулировать яркость дисплея с помощью потенциометра, пока на ЖК-дисплее не появится надпись “hello world”. Если вы правильно подсоединили ЖК-дисплей, надпись будет мигать каждую секунду.

Шаг #10: Перепрограммирование Arduino

После подключения ЖК-дисплея программный код для защитника комнатных растений можно считать завершенным. Если вас устраивает работа ЖК-дисплея, тогда можно загрузить код (PPPFullBuild.ino) и записать в микроконтроллер Arduino.

Шаг #11: Использование дополнительных узлов и компонентов

Проект готов! Теперь ваши растения скажут точно, что и когда они хотят. Ниже указаны дополнительные компоненты, которые могут быть пригодны для усовершенствования данного проекта:

Средства управления: добавьте шилд с реле для управления водяными насосами, нагревателями или источниками света для ваших растений. Вы можете использовать библиотеку времени Arduino time library для таких задач, как “включение источников света так, чтобы солнечный свет + дополнительный источник света прибавляли ещё 16 часов к световому дню”.

Управление питанием: Заставьте ваш микроконтроллер Arduino засыпать и просыпаться для отображения показаний каждые несколько минут. Это значительно увеличит время работы от батареи. Это также позволит продлить срок эксплуатации вашего датчика влажности почвы, перед тем, как он начнет подвергаться коррозии.

Источник солнечной энергии: Добавьте солнечную панель и батарею для автономного питания вашего защитника растений

Средства подключения: поделитесь своими данными с другими и организуйте удаленный доступ с помощью Ethernet шилда, Wi-Fi шилда, или шилда для организации сотовой связи.

Усовершенствованные датчики: Исследуйте многие другие опции датчиков, включая уровень pH, световой спектр и влажность для перехода защитника комнатных растений на следующий технический уровень!

Оригинал статьи

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.