|
|
06.01.2017, 11:47
|
|
AquaController
Живу я тут
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 412
Поблагодарил(а) : 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 Кб, 1627 просмотров) |
|
Elemets_list.zip (7.4 Кб, 1533 просмотров) |
|
Schema_power_v1_1.zip (29.7 Кб, 1439 просмотров) |
|
Power_gerber_v_1_1.zip (88.6 Кб, 1510 просмотров) |
|
Power_PCB_v_1_1.zip (89.5 Кб, 1490 просмотров) |
|
Elemets_list_power.zip.zip (7.5 Кб, 1455 просмотров) |
|
PCB_gerber_v_1_3.zip (215.0 Кб, 1483 просмотров) |
|
PCB_v_1_3.zip (1.17 Мб, 1517 просмотров) |
|
AquaControllerNano-1.3.9-0.6.zip (31.1 Кб, 1248 просмотров) |
|
AquaControllerNano-1.3.9-0.6-invers-logic.zip (31.1 Кб, 1210 просмотров) |
|
AquaControllerESP-1.3.9-0.6.zip (261.7 Кб, 1311 просмотров) |
Последний раз редактировалось AquaGomel; 09.11.2019 в 23:58..
|
Просмотров: 154465
|
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) |
Реклама помогает развиваться |
|
26.03.2017, 09:25
|
#76
|
Живу я тут
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 412
Поблагодарил(а) : 38
Поблагодарили 191 раз(а) в 86 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от mashenkaM
AquaGomel, мы так и не поняли, вы кричите про универсальность и простоту, но сами повесили 4 датчика на один провод, что явно не универсальность и простота. Или вы это как то решили программно?
|
Где я такое написал? Все 4 датчика висят на своих проводах. Если вы смотрели схему то там как раз 4 выхода для каждого свой датчик.
Цитата:
Сообщение от mashenkaM
Один из ваших датчиков можно просто заменить физически и программа будет работать корректно?
|
Да именно так, я стараюсь сейчас написать код что бы была именно такая логика.
|
|
|
26.03.2017, 13:28
|
#77
|
Живу я тут
Регистрация: 11.12.2011
Адрес: Москва
Сообщений: 112
Поблагодарил(а) : 14
Поблагодарили 15 раз(а) в 13 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от AquaGomel
Я к стати так же думал. Но все же согласитесь было бы приятнее если бы при замене датчика не сбивалась программа для всех остальных.
|
У меня все через меню: при инициализации всех датчиков я каждому присваиваю назначение. В результате, в массиве с адресами (индивидуальными для каждого датчика) имеется указатель назначения. Если какой-то датчик заменяешь или отключаешь, то при следующей инициализации он исключается из массива вместе с назначением, а остальные работают как и раньше.
|
|
|
Пользователь, который поблагодарил AndrewUh за данный пост:
|
|
26.03.2017, 16:09
|
#78
|
Живу я тут
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 412
Поблагодарил(а) : 38
Поблагодарили 191 раз(а) в 86 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от AndrewUh
У меня все через меню: при инициализации всех датчиков я каждому присваиваю назначение. В результате, в массиве с адресами (индивидуальными для каждого датчика) имеется указатель назначения. Если какой-то датчик заменяешь или отключаешь, то при следующей инициализации он исключается из массива вместе с назначением, а остальные работают как и раньше.
|
А если к примеру удалить один датчик и вместо него поставить другой новый. И сделать инициализацию. Для нового датчика назначения не будет? А остальные старые так же продолжат работать?
|
|
|
26.03.2017, 17:06
|
#79
|
Живу я тут
Регистрация: 11.12.2011
Адрес: Москва
Сообщений: 112
Поблагодарил(а) : 14
Поблагодарили 15 раз(а) в 13 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от AquaGomel
А если к примеру удалить один датчик и вместо него поставить другой новый. И сделать инициализацию. Для нового датчика назначения не будет? А остальные старые так же продолжат работать?
|
Это как сделать. Есть два варианта.
Если при инициализации адрес датчика не находишь, то :
1. В массиве удаляешь этот датчик и его назначение. Новый датчик записываешь в массив без назначения (потом можно назначить или сразу);
2. Записываешь на место отсутствующего - новый, сохраняя при этом назначение (этот вариант хорош при замене одного датчика).
|
|
|
26.03.2017, 17:17
|
#80
|
Живу я тут
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 412
Поблагодарил(а) : 38
Поблагодарили 191 раз(а) в 86 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от AndrewUh
Это как сделать. Есть два варианта.
Если при инициализации адрес датчика не находишь, то :
1. В массиве удаляешь этот датчик и его назначение. Новый датчик записываешь в массив без назначения (потом можно назначить или сразу);
2. Записываешь на место отсутствующего - новый, сохраняя при этом назначение (этот вариант хорош при замене одного датчика).
|
У меня получилась такая логика: У каждого датчика есть состояние подключен\отключен (зависит от того получается ли с него снять температуру и корректна ли она, что бы если сгорит датчик на нем не выполнялась программа и можно было включить тревогу), далее при инициализации мы ищем все датчики которые отсутствуют сейчас в списке инициализированных. Далее мы ищем старые датчики у которых статус отключен и заменяем их найденными новыми датчиками. Все программы при этом сохраняются и продолжают работать с новыми датчиками. Если заменяется датчик один, то он становиться на место первого отключенного датчика (таким образом поочередной инициализацией мы можем правильно расставить новые датчики не меняя программ для них), если менять сразу несколько датчиков сразу, то они расставляются согласно их адресам. Тогда нужно будет уже в ручную определить какой замененный датчик получил какой номер!
|
|
|
Реклама помогает развиваться |
|
26.03.2017, 17:29
|
#81
|
Живу я тут
Регистрация: 11.12.2011
Адрес: Москва
Сообщений: 112
Поблагодарил(а) : 14
Поблагодарили 15 раз(а) в 13 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Можно и так. Я у себя не делал определение неисправности датчика. В случае, если датчик показывает нереальную температуру я получаю смс и могу по телефону скорректировать управление нагревателем или охладителем. Мне этого достаточно. С вашим интерфейсом это должно быть еще проще. От всего все равно не застрахуешься.
|
|
|
27.03.2017, 00:07
|
#82
|
Бан за нарушения
Регистрация: 13.05.2016
Адрес: Глобино
Сообщений: 145
Поблагодарил(а) : 37
Поблагодарили 54 раз(а) в 32 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от AquaGomel
Где я такое написал? Все 4 датчика висят на своих проводах. Если вы смотрели схему то там как раз 4 выхода для каждого свой датчик.
Да именно так, я стараюсь сейчас написать код что бы была именно такая логика.
|
Смотрю первый Ваш пост, скачиваю файл Schema_v1_1.zip, в нём файл Schema_v1_1.pdf, открываю его и представте себе вижу что все 4 датчика подключены к одному выводу D3.
__________________
|
|
|
27.03.2017, 00:14
|
#83
|
Бан за нарушения
Регистрация: 13.05.2016
Адрес: Глобино
Сообщений: 145
Поблагодарил(а) : 37
Поблагодарили 54 раз(а) в 32 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
AndrewUh, AquaGomel,
с учётом того что в итоге выяснилось что у второго датчики всё таки висят каждый на своём выходе, а не так как она показал всем, то что вы там мудрите с датчиками, любой пример использования таких датчиков предполагает что их можно менять на любой подобный или даже местами и программа будет работать правильно на 100%.
Это если несколько датчиков висят на одном выводе, тогда да, нужны танцы с бубном.
AndrewUh, если у вас тоже все датчики висят отдельно, то зачем вам адреса их?
__________________
|
|
|
27.03.2017, 00:39
|
#84
|
Живу я тут
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 412
Поблагодарил(а) : 38
Поблагодарили 191 раз(а) в 86 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от mashenkaM
AndrewUh, AquaGomel,
с учётом того что в итоге выяснилось что у второго датчики всё таки висят каждый на своём выходе, а не так как она показал всем, то что вы там мудрите с датчиками, любой пример использования таких датчиков предполагает что их можно менять на любой подобный или даже местами и программа будет работать правильно на 100%.
Это если несколько датчиков висят на одном выводе, тогда да, нужны танцы с бубном.
AndrewUh, если у вас тоже все датчики висят отдельно, то зачем вам адреса их?
|
Мы с вами говорим про разные вещи, я вам говорю про выходы USB для датчиков, вы говорите про цифровые входы выходы ардуино. Естественно что никто отдавать отдельный канал с ардуино под каждый датчик не станет, потому что это глупо. А то что они будут работать если их местами поменять тут никто и не спорит. А вот если поменять сам датчик и при этом в прошивке не предусмотрена возможность установить новый датчик на место старого то ломается логика программ по работе с этими датчиками.
|
|
|
27.03.2017, 08:34
|
#85
|
Живу я тут
Регистрация: 11.12.2011
Адрес: Москва
Сообщений: 112
Поблагодарил(а) : 14
Поблагодарили 15 раз(а) в 13 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от mashenkaM
AndrewUh, если у вас тоже все датчики висят отдельно, то зачем вам адреса их?
|
У меня все датчики на одном входе. Слишком жирно каждый вешать на свой вход (можно, конечно, расширитель портов поставить, но тут уж каждому свое). У Вас он может один, а у кого-то 8. Если честно, то я не видел еще ни одной схемы, где датчики подключаются каждый к своему входу.
Последний раз редактировалось AndrewUh; 27.03.2017 в 08:42..
|
|
|
27.03.2017, 09:21
|
#86
|
Бан за нарушения
Регистрация: 13.05.2016
Адрес: Глобино
Сообщений: 145
Поблагодарил(а) : 37
Поблагодарили 54 раз(а) в 32 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от AquaGomel
Мы с вами говорим про разные вещи, я вам говорю про выходы USB для датчиков, вы говорите про цифровые входы выходы ардуино. Естественно что никто отдавать отдельный канал с ардуино под каждый датчик не станет, потому что это глупо. А то что они будут работать если их местами поменять тут никто и не спорит. А вот если поменять сам датчик и при этом в прошивке не предусмотрена возможность установить новый датчик на место старого то ломается логика программ по работе с этими датчиками.
|
Цитата:
Сообщение от AndrewUh
У меня все датчики на одном входе. Слишком жирно каждый вешать на свой вход (можно, конечно, расширитель портов поставить, но тут уж каждому свое). У Вас он может один, а у кого-то 8. Если честно, то я не видел еще ни одной схемы, где датчики подключаются каждый к своему входу.
|
Вариантов подключения датчиков есть несколько, если вы не знаете или не умеет ими пользоваться и применять в конкретных случаях, то это ваше не понимание темы, у каждого своя задача и количество датчиков и в каждом отдельно случае решается жирно или не жирно. Если вы не видели схем где датчики висят на отдельных выхода, то посмотрите хотя бы примеры и библиотек, глядишь это расширит ваше понимание...
У меня на акваконтроллере задействовано всего 8 цифровых выходов (2 шт - i2c, 2 шт - температурны датчики, 1 шт. - сервопривод, 2 шт. - реле, 1 шт. - светодиодная лента). В нано их 14, ещё куча свободных выходов, так вот тут вершина глупости вешать датчики на один выход, я повесила их на разные и втыкаю любой датчик в любой выход и всё работает отлично и без вашего геморроя.
А по поводу универсальности, это вечная утопия, любой прибор работает лучше когда он заточек под конкретную задачу, если я пишу его под свой аквариум, то он на 100% будет отрабатывать свою функцию, если под аквариум друга, то там другие могут быть задачи и т.д.
Судя по вашим словам вы не собираетесь делать на этом бизнес, поэтому зачем вам эта универсальность что бы угодить всем?
Так же по схеме, 4е резистора на 4х датчиках подключены параллельно, вспоминаем правила параллельного подключения их школьного курса, и получаем что четыре резистора по 4,7к Ом подключённых параллельно дают сопротивление 1,57 к Ом, хотя в схемах подключения чётко указано про 4,7к Ом. То есть схема подключения не правильная.
__________________
Последний раз редактировалось mashenkaM; 27.03.2017 в 10:02..
|
|
|
Пользователь, который поблагодарил mashenkaM за данный пост:
|
|
27.03.2017, 09:42
|
#87
|
Живу я тут
Регистрация: 11.12.2011
Адрес: Москва
Сообщений: 112
Поблагодарил(а) : 14
Поблагодарили 15 раз(а) в 13 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Покажите мне хоть одну схему акваконтроллера, где каждый датчик подключается к своему входу. Вы-пока "единственная и неповторимая", а это скорее исключение, чем правило, ИМХО.
И по-спокойнее, про кругозор, понимание и глупости. Вы же не на митинге))
У меня, например, 4шт. -темп., 2 шт - i2c, 3шт.-свет, 1шт. -помпа, 2шт.- UART, 4шт.-дозатор УДО, 5шт. - автодолив, 2шт.- pH, 2шт. - нагрев/охлаждение, 7шт.-LCD, еще кнопки - считать не буду...
Последний раз редактировалось AndrewUh; 27.03.2017 в 10:02..
|
|
|
27.03.2017, 10:24
|
#88
|
Живу я тут
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 412
Поблагодарил(а) : 38
Поблагодарили 191 раз(а) в 86 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от mashenkaM
То есть схема подключения не правильная.
|
Е-мое...А я смотрю что не так то, а схема то не правильная... Значит и датчики не должны работать... А они работают, значит что-то не так!!! Спасибо, будем ломать.
По существу. Постараюсь на этой неделе выложить прошивку. Ее можно попробовать и без платы:
Цитата:
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 модулем
|
Вот распиновка. Залил в шапку.
|
|
|
27.03.2017, 10:37
|
#89
|
Бан за нарушения
Регистрация: 13.05.2016
Адрес: Глобино
Сообщений: 145
Поблагодарил(а) : 37
Поблагодарили 54 раз(а) в 32 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от AquaGomel
Е-мое...А я смотрю что не так то, а схема то не правильная... Значит и датчики не должны работать... А они работают, значит что-то не так!!! Спасибо, будем ломать.
По существу. Постараюсь на этой неделе выложить прошивку. Ее можно попробовать и без платы:
Вот распиновка. Залил в шапку.
|
Вы даёте гарантию что схема будет работать у любого человека с любой партией датчиков, там же не идиоты датащиты пишут. Или вы больше знаете чем изготовитель? Вместо литого диска колеса можно деревянный диск поставить на машину - тоже будет ездить, но так же не делают.
__________________
Последний раз редактировалось mashenkaM; 27.03.2017 в 10:53..
|
|
|
27.03.2017, 10:38
|
#90
|
Бан за нарушения
Регистрация: 13.05.2016
Адрес: Глобино
Сообщений: 145
Поблагодарил(а) : 37
Поблагодарили 54 раз(а) в 32 сообщениях
|
Re: AquaController ===www.aquaforum.ua===
Цитата:
Сообщение от RozarioAgro
mashenkaM, вас начинает уже заносить, будьте попроще. В следующий раз корона может закатится, так что долго будете искать .
AndrewUh, прав, выносить датчики на отдельные входы в простых схемах, более чем глупо.
|
ВОт именно в простых схемах лучше вешать датчики отдельно на каждый выход. Мы как раз получаем лёгкую замену датчика для пользователя, а когда выходов не хватает (будем называть её сложной схемой, надеюсь вам так будет понятнее) там приходится вешать датчики на один вход контроллера.
Для начинающих или для простых пользователей которые будут собирать сами это не оспоримый плюс, старый датчик снял, новый поставил и больше ни каких операций и главное простота кода, не нужно писать ни каких инициализаций и привязок, что вы можете противопоставить такой простоте и удобности?
__________________
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 23:49. Часовой пояс GMT +3.
|