Bluefish – контроллер для управления аквариумным оборудованием

Реализация универсального аквариумного контроллера

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

Сразу оговорюсь, что создавалось все под собственные нужды и нужды друзей-аквариумистов. Все ниже описанное – IMHO и не претендует на «истину», или глобализацию решения всех существующих проблем.

Вступительная часть

Предпосылки для создания контроллера весьма банальны — был приобретен аквариум на 450 л, и к нему в дополнение шла крышка с установленными лампами, ЭПРА, кулерами, PH-электродом с усилителем, и управляющим всем этим многоканальным контроллером. Первое время все работало без сбоев, но потом начали умирать управляющие симисторы, сбрасываться текущее время, да и функционал не совсем удовлетворял возросшим требованиям. После длительного использования и анализа имеющегося контроллера было принято решение сделать свой управляющий орган, и продуман функционал будущего устройства:

1. Управление 8 каналами (+1 ШИМ канал):
— 4 канала освещения;
— компрессор;
— нагреватель;
— электроклапан системы CO2;
— помпа/электроклапан автодолива;
— кулера 12В (ШИМ).
2. Подключение 3-х температурных датчиков DS18B20.
3. Подключение электродов PH и Redox-потенциала.
4. Подключение датчика уровня воды (аналоговый датчик).
5. В качестве коммутирующего элемента использовать электромеханические реле.
6. Подключение 4-х строчного ЖКИ на контроллере HD44780.
7. Наличие часов реального времени DS1307Z.
8. Связь с ПК организовать 2 способами:
— радиомодуль, использующий Bluetooth HC-05 (основной канал);
— подключение по USB (резервный канал).
9. Номинальная мощность коммутируемой нагрузки 650 Вт.
10. Наличие электрических фильтров питающих напряжений и защитных элементов основных цепей устройства.
11. Промаркировать все разъемы и выводы подключений.
Возможности программного обеспечения для ПК:
— ручной режим управления нагрузкой;
— 4 автоматических режима (температурный режим, режим PH/CO2, режим вентиляции крышки, режим автодолива воды);
— использование 3-х таймеров на каждый канал, с возможностью по секундной установки интервалов;
— калибровка электродов;
— ограничивающие временные интервалы подсветки ЖКИ, работы кулеров и системы СО2;
— запись данных в энергонезависимую память контроллера и всевозможная индикация текущих параметров системы.

С некоторыми поправками данный функционал может быть отнесен к категории универсальных устройств. Это конечно не совсем корректно, т.к. аквариумные контроллеры можно разделить на 2 подгруппы – для пресноводных и морских обитателей. Различаются в данном случае и режимы освещения, и наличие различных электродов, определяющих параметры воды, и программные режимы, стабилизирующие эти параметры, и др. Аппаратная составляющая аквариумов так же весьма отличается. Освещение может быть организовано люминесцентными лампами, а могут быть использованы светодиоды или светодиодные ленты. IMHO – использование светодиодов более привлекательный подход, как с точки зрения получения необходимого спектрального состава, так и при организации управляющих режимов. Однако, использование качественных комплектующих, стабилизаторов тока, источников питания и вопрос отвода тепла делает этот подход более дорогостоящим. Ввиду чего, большое количество аквариумистов все еще использует люминесцентное освещение, и менять его пока не собираются. Различий может быть великое множество, ибо готовые решения приобретаются крайне редко, и большая часть аквариумов собраны под индивидуальные вкусы их владельцев. В данном случае рассматривались 3 аквариума, и были объединены/усреднены требования по оным. В итоге, получилась система для пресноводного аквариума (либо травника), с люминесцентным освещением, объемом до 500 л., автономным режимом работы, выводом необходимой информации на ЖКИ и подключением к ПК для конфигурации.

Аппаратная реализация

Исходя из личного опыта, опыта других разработчиков и вредности своего IMHO – конструкции типа «бутерброд», построенных на базе Arduino и иже с ним, стараюсь не использовать. Вообще и никогда. Это же касается и программного обеспечения (низкого или высокого уровня). Исключения составляют внешние библиотеки, собственноручно переработанные и прошедшие не одну сотню часов тестирования. Ну и разумеется стандартные либы, блокнот, компилятор, программатор/отладчик и осциллограф.

Аппаратная часть основана на микроконтроллере фирмы Atmel — ATmega32A, работающего от внешнего кварцевого резонатора 11.0592 MHz. Выбор обоснован наличием большого кол-ва флеш- и оперативной памяти, необходимым кол-вом выводов, дабы не чувствовать себя стесненным в средствах (в итоге было использовано

Читайте также:
Как выбрать и оснастить аквариум?

80% ресурсов МК). Коммутация нагрузки реализована посредством электромеханического реле. В устройстве использовались реле герметичного исполнения фирмы OMRON, серия – G5LA. Получение текущего времени организовано посредством микросхемы DS1307Z + прецизионный термостабильный резонатор, заблаговременно снятый со швейцарского промышленного оборудования. Выбор был обусловлен наличием этой микросхемы и качественного резонатора. В другом случае предпочтительно использовать DS3231. Для управления кулерами используется ШИМ-сигнал. В качестве ключевого элемента используется полевой транзистор LR3714Z. Для вывода данных на ЖКИ используется 4-х битная шина, для коммутации подсветки используется транзистор FMMT717TA. Связь с ПК организована посредством радиоканала (RS232-Bluetooth HC05), либо преобразователя RS232-USB CP2102. Скорость передачи данных 9600 kbit/s. Фильтрация сетевого напряжения рассчитана на номинальную мощность

650 Вт. Терминирование температурных датчиков DS18B20 необходимо производить в непосредственной близости от датчика. Для повышения надежности устройства использовался внешний супервайзер ADM690ANZ, отслеживающий тактирование МК и уровень питающего напряжения. Радиоканал реализован отдельным модулем, подключаемым на плату контроллера через 4 пиновый разъем. Присутствует всевозможная индикация (активность каналов, наличие питающих напряжений, тактирование МК, передача пакета данных).

Хотелось бы, конечно, использовать Wi-Fi подключение, с HTTP сервером. Но для этого необходимо иметь в распоряжении Ethernet MAC модуль, что тянет за собой также необходимость и DMA интерфейса, — а это уже задача не для AVR. Да и стоимость адекватного Wi-Fi модуля довольно высока. Не будем рассматривать цепочку из нескольких плат (об этом я писал вначале параграфа), или же дешевых китайских модулей, способных на все, но при этом отваливающихся каждые полчаса. И с ARM7TDMI на более свежую архитектуру все никак не осилю себя перейти. Да и смысл использовать ARM для такой задачи, где с лихвой хватает AVR. Только для Ethernet/Wi-Fi — не вижу смысла. В общем, это уже задача другого уровня. Для текущего автономного контроллера было принято решение ограничиться USB/Bluetooth и внешним супервайзером.

Для разработки устройства использовался программный продукт P-CAD 2006 SP2. Ниже приведена принципиальная схема устройства (кликабельно):

Печатная плата устройства была разработана под SMD-монтаж. Класс точности – 4. Используются корпуса TQFP44, QFN28, SOT23, TAN-A, TAN-B, SMA, 0805, 0603 и др. Плата имеет двухстороннюю реализацию. Общий вид печатной платы устройства приведен ниже (кликабельно):

Изготовление печатной платы было доверено китайским специалистам, ибо качество местных изготовителей оставляет желать лучшего. Какая именно фирма занималась производством платы уже сказать не смогу, т.к. заказывал я ее через товарища, к которому я просто «упал на хвост» во время его заказа, и отправил ему все необходимые файлы. Качеством «поднебесной» я был весьма впечатлен. Стоимость одной платы обошлась мне примерно в 20$. Так же очень порадовал предоставляемый сервис. Стоимость платы зависела от ее класса точности, размеров, и прочих заданных требований. В течение одного рабочего дня мой заказ был обработан, рассчитан и указана точная дата прибытия в мой город. В тот же день средства были уже переведены на их счет. И именно в указанный день мне пришло сообщение о доставки моей посылки. Обработка заказа, изготовление и доставка заняли чуть менее 2 недель. Ни один из отечественных производителей мне такое и близко не смог предложить (в рамках адекватной стоимости). Ниже приведено фото одной из полученных плат:

После напайки всех компонентов, прочистки ультразвуком от флюса и прошивки контроллера устройство приобрело следующий вид:

Для установки супервайзера предусмотрена 8-пиновая панелька. ADM690ANZ весьма чувствителен к флуктуациям питающего напряжения, и если у вас нет возможности установить качественный стабилизированный источник питания на 5В – лучше супервайзер не использовать. Иначе получите больше проблем, нежели пользы от его использования. Для переключения между USB и Bluetooth используется соответствующая перемычка.

Изначально, устройство планировалось устанавливать в крышку аквариума. Поэтому организация корпуса не предусмотрена. Однако, в дальнейшем, возможно, надобность в оном появится. Для отображения информации использовался 4-х строчный ЖКИ WH2004L-TMI-CTW, устанавливаемый на переднюю часть алюминиевой крышки. Во избежание наводок на индикатор, во время коммутации силовой нагрузки, сам индикатор необходимо изолировать от соприкасающихся металлических частей крышки, а шлейф, идущий от контроллера к экрану, — экранировать.

Читайте также:
Все что нужно знать про аквариум для рыб

Ну и в завершении описания аппаратной составляющей ниже представлена фотография крышки аквариума. В ней установлен сам контроллер с ЖКИ, источник бесперебойного питания на 5В с аккумулятором, импульсный источник питания на 12В, 6 ЭПРА, плата усилителя для PH-электрода (основана на CA3140E), 2 80мм кулера и разъем для сетевого питания с простеньким входным фильтром.

Реализация связи с устройством

Основным каналом связи предусмотрен радиоканал Bluetooth (HC-05), USB-подключение – резервное. Устройство не имеет гальванической развязки между микроконтроллером и преобразователем уровней CP2102 (USART-USB). При подключении посредством USB необходимо убедиться, что источник электропитания, используемый для получения +5В, и питающее напряжение ПК включены в один узел электросети (розетку). В ином случае возможна некорректная работа устройства, выход из строя определенных элементов конструкции. Ниже приведена схема и печатная плата радиомодуля:

Программная реализация

раз в 3 секунды), получение текущего времени, опрос АЦП и расчет значений электродов, с учетом калибровочных коэффициентов. В третьем временном интервале реализованы основные управляющие функции контроллера:

— обработка данных входящих пакетов;
— преобразование текущего времени в числовое значение (для удобства все временные значения в программе представлены в числовом виде HHMMSS);
— управление заданными каналами, в соответствии с выбранными режимами работы (раз в секунду);
— управление каналом PWM;
— обработка данных управляющих режимов (температурный режим, режим PH/CO2, режим вентиляции крышки, режим автодолива воды);
— установка ограничений временных интервалов (подсветка ЖКИ, работа кулеров и системы CO2);
— запись данных в EEPROM;
— анализ текущего состояния каждого из каналов, выбранных режимов с соответствующей индикацией;

Четвертый временной интервал — формирование тактового сигнала для супервайзера. В пятом интервале — отправка пакета данных о текущем состоянии датчиков, активности каналов и режимов управления, и др. информация для отображения в программе для ПК. Последний временной интервал используется для проверки состояния датчика уровня воды, при включенном режиме автодолива.

Проект состоит из нескольких файлов: main.c, hd44780.h, i2c.h, USART.h, Functions.h, ds18b20.c, delay.h, crc8.c. Библиотеки для работы с шиной 1-Wire были позаимствованы с открытого проекта на одном из немецких сайтов и переработаны под собственные нужды (убраны неиспользуемые функции и добавлено указание используемого порта и вывода МК для соответствующего датчика). Все остальные либы написаны с чистого листа.

Для отладки низкоуровневого программного обеспечения использовалось компьютерное моделирование устройства, посредством программного пакета Proteus 7.7 SP2. Ниже приведена собранная схема устройства:

Для разработки программного обеспечения высокого уровня использовался программный продукт Microsoft Visual Studio 2007. Основные возможности ПО представлены 4-мя закладками: отображение информации, режимы/события, ежедневные таймеры, калибровка электродов. Данные обновляются раз в 3 секунды. Для передачи данных используется метод транзакций. ПО отправляет пакет данных устройству, которое в свою очередь, после получения, отправляет принятый пакет обратно на ПК. Если отправленный и принятый пакеты совпадают — транзакция прошла успешно. Если же данные различаются, то текущий пакет данных отправляется заново. При многократном не совпадении отправленного и принятого пакета данных отображается ошибка соединения с устройством. Для передачи данных использовался строковый тип, что позволяет безошибочно определить начало/конец пакета, его тип и сами данные. Ниже представлен интерфейс программного обеспечения для ПК:

Полное описание работы программного обеспечения AquaController 2014 находится в справочных материалах, доступных через меню Помощь/Справка. Детальное описание устройства находится в файле «Техническое описание».

Примерная стоимость устройства, учитывая доставку комплектующих,

Это первая реализация проекта аквариумного контроллера. За более чем полгода не выявлено ни единого сбоя в его работе. Некоторые конструктивные и программные недочеты все же имеются, но этого пока недостаточно, для разработки следующего прототипа.

С учетом эксплуатации текущего контроллера, перечень того, что может быть дополнительно воплощено в последующем устройстве:

— аппаратная реализация на ARM Cortex;
— связь по Ethernet/Wi-Fi с организацией HTTP-сервера;
— наличие внешней клавиатуры для аварийного отключения или активации управляемых каналов;
— интеграция усилителя для PH и Redox электродов на плату контроллера;
— наличие управляемых каналов для светодиодной подсветки;
— управление дополнительными агрегатами (автокормушкой, системой подачи удобрения и прочее);
— увеличена номинальная мощность нагрузки;
— замена DS1307 на DS3231;
— возможность установки в один из стандартных корпусов.

Читайте также:
Новые разработки насосов для создания имитации течения в аквариуме

Но пока это всего лишь планы на будущее, так как данный контроллер полностью удовлетворяет требованиям моего текущего аквариума.

Ниже загружена на github необходимая документация, программное обеспечение и исходники программ: Акваконтроллер 2014

Bluefish – контроллер для управления аквариумным оборудованием

В этом проекте представлены исходные коды прошивки для контроллера ESP-32, позволяющие организовать контроллер управления аквариумным оборудованием. Функционал:

  • Возможность управления 4-мя нагрузками (напряжения 220 вольт и ниже) при подключении блока из 4х реле к микроконтроллеру ESP-32
  • Каналы разделены по смыслу (освещение, обогрев, аэрация, фильтрация), каждый можно настроить в один из 3х режимов (всегда включен, всегда выключен, автоматическое управление)
  • Возможность настройки контроллера командами через Serial Port
  • Возможность настройки контроллера и просмотра текущего статуса через Web интерфейс
  • Автоматическая настройка и подстройка времени при подключении к сети WiFi имеющей доступ в интернет используя NTP протокол
  • Возможность подключения модуля часов реального времени к микроконтроллеру
  • Возможность подключения датчиков температуры воды и воздуха к микроконтроллеру
  • Возможность обновления настроек через внешний сервер а так же отправки статистики используя REST API

Сборка и настройка

Сборка прошивки а так же загрузка в микроконтроллер выполняется с помощью Arduino IDE. Для того, чтобы Arduino IDE смогла работать с микроконтроллером ESP-32 необходимо установить необходимые библиотеки: https://github.com/espressif/arduino-esp32 (инструкция на русском языке: https://habr.com/post/404685/)

После этого необходимо открыть файл aqua_controller.ino через Arduino IDE. Сборка и загрузка на плату выполняется стандартно.

Блок реле, датчики температуры подключаются к любым удобным для вас пинам на плате. Объявления используемых пинов находятся в файле defines.h, если пины не совпадают с вашими, необходимо внести изменения в этот файл перед сборкой прошивки. Модуль часов реального времени подключается к шине I2C.

При первом запуске и пока не будет настроен WiFi, контроллер будет работать в режиме точки доступа.

  • SSID: aqua-controller
  • Пароль: 1234567890

Вы можете подключиться к ней и перейдя по адресу http://192.168.4.1 попасть в Web интерфейс контроллера, и указать SSID и пароль от WiFi сети, к которой должен подключаться контроллер, а так же произвести другие настройки. Либо вы можете подключить плату через USB к компьютеру и через Serial Monitor произвести настройку подключения к WiFi командами. Команды будут описаны в отдельной секции.

Команды COM порта

На данный момент доступны следующие команды:

  • set ssid имя_сети – устанавливает название WiFi сети к которой будет осуществляться подключение в режиме клиента
  • set password пароль – устанавливает пароль который будет использоваться при подключении к WiFi сети
  • restart – перезагружает контроллер
  • reset – сбрасывает настройки WiFi по-умолчанию (включается режим точки доступа)

Контроллер может работать с внешним сервером по REST API. Настроить подключение к внешнему серверу можно в Web-интерфейсе. В нем необходимо указать базовый адрес api, токен который будет использоваться для авторизации и номер аквариума. Это необходимо для возможности собирать информацию в одном месте с нескольких контроллеров. Api должен реализовывать как минимум 2 метода:

  1. GET /aquariums/:id/settings – где :id – номер аквариума. Метод должен возвращать json объект с настройками для контроллера. Пример ответа:
  • heating – режим работы обогрева (1 – авто, 2 – всегда включен, 3 – всегда выключен)
  • aeration – режим работы аэрации (1 – авто, 2 – всегда включен, 3 – всегда выключен)
  • lighting – режим работы освещения (1 – авто, 2 – всегда включен, 3 – всегда выключен)
  • filtering – режим работы фильтрации (1 – авто, 2 – всегда включен, 3 – всегда выключен)
  • startLighting – время включения освещения при работы в автоматическом режиме. Представляет собой запись слитно часа и минут. Например если нужно включать свет в 10:30, значение будет выглядеть вот так: 1030.
  • endLighting – время отключения освещения при работе в автоматическом режиме. Представляет собой запись слитно часа и минут. Например если нужно выключать свет в 22:30, значение будет выглядеть вот так: 2230.
  • maintainTemperature – температура в градусах цельсия, которую будет пытаться поддерживать контроллер включая и выключая обогрев при необходимости (обогрев должен быть в автоматическом режиме)
  1. POST /aquariums/:id/stats – где :id – номер аквариума. Данные отправляются в теле HTTP запроса json кодированной строкой. Пример:
  • heating – включен ли сейчас обогрев (1 – да, 0 – нет)
  • aeration – включена ли сейчас аэрация (1 – да, 0 – нет)
  • lighting – включено ли сейчас освещение (1 – да, 0 – нет)
  • filtering – включена ли сейчас фильтрация (1 – да, 0 – нет)
  • maintainTemperature – температура воды в аквариуме в градусах Цельсия
  • outerTemperature – температура воздуха в градусах Цельсия
Читайте также:
Как повысить рн в аквариумной воде

эти методы API вызываются раз в 5 минут.

  • Dev-board ESP-32
  • Датчик температуры воды: DS18B20 с гидрозащитой
  • Датчик температуры воздуха: DHT22
  • Часы реального времени: DS3231
  • Блок реле на 4 канала с включением по низкому уровню сигнала

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

About

ПО контроллера для автоматизации оборудования в аквариуме.

Bluefish – контроллер для управления аквариумным оборудованием

Контроллер для аквариума

Автор: Voldemar
Опубликовано 07.08.2013
Создано при помощи КотоРед.

Хотелось бы Вами поделиться одной из своих разработок.

Из истории. С Котами, вообще, не все понятно. Они по большей части ленивые. Жрут вискас. Спят сутками. Редкий Кот отказывается от рыбы. Бывают исключения. Ну и т.д. Но остановимся на рыбе… Появился в моем доме аквариум. И завелись в нем рыбки. Не важно как, не важно сколько, не важно какие. Да вот беда, лениво мне стало каждый раз втыкать в вытыкать вилки из розеток (поскольку кнопок не было предусмотрено) дабы включить (да и выключить тоже) какое-нибудь из устройств , а еще и делать это вовремя… И вот появилась идея создать устройство для управления всем оборудованием аквариума: нагревателем, фильтром, компрессором, освещением, вентилятором, ну и еще какой-нить дополнительной штуковиной… Вот что получилось.

Технические характеристики

220В, внутри +5Вольт;
Управляет: Шесть устройств 220В х 1.0А (макс) (реле TRB-5VDC);
ШИМ выход: 0…5Вольт (0.2А макс);
Датчики: 2 шт, контактные (например геркон), без развязки по питанию;
Дисплей: 4х знаковый, 8ми сегментный (FYQ-3641Ag);
Индикация: 16 светодиодов (индикация режимов работы);
Время: часы реального времени (DS1338Z-33);
Температура: 1 или 2 цифровых датчика (DS18B20), один для воды (обязательный), один для воздуха;
Контроллер: PIC18F25K22;
Звук: HCM1205F;
Режимы: автоматический, ручной, полуавтоматический (можно выбрать устройства, которые будут управляться автоматически или в ручную);

Что умеет делать:

1. Автоматически управлять:

– нагревателем : отслеживает температуру в аквариуме и включает/выключает нагреватель по необходимости и в зависимости от времени суток.
– основным светом: включает/выключает основное освещение в аквариуме в зависимости от времени суток, времени года, внешнего освещения (запланировано, но модуль измерения освещения пока не установлен).
– дополнительным светом: я использовал ШИМ выход для подключения синего сверх яркого светодиода для имитации лунного освещения. Ночью смотрится красиво. Соответственно можно менять яркость в зависимости от времени суток. Яркость меняется плавно, плавность также регулируется.
– фильтром: вообще он должен работать всегда, но по желанию его можно автоматически отключать на ночь и во время кормежки.
– вентилятором: вентилятор встроен в верхнюю крышку аквариума на выдув воздуха и позволяет охлаждать воду на 1-2 градуса (если очень уж жарко), да и просто для воздухообмена. Вентилятор может работать как по времени (периодически), так и по превышению температуры воды.
– компрессором: периодически включать на заданное время компрессор подачи воздуха.
– дополнительным устройством: любое дополнительное устройство по вашему желанию мощностью до 250Вт. Предусмотрено много режимов работы: ручной, периодический, по заданному интервалу времени, по температуре, по срабатыванию внешних датчиков, по времени суток. Я использую его для разных целей, например, включаю компрессор для аквариума с мальками (для реального Кота – практически бесполезное блюдо).

Читайте также:
Аквариумные фильтры и их назначение

2. Контролировать:

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

3. Показывать:

– на дисплее: текущее время, дату, температуру воды и воздуха, состояние датчиков, ошибки (аварии системы), необходимость обслуживания, меню настроек.
– индикация работы каждого из управляемых устройств (6 светодиодов).
– индикация времени суток (4 светодиода: день, ночь, утро, вечер). Особого смысла не имеет, так, для наглядности.
– индикация режима работа (2 светодиода: стоп, пауза).
– индикация срабатывания датчиков (2 светодиода).
– индикация аварий и необходимости обслуживания (2 светодиода).

Общая схема

Общая схема устройства выглядит следующим образом.

Схема устройства состоит из 4х блоков:
– Блок питания +5Вольт. Выпилил из зарядки для телефона. У меня: +5В, 2.4А (такой вот был телефон!), но БП рассчитанного на ток до 750мА будет вполне достаточно, максимальное потребление всей схемы не превышает 600мА. Схема БП не приводится.
– Блок контроллера. Сам PIC, часы с батарейкой, куча разъемов.
– Блок индикации и кнопок (фронт-панель). Все кнопки, дисплей, светодиоды, пищалка.
– Блок управления. Микросхема (MCP23008) расширителя портов (связана по I2C с контроллером), «силовые» реле (6 шт.), разъемы к ним, «усилитель» ШИМ сигнала с разъемом, разъемы для внешних датчиков и внешнего термодатчика.

Комментарии к общей схеме:
– все устройства подключаются к стандартным розеткам рассчитанным на 220В и >3A;
– устройства назначаются на силовой выход контроллером, всегда можно это изменить и настроить, поэтому на схеме обозначения подключенных нагрузок условное.
-но (!) для подавления помех желательно подключить X2 конденсатор (>250V) непосредственно к розетке к тем устройствам, которые имеют в своем «составе» двигатель (фильтр, помпа). Емкость выбирайте сами. Чем больше, тем лучше. В моем случае я был ограничен конденсаторами имеющимся в наличии. Вовсе не X2.
– сопротивление R1 подбирается индивидуально для используемого светодиода, так, чтобы максимальный ток не зашкаливал, да и яркость на максимуме не слепила бедных рыбок. У меня светодиод 3 мм яркий синий, прозрачный, 1400 мКд, 30° (3AB4UC).
– корпус, если не пластмассовый, то обязательно заземлить. В одной точке, по крайней мере подключить к «общему» схемы. Желательно поставить металлический экран между CPU и всем остальным «внутренним» миром устройства.
– провода шины I2C и на термодатчик – в экранированной оплетке, заземлены, максимально короткие.
– термодатчик DS18B20. Для работы в воде герметично «запаян» в пластиковый (или металлический – нержавейка) корпус.

Схема блока контроллера (CPU)

Комментарии:
– J1 используется для программирования (PIC Kit 2, например).
– J5 исключительно дополнительный разъем для датчика температуры, можно убрать.
– J13 разъем для подключения что-нибудь дополнительного. Планировалось для датчика освещения, кормушки, ну и т.д… Можно пофантазировать, если есть желание и время. Только, к сожалению, памяти в контроллере осталось не особо много… Вообщем, пока не используется.
– J7, J12 – два больших разъема для связи с дисплеем. Ничего страшного. Дисплей и CPU расположены друг над другом как бутерброд и разъемы просто втыкаются друг в друга. Очень удобно. Когда все работает. Разъемы папа PLS-10, мама PBS-10.
– часы DS1338Z-33, подойдет и DS1307N (может пины другие?).
– батарейку для часов можно использовать другую меньше по размеру на напряжение 3В. Ток потребления очень маленький…
– почти все компоненты CMD.

Схема блока индикации (Display & Keyboard)

Комментарии:
– использовал кнопки KAN0611-1301B (Кнопка тактовая, DIP, 6.0х6.0, h=13 мм).
– 8ми сегментный зеленый (FYQ-3641Ag). Вообще можно любой с общим катодом.
– светодиоды 3мм, обычные. Синий – яркий 1400 мКд, 30° (3AB4UC).
– кнопки подключены к делителю на сопротивлениях и подключены к ADC входу контроллера, который измеряет напряжение и т.о. определяет код нажатой кнопки.
– пищалка HCM1205F. Резистор R3 можно уменьшить – будет громче.

Читайте также:
Как выбрать аквариумный компрессор

Схема блока управления (MCU)

Комментарии:
– выход на термодатчик: стандартный 3.5mm audio-jack (CKX3-3.5-30).
– выходы датчиков: штыревой разъем питания на плату, 5.5 x 2.5 мм (7-0088).
– выход ШИМ: Штыревой разъем питания на плату, 2.5 x 0.7 мм (DC-011).
– «огород» на транзисторах Q5, Q7 не припаян. Даже не спрашивайте зачем он нужен.
– J13, J16, J19 – контакты для jumper.
– предполагалось, что ШИМ может управлять устройством питающимся от 12 вольт, от этого есть разъем J18 и jumper J19.
– транзисторы 2N5191 – это конечно перебор, но их у меня горсть. Можно что-нить гораздо легче, типа 2N5551.
– смысл J3 и J20: приходит

220V с включателя устройства, выходит на блок питания +5В.
– R11 нужен чтобы не происходило замыкания массы и питания при «внимании/вынимании» датчика температуры.
– U9 – тоже с запасом, можно что-нибудь попроще.

Софт:
Использовал PICC v4.130 (демо версия!). Текущая версия 1.20. Общая статистика: RAM=28%, ROM=97%.
Код написан и отлажен (на 90%) на PC с использованием MS Visual Studio 11 (скажем, тоже демо!). Это стало возможно после написания некой библиотеки симуляции PIC кода. По сути, используется тот же код, что работает на PIC, но с соответствующими callbacks & wrappers для использования в среде PC. Симуляция прерываний таймера, задержек и прочего поддерживается. Поэтому, все, что не требует задержек

акваконтроллер

Всем привет. Хочу поделиться своим вариантом повторения аквариумного контроллера. .Схема, прошивка, исходник предоставлены alex2974 на страницах форума radiokot.ru/circuit/digital/home/102/. Огромное ему спасибо за отклик ( не смотря на год с момента публикации и отсутствии на форуме ) на просьбу переделать прошивку под не русифицированный экран и мои надоедливые вопросы. Кстати очень мало вариантов в сети, буквально 4-5 и темы к сожалению старые, не активные. Итак :
собственно схема

На форуме несколько вариантов схем, но меня подкупило наличие ШИМ для рассвет/закат. Впечатление скажу в конце рассказа. Сперва собрал цифровую часть. У меня были два LCD из Китая неизвестной марки и неизвестно на каком языке работающие, а также атмега8L так же неизвестной работоспособности зато стоившие копейки.

Оказалось 50х50. Один экран с микротрещиной на одной из дорожек (линия RS, восстановлено) и камень один был залоченный (вылечен).
Далее собрал силовую часть. Плату переделал под себя, убрал с неё выпрямитель и реле кормушки. Корпус использовал вот такой

розетки для подключения нагрузки взял самые дешёвые(35р)

они идеально встраиваются. сам корпус розетки в мусор

“слаботочка” на второй половинке корпуса

лицевая панель нарисована в “спринте”, напечатана на цветной бумажке, заламинирована, вырезана и приклеена

ну и собственно включаем аппарат в розетку

испытания идут на 20 литровой банке где сидит любимый “петушок” жены
а, забыл сказать и показать. герметизация датчика температуры DS18B20. Штука очень нежная не терпящая перегрева, статики и прочих экспериментов над собой.

к датчику припаян микрофонный кабель и всё это затянуто термоусадкой. Тонкостенная трубка из нержавейки с внутренним D=6 заварена с одного края. Датчик обёрнут мягкой тонкой фольгой и с усилием, тонкой спицей вставлен до упора в трубку. фольга убирает воздушную прослойку чтобы по возможности не ухудшить теплопроводность. Со стороны кабеля на сколько возможно залито эпоксидкой для водонепроницаемости

присоска и готово
Из-за использования нержавейки имеется некоторая инертность измерения температуры. Датчик в термоусадке засунутый подмышку для измерения температуры тела набирает 36.4 за минуту, остывает до комнатной где то так же. В нержавейке набирает 35.6 за 3-4 минуты остывает минут 5. Что я думаю для аквы не критично. Вода в таких объёмах гораздо инертнее в плане нагрев/остывание. Привирает примерно на 1 градус, тоже фигня.

Собственно ощущения :
прикольно.
Рассвет/закат плавно наступает за 2-3 минуты кайф
фильтр работает постоянно, выключаясь на кормление или на 10 мин с кнопки. не удобно исправить нельзя, память занята на 99 процентов.
Очень прикольно работает включение/выключение по фотодатчику. выставляется по конкретному освещению когда тебе нравится круто
Косяки :
на плате “выводы” попутана нумерация на 9пин разъёме. я его не ставил, плата перетравилась и пришлось паять к дорожкам. в процессе косяк и вылез” +12 не туда.
И самое главное в каналах с ШИМ кт815 — это слабо. Поставил кт819г, на охлаждение нормально, а вот LED лента с током 500мА заставила ещё и поставить радиатор порядка 50 кв см (какой был маленький) и всё равно нагрев градусов 50.
Ну вот как-то так . Я доволен. осталось кормушку сделать или у китайцев выписать рублей за 400-600 чтоб не корячиться
файлы примочки

Читайте также:
Аквариум для данио рерио, барбусов рерио, барбусов огненных, сомиков крапчатых и кардиналов

AQUAkmv

Сообщество аквариумистов

Простой контроллер для аквариума на ARDUINO

Сейчас для управления светом многие используют механические и электронные таймеры, для управления температурой в аквариуме простенькие термостаты. Я хочу предложить объединить это всё в одно устройство.

Если нужно управление светодиодным светом, то лучше посмотреть усовершенствованную версию этого контроллера ССЫЛКА на проект.

В интернете очень много подобных схем, я же хочу предложить один из простейших вариантов. Я не претендую на оригинальность и лучший код. Такой приборчик у меня трудится у же 4 года без серьёзных поломок.

Для начала определимся что нам нужно – сколько каналов для 220в нагрузок, сколько для 12в нагрузок.

Я выбрал 5 каналов 220в: 4 независимых канала с периодом 30 мин (48 интервалов на сутки), один отдельный канал для углекислоты.
Для охлаждения будем использовать компьютерный вентилятор на 12в
Плюс к этому я хочу видеть состояние каналов в реальном времени, поэтому добавим ко всему LCD дисплей.
Управлять всей этой красотой будем с помощью одного энкодера. Переходы по меню нажатием на энкодер, переход по значениям внутри одного меню – поворотом энкодера. Для изменения значения, нужно нажать на энкодер и не отпуская повернуть в нужную сторону.
После прошивки контроллера нужно отключить питание, зажать энкодер нажатым и заново подключить питание. Подождать до появления вот такой картинки

После этого, можно отпустить энкодер. Контроллер сбросится на правильные заводские настройки. Далее можно настраивать в обычном режиме

И так, нам понадобится:

1. Arduino nano 3.0 с Atmega 328p на борту
Ссылка на али: Купить
2. Дисплей 1602 с модулем I2c
Ссылка на али: Купить
3. Датчик температуры Ds18b20 В герметичном корпусе
Ссылка на али: Купить
4. Часы реального времени DS3231
Ссылка на али: Купить
5. Модуль реле на 4 канала и еще один на 1 канал
Ссылка на али: Купить
5. Или модуль твердотельных реле (более надежный вариант)
Ссылка на али: Купить
6. Модуль с силовым ключем
Ссылка на али: Купить
6. Понижающий Преобразователь
Ссылка на али: Купить
7. Энкодер, 1шт

Для монтажа потребуются провода, разъемы, макетные платы для сборки драйверов, принадлежности для пайки:

1. Отличный монтажный провод
Ссылка на али: Купить
3. Хороший припой
Ссылка на али: Купить
4. Макетные платы
Ссылка на али: Купить
5. Флюс безотмывочный RMA 223
Ссылка на али: Купить
7. Паяльник с регулировкой температуры
Ссылка на али: Купить

Перед сборкой нужно настроить понижающий преобразователь на 5В

Схема подключения :

Силовая плата может быть как на основе реле:

При использовании таких реле и индуктивной нагрузки (двигатели, помпы, фильтры) во избежании помех на контроллер следует поставить RC фильтр:

R=100 Oм, C=0.1мкФ*630V

Так и на основе симисторов:

Файл платы для Sprint в формате lay6 СКАЧАТЬ

Прошивка:

После сборки по схеме остается залить прошивку.

Файл прошивки лежит ТУТ Обновлен 22 ноября 2019г.

Прошиваем один HEX с помощью простейшей программы XLoader:

Работать с ней предельно просто:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт, который создался при подключении Arduino к USB (скорость порта автоматически подставится при выборе типа Arduino)
— жмем Upload

Архив с программой Xloader.zip

Если есть вопросы, то их можно обсудить в соответствующей теме ССЫЛКА НА ТЕМУ

Простой контроллер для аквариума на ARDUINO : 22 комментария

Ещебы рассвет и закат, и этомум контроллеру цены бы небыло

Добавить рассвет – закат – луна было б вообще здорово! Автору респект!

Это есть в прошивке

Всем привет .ПРОДЕЛАЛ ПРОЕКТ ..со2 4 реле и температура .. прошу помощи ..
меню разьяснить –переключение джойсиком .. – один режим работал по температуре ..пока щелкал остальные 1234 реле разобраться .. после включения реле щелкают но не в режиме программы молчат .. например ..подсветка экранчика ..крутил присматревался к стреле ..где как ..можно случайно включить ..

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

А можно увеличить до восьми?

Если Вы про выходы реле, то да.

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

Просто еще один канал, который в меню назван Co2)))

Отличный контроллер, это то что я искал, спасибо большое автору. Пару месяцев использования полет нормальный. Сборка удалась не с первого раза. По началу вылетали глюки в виде иероглифов, отказа энкодера, просто зависания и отключение дисплея. Не знал на что грешить, в итоге заказал еще один полный пакет комплектующих, новая сборка тоже не увенчалась успехом. А в итоге оказалось дело в проводах которые фонили. Сменил провода, изолировал фольгой и все отлично. Собрано в деревянном корпусе. Но осталась одна небольшая проблемка это немного тупит энкодер при прокручивании, но это не страшно, т.к. настройки меняются редко. В итоге у меня деревянный ящик с 6ю розетками(5 через реле и одна прямая на случай всякий что то подключить или вечером возишься в аквариуме и что бы не лезть в настройки просто переставляешь свет в прямую) в итоге вертикальный ящик с 6 розетками, энкодером и дисплеем

Здравствуйте, пытаюсь разобраться в теме аквариумов на МК и наткнулся на ваш. Возникло несколько вопросов. Обязательно ли подключать вентилятор через Mosfet? Нельзя ли убрать отдельную релешку взяв более крупный блок из 6-ти?

Не заметил вашего ответа про реле, извиняюсь.

Надо было одним комментарием все вопросы сразу задать.
Можно ли обойтись без мосфета, и подвести вентилятор на один из каналов реле?
Обязательно ли использовать понижающий преобразователь, если учесть что вентилятор запитан отдельно?
Заранее спасибо за ответ!

Мосфет для 12в вентилятора, в новой версии вентилятор будет с PWM, для плавного разгона в зависимости от температуры. Преобразователь желателен в любом случае.

привет, спасибо за идею и конструкцию если это возможно пришлите пожалуйста
arduino скетьчь “Простой контроллер для аквариума на ARDUINO”
по е-почте .
зарание блогодарин Г.

Добрый день! В теме на форуме есть архив с исходниками!

Вечер добрый. Собрал акваконтроллер по первой схеме. Еще толком не разобрался с работой каналов. Непонятна логика работы каналов 1-4. Можно ли сделать время работы так же как и у канала со2, от какого то времени до какого то определенного ?

Добрый, логика проста – сутки разбиты на интервалы по 30 минут, в каждый интервал нагрузку можно или включить или выключить. Очень похоже на механический таймер.

Добрый вечер. Возможно ли в схеме заменить ds3231 на ds1302? Другого просто нет под рукой а заказ долго ждать. Помогите к каким контактам его можно подсоединить и реально ли? Понимаю что в скейче менять надо еще но хотя бы практически.

Bluefish – контроллер для управления аквариумным оборудованием


Контроллер выполнен в виде нескольких функционально законченных блоков. Данный контроллер построен на платформе Arduino Nano на микроконтроллере ATmega328. Основной упор при разработке делался на дешевизну проекта, поэтому использовались простые комплектующие без сенсорных экранов и прочих излишеств. За исходный функционал брался контроллер Юсупова, а так же меню и экраны управления были взяты по примеру этого контроллера. За исключением собственного функционала.

Комплектующие:

Мозги:Arduino Nano ATmega328
Дисплей: LCD 2004
Блока часов реального времени (DS3231)
Силового блока: В зависимости от типа устройства могут применяться как 4-х канальные, так и 8-ми канальные блоки.
Блок связи ESP8266 модель ESP-07

Основные функции.

• Часы. Индикация даты и времени.
• Управление аквариумными нагрузками от 4 до 8 каналов.
• До 10 ежедневных программ таймера.
• До 10 ежечасных программ таймера. С диапазоном длительности работы до 60 минут.
• До 10 секундных разовых таймеров. С диапазоном длительности работы от 1 до 255 секунд.
• Поддержка до 8 цифровых датчиков температуры2. на 3-х проводной шине.
• Измерение температуры в пределах 16…35 градусов. Разрешение измерения 0.125°C. Возможность управления нагрузкой (обогревателем/охладителем) на любом канале выхода.
• Аккумулятор для работы часов МК. Сохранение хода часов.
• Автоматическое сохранение в энергонезависимой памяти всех настроек (кроме хода часов) при полном отключении питания и разряде аккумулятора.
• Управление устройством через 2-х осевой джойстик.
• Вывод информации на ЖК-дисплей 20*4 с минимальными сокращениями, интуитивно-понятный интерфейс.
• Связь со смартфоном на ОС Android по Wi-Fi. Дополнительное программное обеспечение для быстрого программирования таймеров, термостата, синхронизации времени.
• Удаленное управление устройством по средствам Wi-Fi в локальной сети (либо сети Internet при определенной настройка сетевого оборудования) .
• Самостоятельная синхронизация и корректировка даты и времени устройства при наличии доступа устройству в сеть Internet. Либо удаленная синхронизация через смартфон.
• Функция слежения за отклонением показаний датчиков от среднего установленного значения со звуковым оповещением и индикацией аварийного датчика.
• Отключение нагрузки (фильтра) на произвольном выходе при нажатии одной кнопки на 5-30 минут (временное отключение фильтра).

*оранжевым выделено что еще в процессе разработки

Текущее состояние проекта:
Собран полноценный девайс на котором будут обкатываться прошивки.
Заканчивается написание прошивки оставшегося функционала (возможно что-то придется вынести в удаленные настройки с Android так как место под скетч катастрофически не хватает). Закончено написание прошивки для модуля связи ESP8266-07. Изготовлены мат.плата для сборки устройства.

Пишется мобильный клиент.

Также пишется документация по работе с устройством его сборке и прошивке. Полная документация

Что из этого можно будет потрогать руками?
Практически все. Все материалы по плате, схема, разводки, gerber файлы я выложу после исправления ошибок.

Распиновка
D6 (10), D7(11),D8(12), D9(13), D10(14), D11(15), D12(16), D13(17) – каналы используются для силовой части (реле).

D5(9) – switchPin (кнопка джойстика)

D4(8) – tonePin (канал спикера)

D3(7) – температурные датчики

A0(23), A1(24) – X,Y джойстика

A4(27),A5(28) – I2C шина, используется для подключения экрана и модуля часов.

TDX(31), RDX(30) – UART шина для обмена данных с WiFI модулем

Для чего это?
Да на форуме много тем с различными проектами аквариумной автоматики, данное устройство не претендует на какую-то оригинальность, делалось под себя, и возможно кому-то понравится данный проект. На все вопросы с удовольствием отвечу, все советы с удовольствием выслушаю.

Сообщение отредактировал aquagomel – 19.4.2017, 15:18

Bluefish – контроллер для управления аквариумным оборудованием

Основной функционал:
плавное включение-выключение освещения (рассвет-закат) 2 канала + люминесцентные лампы;
контроль температуры (включение выключение обогревателя);
подача жидких удобрений по времени (Микро, Макро, Железо);
контроль системы фильтрации (вкл-выкл по расписанию);
контроль подачи CO2 в аквариум (вкл-выкл по расписанию);
установка часов и календаря;
режим “Профилактики” с возможностью ручного включения-выключения исполнительных устройств (освещение, фильтр, обогрев, CO2);

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

Итак для сборки АкваКонтроллера нам понадобится:

1. Arduino Nano v 3.0 ATMEGA328P;

2. Модуль часов реального времени DS3231 I2C RTC;

3. LCD display 2004A I2C;

4. Блок реле 5V 4 канала;

5. Датчик температуры DS18B20 водонепроницаемый;

6. Три Дозирующий перистальтических насоса DC 12V;

7. Блок питания или драйвер 12V (для питания самой схемы и светодиодного освещения;

8. DC-DC преобразователь XL6009;

9. Ну и по мелочи: несколько мосфетов, транзасторов, тактильные кнопки 6*6*25 мм, китайская USB зарядка 5V, пищалка (buzzer 12085) и др.

Схема акваконтроллера представлена ниже:

Позже, после сборки схема была несколько доработана (добавлены подтягивающие резисторы в цепи затвора-истока мосфетов для предотвращения ложных запусков перистальтических насосов, рализовна полная гальваническая развязка блока силовых реле с основной схемой для предотвращения помех, и установлены LC-фильтры в цепи питания Ардуины и на нагрузочные розетки исполнительных устройств (особенно на розетку люминесцентных ламп с пускателем). Итоговую схему вы можете наблюдать ниже:

Почти все собрано навесным монтажем с помощью соединительных проводов (продаются такие специально для ардуины). На печатной плате спаяна только силовая часть (мосфеты) и кнопки управления.

Итак, изготавливаем печатные платы:

Припаиваем на платы электронные компоненты:

Выше показана также распайка соединения дисплея с кнопками с основной частью акваконтроллера посредством разъемов USB.

Кнопки 6*6*8 мм, показанные на фото, впоследствии были заменены на более подходящие для корпуса, а именнно вот на такие (6*6*25) :

Далее объединяем в корпус подходящего размера (125х83х32 мм) LCD дисплей и плату с кнопками управления:

Собираем из подручных материалов (ДСП и оргстекло) основной ящик-корпус акваконтроллера:

Оклеиваем корпус самоклейкой, и начинаем собирать основные блоки акваконтроллера в корпусе:

Первоначально у меня розовые полноспектральные светодиоды запитывались от отдельного драйвера на 34 Вольта 700 мА (его видно на 1 фото выше (маленький такой, расположен над USB зарядкой черного цвета, которая предназначена для запитывания блока реле) ), но позже выяснилось что данный драйвер не поддерживает диммирование (светодиоды начинают мигать при диммировании). Поэтому было принято решение заменить данный драйвер на DC-DC преобразователь XL6009, выставленный на выдачу 34 Вольт, и более мощный драйвер 12 Вольт 6.3 А (72 Ватта)(данная модель драйвера диммируется без проблем), от которого и запитывается вся схема, включая силовую часть со светодиодами и светодиодными полосками.

Полноспектральные светодиоды использованы на 3 Вт х 10 штук. Каждый рассчитан на 3.4 Вольта 700 мА. Белые светодиодные COB полосы (6500K), на 12 Вольт, 10-12 Ватт каждая также запитываются от общего источника питания 12В. Вот как выглядят светодиоды и полосы:

Питание к светодиодам освещения у меня подводится с помощью старого советского стереофонического аудиокабеля ( у него 4 отдельных жилы и экран (2 жилы для питания полноспектральных светодиодов, и 2 жилы запаралеленных друг с другом + экранная оплетка для питания белых светодиодных полос (у них повышенная нагрузка по току, поэтому так сделано) ) ). Соединяется кабель с помошью DIN разъема и гнезда 5-контактного (тоже аудио). Ниже показано это соединение + заводка удобрений и CO2 в аквариум:

И вот как выглядит конечная паутина проводов и элементов. Не очень эстетично, но зато работает! :

А вот так смотрятся смонтированные розетки (делал из того что было в наличии дома, поэтому розетки разные, где-то двойные, где-то одинарные) и перистальтические насосы:

Лицевая часть корпуса акваконтроллера:

Удобрения подаются из бутылочек с помощью трубок из под капельницы (Система), купленных в аптеке:

А вот так смотрится дисплей с кнопками управления:

И общий вид на аквариум:

А теперь давайте пройдемся по программной части акваконтроллера. Примерная блок-схема работы программы представлена ниже:

Главное меню Акваконтроллера , его экраны с настройками представлены ниже:

Думаю все понятно и без описания, что да как. Кроме этого еще есть несколько менюшек с настроками часов реального времени, режима “Профилактики” в котором можно вручную включать и выключать освещение (розовое, белое, и люминесцентные лампы), фильтр, обогреватель и подачу CO2. И тестовое окно для проверки работы перистальтических насосов :

Вот скомпилированный скетч в IDE Arduino:

Занимает 30718 байт памяти устройства (99%). Как видите все под завязку!

Ну и вот собственно сам скетч (дождались :)) :

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: