Примечание! Я держу в руках микроконтроллер не более месяца, это самый адекватный проект, разработанный мною, тем более мне всего 15 лет.
Всем привет! Сегодня я расскажу и покажу свое первое творение на микроконтроллере Arduino UNO, что оно умеет, как его настраивать и собирать. Прежде всего, оговорюсь что я собирал всего лишь макет, который не предназначен для суровых уровней влажности в теплицах. Для тепличных микроконтроллеров нужен герметичный корпус, который не даст вашей электронике умереть от окисления. Еще, на макете стоит маленький серво-привод, который тянет 1,6 килограмм. Если вы захотите повторить данный проект для своей теплицы, берите сервопривод мощнее чем у меня.
Внешний вид устройства, собранного на макетной плате.
Для сборки нам понадобится:
1. Arduino Uno/Nano/Mega. Все зависит от ваших потребностей и возможностей.
2. Дисплей LCD 1602, желательно с драйвером I2C, ведь скетч сделан именно под него.
3. DHT11/22. У меня он распаян на маленько плате.
4. Датчик влажности, можно использовать датчик дождя, влажности почвы, да хоть проволоку намотать можно. У меня это копеечный красный датчик воды с Алиэкспресс.
5. Реле одно канальное
6. Серво-привод на 1,6 килограмм. (лучше берите такой)
7. RGB Светодиод, у меня светодиод распаян на маленькой плате, называется HW-479.
8. Пищалка, покупается на любом рынке у дедов.
7. Провода.
8. (Необязательно) Паяльник, припой, флюс или канифоль.
Сборка компонентов выполняется по схеме:
На схеме нету Драйвера дисплея, наколхозил как мог.
Переходим к прошивке микроконтроллера.
Последнюю версию прошивки вы можете найти на здесь. Еще одна ссылка на скетч прикреплена внизу поста.
Когда вы открыли скетч, необходимо выполнить настройку всех пинов(если собирали не по схеме), и настроить пороговые значения, при которых будет срабатывать автоматика.
В скетче все описано, за что отвечает тот или иной пункт настройки.
В настройке значений, первые два пункта (TIMEOUT, TIME_FOR_ASKING) отвечают за вторую линию питания для датчиков. Это сделано для того, чтобы продлить жизнь датчикам, подверженных воздействию воды(датчик влажности), так как железные контакты, хоть и не проводят большой ток, но всё равно окисляются из-за воды. НО! Датчик температуры и влажности подключен к "общей" линии питания, так как для того чтобы собрать с него значения требуется от одно до двух секунд. К "щадящей" линии подключаются аналоговые и цифровые датчики с быстрым откликом.
Важно! В скетче используется нестандартная библиотека для работы DHT11, а именно TroykaDHT, oт Амперки. Скачать ее можно с GitHub репозитория. Также, рекомендую установить корректно работающую библиотеку дисплея по I2C. Скачать корректную библиотеку LiquidCrystal_I2C можно с GitHub.
Первый запуск.
Важно! Устанавливайте датчик влажности почвы возле корней растения и подалее от поливной системы, чтобы микроконтроллер точнее знал уровень влажности почвы.
При запуске появляется текст, сообщающий вам версию прошивки. В это время, вы можете увидеть как серво-привод повернулся на 180 градусов(открыл окно), и через пол секунды закрыл его(стал в нулевое положение). Таким образом осуществляется проверка на корректность работы всех модулей. Если датчик влажности грунта заметит что уровень влаги ниже указанного значения в скетче, то микроконтроллер замкнет цепь питания насоса, с помощью реле, и включит синий светодиод, сигнализирующий о поливе . Когда уровень влажности почвы достигнет заданного значения, полив остановится.
Если уровень влажности и/или температуры будет превышать указанные в скетче, серво-привод откроет окно, или вентиляционный люк, и включит красный светодиод - если превышение температуры, и зеленый если превышение уровня влажности. При достижении необходимых параметров серво-привод закроет окно.
Параллельно с этими действиями, на дисплей выводятся все показания со всех датчиков.
T - Temperature: Значение температуры внутри теплицы.
H - Humidity: Значение Влажности внутри теплицы.
SW - SoilWater: Значение влажности почвы.
Обещанная дублирующая ссылка на скачивание прошивки GreenHouse.
P.S. Скетч очень сырой, да и схема требует доработок. Если у Вас есть идеи по доработке данного скетча или схемы, также если у Вас есть идеи для добавления полезного функционала, страница с GitHub репозиторием всегда открыт для Вашей редактуры! Любая критика воспринимается!
Спасибо за внимание!