 |
|
06.01.2017, 11:47
|
|
AquaController
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні

06.01.2017, 11:47
Рейтинг:
(2 голосов - 5,00 средняя оценка)
Уважаемые аквариумисты, хочется поделиться информацией и опытом по созданию умной "железяки" аквариумного контроллера. За последние несколько лет развитие одно платных компьютеров и им подобных шагнуло далеко в перед. Если ранее нужно было сидеть с паяльником травить лудить и вообще обладать не дюжими знаниями в области радиоэлектроники и программирования, то на текущий момент все это упростилось на столько что появилась возможность и желание сделать все самому. А посему, сею тему буду развивать и поддерживать в силу свободного времени и развития проекта...
Основные экраны
Печатные платы
Рекомендуется использовать готовые платы для сборки контроллера и силовой части:
Контроллер выполнен в виде нескольких функционально законченных блоков. Данный контроллер построен на платформе Arduino Nano на микроконтроллере ATmega328. Основной упор при разработке делался на дешевизну проекта, поэтому использовались простые комплектующие без сенсорных экранов и прочих излишеств. За исходный функционал брался контроллер Юсупова, а так же меню и экраны управления были взяты по примеру этого контроллера. За исключением собственного функционала.
Принципиальная схема
Для тех кто хочет собрать на макетке.
Комплектующие:
Скрытый текст
Мозги:Arduino Nano ATmega328
Дисплей: LCD 2004
Блока часов реального времени (DS3231)
Силового блока:Применяются 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 минут (временное отключение фильтра).
• Функция слежения и оповещения за уровнем воды (перелив).
Мобильный клиент.
Скачать можно по ссылке:
Также пишется документация по работе с устройством его сборке и прошивке... Полная документация
Что из этого можно будет потрогать руками?
Практически все. Все материалы по плате, схема, разводки, 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) - температурные датчики
A7(26), A6(25) - X,Y джойстика
A4(27),A5(28) - I2C шина, используется для подключения экрана и модуля часов.
TDX(31), RDX(30) - UART шина для обмена данных с WiFI модулем
A0(19) - waterpin (подключение датчика уровня воды)
Для чего это?
Да на форуме много тем с различными проектами аквариумной автоматики, данное устройство не претендует на какую-то оригинальность, делалось под себя, и возможно кому-то понравится данный проект... На все вопросы с удовольствием отвечу, все советы с удовольствием выслушаю...
Альтернативный источник скачивания: https://1drv.ms/f/s!AtUQdsFO3hWIgYMbwP45VuvP0xUTUA
Исходники прошивок
Все исходники доступны под MIT License по адресу: https://bitbucket.org/account/user/i...ch/projects/AQ
Последняя актуальная версия 1.3.9
- Обновлен протокол передачи данных до версии 0.6 (см. документацию)
- Добавлены уведомления о протечке (низком уровне) воды на удаленном клиенте. По умолчанию выключены.
- Добавлена возможность автоматического обновления прошивок удаленно с сервера. Данная функция настраивается только через удаленный клиент.
По умолчанию выключена.
-Добавлено кеширования основных настроек на модуле связи для ускорения подключения клиента к контроллеру.
Готовые решения
Итоговый вариант.

Мініатюри долучень
Долучені файли
 |
Schema_v1_1.zip (42,4 КБ, 2257 переглядів) |
 |
Elemets_list.zip (7,4 КБ, 2090 переглядів) |
 |
Schema_power_v1_1.zip (29,7 КБ, 2059 переглядів) |
 |
Power_gerber_v_1_1.zip (88,6 КБ, 2093 переглядів) |
 |
Power_PCB_v_1_1.zip (89,5 КБ, 2075 переглядів) |
 |
Elemets_list_power.zip.zip (7,5 КБ, 2022 переглядів) |
 |
PCB_gerber_v_1_3.zip (215,0 КБ, 2107 переглядів) |
 |
PCB_v_1_3.zip (1,17 МБ, 2101 переглядів) |
 |
AquaControllerNano-1.3.9-0.6.zip (31,1 КБ, 1783 переглядів) |
 |
AquaControllerNano-1.3.9-0.6-invers-logic.zip (31,1 КБ, 1762 переглядів) |
 |
AquaControllerESP-1.3.9-0.6.zip (261,7 КБ, 1858 переглядів) |
Востаннє редагував AquaGomel: 09.11.2019 о 23:58..
|
Переглядів: 187680
|
Ці 33 користувач(ів) сказали Дякую AquaGomel за це повідомлення:
|
AfricaNN52 (05.11.2021), AlexVOK (02.05.2017), Alserk-3 (28.05.2017), AndrewUh (05.04.2017), Arduino (07.01.2017), Asrok (11.01.2017), chack (28.03.2017), Danchik (20.07.2018), Denisios (17.10.2017), DjoserZee (12.03.2020), Floyd (25.02.2018), harn (08.06.2018), igor_tj21 (04.07.2020), imac2008 (18.01.2017), kolljj (06.01.2017), litlechina (04.05.2022), LVit (05.10.2018), mashenkaM (28.03.2017), myprog (06.01.2017), nickanya (06.01.2017), orthos (23.01.2017), Rulik (02.09.2017), Sem (06.01.2017), Star_POM (22.10.2017), Torin21 (24.03.2017), Vadim_VD (04.05.2017), Wayler (09.08.2017), xxxFeLiXxxx (18.04.2017), ya7sergey (28.03.2017), yarishNEW (18.01.2017), _Vadim (22.01.2018), Сергій М (06.01.2017), Юрий77 (06.01.2017) |
24.03.2017, 13:34
|
#46
|
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Обновил в шапке схему, саму схему печатной платы залью чуток попозже. Надо еще раз все проверить что бы не было конфуза опять (((...
|
|
|
24.03.2017, 14:49
|
#47
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
AquaGomel, Я могу ошибаться, но зачем на каждый датчик температуры свой резистор? У меня один на все.
__________________ 
|
|
|
24.03.2017, 15:24
|
#48
|
Бан за нарушения
Реєстрація: 13.05.2016
Звідки Ви: Глобино
Дописи: 145
сказав Дякую: 37
сказали Дякую 54 раз(и) в 32 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
AquaGomel, sae74 тоже самое кинулось в глаза, там именно один и нужен.
AquaGomel, Я смотрю Вы меня разыгрываете  У вас же все датчики температуры висят на одно выходе, значить тоже обращение через адреса, и просто так вытыкнуть и втыкнуть новый датчик простому пользователю не получится 
__________________ 
|
|
|
24.03.2017, 15:26
|
#49
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від mashenkaM
и просто так вытыкнуть и втыкнуть новый датчик простому пользователю не получится
|
Почему не получится? Если реализован поиск датчиков, а потом в настройке указать какой именно датчик за что отвечает - то пользователю будет удобно.
__________________ 
|
|
|
24.03.2017, 15:32
|
#50
|
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від sae74
AquaGomel, Я могу ошибаться, но зачем на каждый датчик температуры свой резистор? У меня один на все.
|
Я тоже могу ошибаться, тем более особо не вникал, я читал что связанно с различной длинной провода, но толкового объяснения я не нашел. Хотя везде используется схема как с одним резистом так и с несколькими... А по хорошему я программист, который умеет чуток держать паяльник в руках))) Так что возможно я и не прав...
|
|
|
24.03.2017, 15:36
|
#51
|
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від mashenkaM
AquaGomel, sae74 тоже самое кинулось в глаза, там именно один и нужен.
AquaGomel, Я смотрю Вы меня разыгрываете  У вас же все датчики температуры висят на одно выходе, значить тоже обращение через адреса, и просто так вытыкнуть и втыкнуть новый датчик простому пользователю не получится 
|
Как раз таки нет. Висят то они на одной шине, только кодом я к датчику никак не привязан. Т.е. простой пример: есть у вас 8 произвольных датчиков. Вы все их подключаете. После инициализации, каждый из них займет определенный индекс. И как бы вы потом эти датчики не "тусовали" контроллер всегда будет знать какой номер датчика подключен в любой порт!
Вы можете менять номера датчиков только последовательным подключением и инициализацией.
|
|
|
24.03.2017, 15:39
|
#52
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
AquaGomel,
Тогда при замене датчика и новой инициализации придется заново настраивать программу?
__________________ 
|
|
|
24.03.2017, 15:48
|
#53
|
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від sae74
AquaGomel,
Тогда при замене датчика и новой инициализации придется заново настраивать программу?
|
Если убрать датчик то никаких настроек вообще не получиться с ним сделать. Программа привязана только к индексу датчика а не к его адресу. Если к примеру убрать, один из датчиков то программа для него выполняться не будет. А для остальных ничего не измениться, так как индексы меняются только при при инициализации датчиков. Что будет если произвести инициализацию с новым датчиком? Хм... если не изменятся индексы то все останется работать как прежде. А вот что как определяется порядок назначения индексов библиотекой нужно смотреть, пока не готов ответить... Вопрос хороший.. нужно будет посмотреть если хватит еще места в скетче позаботится что бы замененный датчик становился на место старого...
|
|
|
24.03.2017, 15:50
|
#54
|
Бан за нарушения
Реєстрація: 13.05.2016
Звідки Ви: Глобино
Дописи: 145
сказав Дякую: 37
сказали Дякую 54 раз(и) в 32 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від AquaGomel
Как раз таки нет. Висят то они на одной шине, только кодом я к датчику никак не привязан. Т.е. простой пример: есть у вас 8 произвольных датчиков. Вы все их подключаете. После инициализации, каждый из них займет определенный индекс. И как бы вы потом эти датчики не "тусовали" контроллер всегда будет знать какой номер датчика подключен в любой порт!
Вы можете менять номера датчиков только последовательным подключением и инициализацией.
|
Да Вы правы, но до первого выключения питания, потому что датчики индексируются каждый раз по разному (рандомно).
__________________ 
|
|
|
cказали "Дякую" mashenkaM за цей допис:
|
|
24.03.2017, 15:52
|
#55
|
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від mashenkaM
Да Вы правы, но до первого выключения питания, потому что датчики индексируются каждый раз по разному.
|
Датчики индексируются во-первых по адресу, а во вторых они инициализируются в ручную... После инициализации они сохраняются в EEPROM. И все последующие запуски и перезагрузки, контроллер работает без изменений как с датчиками так и с таймерами...
|
|
|
24.03.2017, 16:18
|
#56
|
Бан за нарушения
Реєстрація: 13.05.2016
Звідки Ви: Глобино
Дописи: 145
сказав Дякую: 37
сказали Дякую 54 раз(и) в 32 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від AquaGomel
Я тоже могу ошибаться, тем более особо не вникал, я читал что связанно с различной длинной провода, но толкового объяснения я не нашел. Хотя везде используется схема как с одним резистом так и с несколькими... А по хорошему я программист, который умеет чуток держать паяльник в руках))) Так что возможно я и не прав...
|
Данный резистор является подтягивающим и при подключение нескольких датчиков к одному питанию и сигналу нужен только один резистор, иначе несколько будут работать по принципу параллельного подключения и общее сопротивление просто упадёт.
__________________ 
|
|
|
cказали "Дякую" mashenkaM за цей допис:
|
|
24.03.2017, 16:39
|
#57
|
Бан за нарушения
Реєстрація: 13.05.2016
Звідки Ви: Глобино
Дописи: 145
сказав Дякую: 37
сказали Дякую 54 раз(и) в 32 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
AquaGomel, правильно ли мы поняли, вы инициализацию прописали у себя в коде программно? То есть идёт сканирование адресов, а вы определяете из списка (щупая каждый за кончик или подключая только один) кокой датчик за что отвечает? В EEPROM вы адреса сохраняете датчиков?
__________________ 
|
|
|
24.03.2017, 18:13
|
#58
|
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від mashenkaM
Данный резистор является подтягивающим и при подключение нескольких датчиков к одному питанию и сигналу нужен только один резистор, иначе несколько будут работать по принципу параллельного подключения и общее сопротивление просто упадёт.
|
В этом вопросе я спорить не буду, так как моя квалификация не позволяет этого сделать. Возможно вы правы, но я использовал другую схему, если вам больше нравиться один подтягивающий резистор впаивайте тогда его одного к примеру R12.
Цитата:
Допис від mashenkaM
AquaGomel, правильно ли мы поняли, вы инициализацию прописали у себя в коде программно? То есть идёт сканирование адресов, а вы определяете из списка (щупая каждый за кончик или подключая только один) кокой датчик за что отвечает? В EEPROM вы адреса сохраняете датчиков?
|
Другой инициализации я не знаю. Да сохраняются адреса, так как опрос самих датчиков делается именно по адресам.
Цитата:
Допис від mashenkaM
потому что датчики индексируются каждый раз по разному (рандомно)
|
К счастью нет. Порядок датчиков определяется строго их адресами.
Цитата:
Допис від AquaGomel
Если убрать датчик то никаких настроек вообще не получиться с ним сделать. Программа привязана только к индексу датчика а не к его адресу. Если к примеру убрать, один из датчиков то программа для него выполняться не будет. А для остальных ничего не измениться, так как индексы меняются только при при инициализации датчиков. Что будет если произвести инициализацию с новым датчиком? Хм... если не изменятся индексы то все останется работать как прежде. А вот что как определяется порядок назначения индексов библиотекой нужно смотреть, пока не готов ответить... Вопрос хороший.. нужно будет посмотреть если хватит еще места в скетче позаботится что бы замененный датчик становился на место старого...
|
Да к сожалению при подключении нового датчика или замена какого-либо из них, ломает логику работы программ для температурных датчиков, программы продолжат работать но для них могут быть уже другие датчики... так как программы связаны с индексом датчика а не с его реальным адресом. И возникает вопрос. Насколько это существенно? Конечно можно добавить какую-то логику, но как я уже говорил место практически нет... вообщем надо думать...
Востаннє редагував AquaGomel: 24.03.2017 о 18:20..
|
|
|
24.03.2017, 20:32
|
#59
|
Бан за нарушения
Реєстрація: 13.05.2016
Звідки Ви: Глобино
Дописи: 145
сказав Дякую: 37
сказали Дякую 54 раз(и) в 32 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
AquaGomel, чё там думать я выше раз 5 писала, что для конечного пользователя в широких масах нужно просто подключать один датчик только к одному выходу. Тогда не нужно будет лезть в программу и шить заново.
__________________ 
|
|
|
24.03.2017, 20:52
|
#60
|
Живу я тут
Реєстрація: 31.07.2010
Звідки Ви: Белоруссия, Гомель
Дописи: 413
сказав Дякую: 38
сказали Дякую 191 раз(и) в 86 повідомленні
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Допис від mashenkaM
AquaGomel, чё там думать я выше раз 5 писала, что для конечного пользователя в широких масах нужно просто подключать один датчик только к одному выходу. Тогда не нужно будет лезть в программу и шить заново.
|
Я читал ваши 5 раз, только я не совсем понимаю зачем вы так делаете? Я стараюсь сделать универсальное устройство. Вы же предлагаете сделать одноразовое. С таким подходом можно просто сделать торчащий шнур из коробки, без всяких там входов. Я уже объяснял вам 5 раз, что пользователь не должен лазить в прошивку что бы поменять сгоревший датчик. Если вы харкодно забьете адрес подключенного датчика, что потом делать пользователю если возникнет необходимость его поменять? А если добавить еще один? У вас один аквариум, а у кого-то пять! Не вы не я не знаете что нужно массе аквариумистов, поэтому нужно стараться делать универсальные вещи. Советую посмотреть на тот же контроллер Юсупова. Очень универсальная вещь. По поводу выше описанного случая, думаю есть решение. На выходных попробую грамотно закодить его!
|
|
|
 |
|
Тут присутні: 1 (учасників - 0 , гостей - 1)
|
|
Ваші права у розділі
|
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи
HTML код Вимк.
|
|
|
Часовий пояс GMT +3. Поточний час: 18:31.
|