Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

AQUAFANAT - форум аквариумистов _ Очумелые ручки аквариумистов _ AquaController

Автор: aquagomel 19.4.2017, 15:19


Уважаемые аквариумисты, хочется поделиться информацией и опытом по созданию умной "железяки" аквариумного контроллера. За последние несколько лет развитие одно платных компьютеров и им подобных шагнуло далеко в перед. Если ранее нужно было сидеть с паяльником травить лудить и вообще обладать не дюжими знаниями в области радиоэлектроники и программирования, то на текущий момент все это упростилось на столько что появилась возможность и желание сделать все самому. А посему, сею тему буду развивать и поддерживать в силу свободного времени и развития проекта...


Контроллер выполнен в виде нескольких функционально законченных блоков. Данный контроллер построен на платформе 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. Изготовлены мат.плата для сборки устройства.

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


Также пишется документация по работе с устройством его сборке и прошивке... http://www.aquafanat.com.ua/go.php?http://pcb.aquagomel.ru

Что из этого можно будет потрогать руками?
Практически все. Все материалы по плате, схема, разводки, 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 модулем

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

 PCB_v_1_1.zip ( 97,06 килобайт ) : 269
 PCB_gerber_v_1_1.zip ( 76,46 килобайт ) : 207
 Elemets_list_power.zip.zip ( 7,54 килобайт ) : 235
 AquaControllerESP.zip ( 244,94 килобайт ) : 255
 Elemets_list.zip ( 7,41 килобайт ) : 220
 AquaController_flash.zip ( 31,45 килобайт ) : 241
 Power_gerber_v_1_1.zip ( 88,56 килобайт ) : 221
 Power_PCB_v_1_1.zip ( 89,49 килобайт ) : 214
 Schema_power_v1_1.zip ( 29,67 килобайт ) : 242
 Schema_v1_1.zip ( 42,42 килобайт ) : 266
 

Автор: yarishNEW 19.4.2017, 18:38

Спасибо за инфу, может кто-то надумает спаять, что-то по вашим схемам.
Альтернатива должна быть всегда! drinks.gif

Автор: sae74 19.4.2017, 20:19

aquagomel, Правильно - несите автоматику в Массы!
Мне нравится Ваша разработка!

Автор: aquagomel 20.4.2017, 12:45

На самом деле паять там особо то и не много, платы делались для удобства. Если не запариваться с беспроводной связью то можно и без плат собрать, силовой блок тоже можно не распаивать, а просто взять готовый шилд на твердотельных реле. hi.gif

Автор: aquagomel 11.9.2017, 14:31

Залил свежие прошивки:
AquaControllerNano v1.2.3
-исправлена ошибка 1 канала и температурных датчиков.
-исправлена ошибка отключения WiFi
+добавлены режимы временного выключения канала на 5 и 30 мин. Работают при длительном удержании джойстика вверх или вниз.
AquaControllerNano_1_3_0_[led]
+добавлена поддержка работы с 3 драйверами LED. Ручное включение выключение каналов. 10 таймеров рассвета заказа, с максимальным временем задержки 250 сек. Данная прошивка работает только через сдвиговый регистр 74hc165.

Код: [Выделить]

Код
Распиновка:
D6 (10), D9(13), D10(14) - каналы используемые LED

//Пин подключен к ST_CP (12) входу 74HC595 D11
byte latchPin = 11;
//Пин подключен к SH_CP (11) входу 74HC595 D12
byte clockPin = 12;
//Пин подключен к DS (14) входу 74HC595 D13
byte dataPin = 13;

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

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

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

A7(23), A6(24) - X,Y джойстика

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




Клиент пока еще в работе, к сожалению не успел еще его доделать, постараюсь дописать для теста хотя бы альфа версию в течении пары недель.

В связи с тем что изменился протокол передачи данных. Необходимо обязательно прошить кроме ардуины модуль связи ESP для него прошивка находится в архиве с прошивкой ардуины.
Документацию обновлю уже после того как закончу клиент. Так как запарился каждый раз ее менять.

Есть есть вопросы или предложения пишите...

Автор: aquagomel 26.10.2017, 14:48

Мобильный клиент.

Текущая версия: 1.2.5*
-------------------------------------------------------
-Исправлены некоторые ошибки (и добавлены новые)
-Добавлена служба мониторинга температуры. Работает в фоновом режиме собирает статистику по температурным датчикам. В
системном лотке можно узнать температуру первого датчика не запуская программу.
-Настроена правильный подсчет расхода электроэнергии (пока без учета температурных таймеров)
-Добавлена информация по температуре для всех датчиков. На вкладке температурных таймеров.
-Добавлены графики изменения температуры для первых двух датчиков. (Нажатие на иконки температуры с главного окна)
-Добавлена синхронизация времени контроллера с временем телефона (через контекстное меню).
-Добавлена настройка GMT часового пояса для правильной синхронизации времени.
-Добавлена информация о типе таймера включившего канал
-------------------------------------------------------
* - Версия альфа. Для тестирования и поиска ошибок.

-------------------------------------------------------
Вся актуальная информация доступна здесь: http://www.aquafanat.com.ua/go.php?https://1drv.ms/f/s!AtUQdsFO3hWIgYMbwP45VuvP0xUTUA


 

Автор: aquagomel 25.9.2018, 10:39

Есть в наличии контроллер из этой темы.
Функционал:

• Часы. Индикация даты и времени.
• Управление аквариумными нагрузками от 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 минут (временное отключение фильтра).
• Функция слежения и оповещения за уровнем воды (перелив).

Изготовление мое. Контроллер использовался около полугода на моих банках. Продается так как был изготовлен еще один =)... В наличии сам контроллер, датчик температуры, сетевой шнур. Цена 100 у.е.



 

Автор: aquagomel 10.6.2019, 9:55

Альтернативный источник скачивания: http://www.aquafanat.com.ua/go.php?https://1drv.ms/f/s!AtUQdsFO3hWIgYMbwP45VuvP0xUTUA

Исходники прошивок
Все исходники доступны под MIT License по адресу: http://www.aquafanat.com.ua/go.php?https://bitbucket.org/account/user/i...ch/projects/AQ

Последняя актуальная версия 1.3.7
- Исправлена ошибка секундного таймера.
- Исправлены ошибки обновления времени.
-Исправлен баг с отправкой данных через клиент для часовых таймеров.
+ Обновления модуля связи теперь можно производить удаленно:http://[IP-устройства]/update
+ Обновление времени через сервера NTP теперь работают с учетом временной зоны. Для этого необходимо в клиенте в настройках установить вашу временную зону, (0,1,2,3... - накидывает время в часах к времени UTC ) и сделать одно обновление времени через клиент далее контроллер сам будет обновлять время с учетом временной зоны (Конечно если включена настройка NTP в контроллере).
- Статистика по температуре более не будет собираться клиентом, а будет собираться на стороне контроллера (более точные данные которые будут доступны и удаленно)
- Все параметры контроллера доступны через REST API, для желающих написать свою web оболочку или любой иной клиент. Список URL:
http://[IP-устройства]/device.json
http://[IP-устройства]/canal.json
http://[IP-устройства]/timerday.json
http://[IP-устройства]/timerhour.json
http://[IP-устройства]/timersec.json
http://[IP-устройства]/timertemp.json
http://[IP-устройства]/tempsensor.json
http://[IP-устройства]/tempstats.json
http://[IP-устройства]/ph.json (пока еще в процессе)

Мобильный клиент.
http://www.aquafanat.com.ua/go.php?https://play.google.com/store/apps/details?id=com.aerosoft.aquacontroller

[attachment=35
0914:user1725...08234262.png]

 

Автор: C7men 24.6.2019, 22:12

Добрый день, подскажите пожалуйста возможно ли использования вместо платы ESP8266 модель ESP-07, плату CP2102 NodeMCU esp8266? А может и во все вместе ат мега как основу NodeMCU?

Автор: aquagomel 24.6.2019, 23:26

Цитата(C7men @ 24.6.2019, 23:08) *
Добрый день, подскажите пожалуйста возможно ли использования вместо платы ESP8266 модель ESP-07, плату CP2102 NodeMCU esp8266? А может и во все вместе ат мега как основу NodeMCU?

Ну если на макетке то можно.

Но если собирать рабочий вариант, то плата разведена именно под ESP-07 (ESP-12F не тестировал).

Автор: gtsky 18.1.2020, 21:48

Хороший проект , есть у меня в архивах похожий проект а Node MCU + Nextion (резистивный экран) Думаю было бы неплохо скрестить 2 проекта и сделать один:) У меня по сути метеостанция на первом экране тянет погоду из интернета, выводит показания с датчика температуры , показывает есть ли связь с вифи и второй частью на которой находятся релле для управления перевирией аквариума , на втором вывод показаний
Температура в аквариуме
можно вручную включать и выключать свет кнопками , так же есть авотаймер , выставляем время включения и выключения . управление релле. Так же была идею доделать вкючение выключение обогревателя по температуре воды. Вообщем если нтересно могу выложить исходники)
Мобильное приложение у меня почемуто не запустилось(((

Автор: aquagomel 19.1.2020, 10:42

Добрый. Данный проект фактически исчерпал себя. Резерва по железу практически не осталось. Поэтому сейчас медленно разрабатывается вторая версия основаная только на ESP32 контроллере. Так что любая помощь только приветствуется. По поводу клиента. Если опишете подробно проблему думаю можно будет помочь.

Автор: gtsky 19.1.2020, 20:18


Доброго времени суток вот собственно проект http://www.aquafanat.com.ua/go.php?https://drive.google.com/open?id=1TdTrb_5hShWUadoUBV-zGTTLOMkXGzBG
По железу

Основной блок :
Екран Nextion 2.4 или 3.5 ( в пректе есть под оба) - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32699965378.html
DS3231 - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32822420722.html
Дачик света TEMT6000 - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32861845141.html
NodeMcu 8266 - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32593655688.html но можно компилить скетч и на ESP32 нужно просто заменить бибилиотеку
Датчик температуры DHT22 - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32769460765.html
но можно подкючить и BME280 - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32849462236.html
ну и радио модуль HC11 433MHz - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/4000561071883.html - у меня работает через 2 стены.

Второй блок возле аквариума:
Релле - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32782647579.html
DS18B20 - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32467815969.html
радио модуль HC11 433MHz - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/4000561071883.html
NANO V3 ATmega328 (16MHz) / CH340G - http://www.aquafanat.com.ua/go.php?https://aliexpress.ru/item/32664577152.html

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

Автор: aquagomel 20.1.2020, 9:39

Для чего используется радио модуль HC11? Я так понимаю что модуль связи общается через него с ардуино? Которая в свою очередь устанавливает режимы работы каналов на силовой плате? т.е связь WiFi - радио ? Эмм как тогда сделана корекция ошибок при передаче данных между самим контроллером и силовой частью? Что будет если в контроллере установить значения которые не получит силовой модуль? Какая-то синхронизация есть в этом случае? Спрашиваю потому как использую связку ESP - Arduino через UART и это огромный минус этого проекта. Потому как пришлось просто писать огромное количество всяких проверок и синхронизаций данных... ПОэтому в след версии будет только ESP!!

Автор: gtsky 20.1.2020, 16:10

модуль нужен для связи , все основное управление находится на 8266 все обработчики и т.д. Ардуина нужна как приемная часть для включения ии выключения релле ну и передачи ответа. Для получения ответов и проверки отправленных команд нужно реализовать MQTT сейчас к примеру при нажатии кнопки вкл приходит статус вкл или нет но не оправшиваеся вывод релле. Если свет пропадет то статус на екране будет всеравно вкл в тот момент как света в квариуме небет. Но опять же это я делал 2 года назад. Так как у еня дом и основной блок стоит у меня на рабочем столе в коробочке. Его можно установить в любое место в доме а не держать только возле аквы. Поэтому я и делал на радио

Автор: Dhaedra 25.1.2020, 6:24

Есть ли готовые решения на продажу? Можно в личку.

Автор: gtsky 26.1.2020, 13:10

так выложены ж готовые решения:)) качайте )

Автор: aquagomel 27.1.2020, 9:17

Цитата(Dhaedra @ 25.1.2020, 7:20) *
Есть ли готовые решения на продажу? Можно в личку.

Если вы про готовое устройство то есть лишнее в количестве 1 шт.

Автор: Rost78 24.3.2020, 13:49

Цитата(aquagomel @ 19.1.2020, 10:38) *
Добрый. Данный проект фактически исчерпал себя. Резерва по железу практически не осталось. Поэтому сейчас медленно разрабатывается вторая версия основаная только на ESP32 контроллере. Так что любая помощь только приветствуется. По поводу клиента. Если опишете подробно проблему думаю можно будет помочь.

Будет разработка с нуля, или переделка матери под отладочную на STM32?

Автор: aquagomel 24.3.2020, 13:59

Цитата(Rost78 @ 24.3.2020, 14:45) *
Цитата(aquagomel @ 19.1.2020, 10:38) *
Добрый. Данный проект фактически исчерпал себя. Резерва по железу практически не осталось. Поэтому сейчас медленно разрабатывается вторая версия основаная только на ESP32 контроллере. Так что любая помощь только приветствуется. По поводу клиента. Если опишете подробно проблему думаю можно будет помочь.

Будет разработка с нуля, или переделка матери под отладочную на STM32?

Будет замена связка Arduino + ESP8266 на ESP32, соответсвенно будет новая мат.плата, с поддержкой нового функционала. За основу будет взята прошивка с предыдущей версии, так как она достаточно хорошо обкатана. Силовую часть можно будет использовать прежнюю, либо распаять ее на мат.плате. Клиент будет тот же с поддержкой нового функционала.

Автор: Rost78 3.6.2020, 14:54

Какой по мощности блок питания нужен под эту схему? Достаточно будет 2А?

Автор: aquagomel 3.6.2020, 17:08

Я использую 700 mA

Автор: terator 26.6.2020, 19:04

Здравствуйте! Когда можно ожидать новой версии платы на esp32 или лучше собирать версию на arduino?

Автор: aquagomel 26.6.2020, 19:24

Цитата(terator @ 26.6.2020, 20:04) *
Здравствуйте! Когда можно ожидать новой версии платы на esp32 или лучше собирать версию на arduino?

Сейчас разводится плата, конкретные сроки сказать не могу, платы будут заказываться в Китае, судя по последним посылкам, которые идут уже 3 месяц то думаю первый опытный образец будет в лучшем случае в начале осени... hi.gif

Автор: terator 27.6.2020, 13:18

Ясно! Спасибо за ответ! Тогда пока буду собирать по старой схеме, потом переделаю на новую!

Автор: terator 6.7.2020, 18:54

Ещё раз здравствуйте уважаемый Aqvagomel! А схема и список элементов уже есть? На Вашем сайте не обнаружил, только есть страница "главная V2.0", а то хочется сразу заказать пока детали чтоб пришли

Автор: aquagomel 19.8.2020, 9:59

Цитата(terator @ 6.7.2020, 19:54) *
Ещё раз здравствуйте уважаемый Aqvagomel! А схема и список элементов уже есть? На Вашем сайте не обнаружил, только есть страница "главная V2.0", а то хочется сразу заказать пока детали чтоб пришли

Схема:
http://www.aquafanat.com.ua/go.php?http://aquacontroller.ru/ru/doc/class-layout/default-layout
Номиналы РЭК
http://www.aquafanat.com.ua/go.php?http://aquacontroller.ru/ru/doc/class-layout/3-columns
hi.gif

Автор: terator 21.8.2020, 11:03

Спасибо, но я имел ввиду на вторую версию!

Автор: aquagomel 21.8.2020, 20:25

Цитата(terator @ 21.8.2020, 12:03) *
Спасибо, но я имел ввиду на вторую версию!

Хотите собрать раньше меня? laugh.gif
Ну ок, список элементов я приложу.

 ESP8266.PDF ( 22,17 килобайт ) : 9
 

Автор: terator 23.8.2020, 21:49

Спасибо большое! Собрать раньше Вас и в мыслях не было, просто хочу заказать детали чтоб к моменту как соберете и выложите я тоже смог собрать!

Русская версия Invision Power Board (http://www.Aquafanat.com.ua)
© Invision Power Services (http://www.Aquafanat.com.ua)