Аквариумный контроллер "TeRRaN"

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (4) [1] 2 3 ... Последняя »  К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
Архар
13.02.2021 - 10:48
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
93
Предыстория, или собственно о чем речь то???

Дон Кирпич был не молод, по меркам черепахи, но до старости ему было еще далеко. В жизни он видел некоторое дерьмо. Но были радостные моменты. И вот один из таких радостных моментов настал, когда я понял, что наш «болотник» вырос из своего старого жилища и пора бы ему переезжать в новый террариум. Сказано – сделано. Заказали новую «банку», новый внешний фильтр, новые лампы освещения и подогрева. В общем прям пентхаус ему новый построили. А т.к. я, по своей природе, человек ленивый, то в новом террариуме оставлять старые заморочки с включением ламп, фильтра и т.д. тоже не очень хотелось. Ну фиг ли, пусть пентхаус будет умным. Так и был придуман контроллер «Терран». Почему «Терран»? Может потому что террариум, может потому что я в старкрафт переиграл, да просто вот так.

Глава 1 «Чего бы еще повключать?»

Обдумав все свои идеи, и пообщавшись с парочкой аквариумистов, я решил не зацикливаться только на своём конкретном случае, а сделать контроллер «Терран» более или менее универсальным. Так сказать для аквариумов, террариумов и прочих «*умов». Ну а раз уж нам надо (как всегда) быстро, то угадайте что я буду использовать? Правильно, Arduino. К слову, не так давно пересмотрел свои позиции относительно неё. Стал немного лучше к ней относиться, с учётом количества реализуемых мной проектов на arduino nano. Ну да ладно, речь не об этом. Так вот концепция, с учётом аппаратных возможностей и наших потребностей такая:

-Включение и отключение устройств по суточному таймеру. При чем без привязки к конкретным суткам. Иными словами нужно иметь возможность включить устройство, к примеру в 20:00, а выключить в 19:00 следующего дня.
-Включение и отключение устройств по температуре. Опять же, не важно, подогреватель это или охладитель. Вдруг Вам захочется аксолотлей завести? Температуры включения и отключения могут быть любыми.
-Возможность ручного управления.
-Восстановление состояния после сбоя питания.

Глава 2 «Ректальная тонзиллэктомия»

В одном из проектов я как то использовал довольно удачную (как мне показалось) связку Arduino nano, дисплея от Nokia5110 и энкодера. Почему бы не повторить? Добавим сюда термистор для измерения температуры и четыре реле для управления. Ну а раз эта аппаратная часть у нас уже проверена, то схватим лошадь за хвост начнем с кода. Так интересней. Сам код сюда копипастить не буду, чего портянки тут тянуть, но ссылка на скетч и всё что нужно для сборки ВОТ.
А для простоты соберём виртуальный макет на симуляторе Proteus

Аквариумный контроллер "TeRRaN"
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
Архар
13.02.2021 - 10:50
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
После небольших телодвижений напильником по коду, я накидал схему. Тут всё по традиции, никакого изврата. Ну разве что подключение пьезоизлучателя через ULN2003, но это просто оптимизация. Был лишний транзистор в сборке, почему бы и не использовать? Так же все порты подключены через резисторы, что бы ограничить ток на случай выхода чего либо из строя. Думаю, как подключать реле к розеткам 220в, объяснять не нужно. А если нужно, то Вам явно не стоит затеваться с повторением этого контроллера.


Аквариумный контроллер "TeRRaN"
 
[^]
Архар
13.02.2021 - 10:51
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
После решил собрать всё на макете и проверить в железе, перед тем как удариться во все тяжкие делать печатную плату. Знаю, выглядит ужасно. Но мы тут не ядерный синтез запускаем. Главное – работает!

Аквариумный контроллер "TeRRaN"
 
[^]
Архар
13.02.2021 - 10:55
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Глава 3 «практикуем ардусатанизм»
Приступаем к печатной плате. Для экономии места расположил часы вертикально. И да! Выворачиваем «нанку на изнанку». Т.е. ставим её вверх ногами, что бы высоту сэкономить. (хрен знает зачем... извращенец я). Отдельный стабилизатор 7805 поставил, что бы не греть встроенный в ардуину. Ну не доверяю я им, хрупкие они на мой взгляд. Это моя «шиза» и нечего с неё смеяться. А вообще, можно использовать и встроенный. Кто как любит. Всё проверил, травлю, лужу, паяю, лаком покрываю:

Аквариумный контроллер "TeRRaN"
 
[^]
Архар
13.02.2021 - 10:57
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Вот над вопросом «И куда вот это вот всё засунуть?» я думал долго. Корпус хотелось не большой, но с розетками на 220в, что, оказалось, две несовместимые «хотелки». На моё счастье нашелся дохлый ИБП с нужным корпусом типа вот такого. Рекомендация по сборке всего лишь одна:
Т.к. мы тут имеем дело с напряжением 220в, четко понимайте и перепроверяйте всё что вы делаете. Тут Вам не шутки. Обязательно озаботьтесь предохранителями и прочими средствами защиты. Пожары и жертвы никому не нужны.

Это сообщение отредактировал Архар - 13.02.2021 - 11:04

Аквариумный контроллер "TeRRaN"
 
[^]
Архар
13.02.2021 - 11:00
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Глава 4 «Как это работает?»
Пояснения по скетчу:
-Функцию обработки температуры я честно скопипастил с какого-то примера из интернетов.
-Основная функция цикла нарукожоплена написана таким образом, что бы можно было устанавливать любое время включения и выключения и любые температуры. Положительная разница между ними или отрицательная – не имеет значения.
-Функция initOn() восстановление после отключения, служит для расчета времени и температур при включении устройства. Благодаря ней не нужно записывать каждый раз состояния в EEPROM. А это существенно продлит жизнь нашей ардуинке.
-Функция autoCorrection() раз в сутки (начиная от последней настройки времени) компенсирует неточность часов, прибавляя заданное число секунд.

Про последнюю фичу нужно вообще сказать отдельно. Эта функция родилась в процессе отладки устройства, т.к. часы на базе DS1307 вообще не отличаются сильной точностью хода, а ставить GPS приёмник, например, это уже дичайший перебор. В моём случае часы убегали вперед на 5-6 секунд в сутки. Но из профильных форумов читал, что бывают и случаи по 15-20 секунд на сутки. Данная функция позволила сократить разбег часов до 4х секунд в неделю. Что, как я думаю, достойный результат. Вообще, как я понял из собственного опыта, самое сложное в микроконтроллерном программировании, это работа со временем. Оказалось, что это очень тонкая материя – рулить переменной, от которой отталкивается всё, в том числе и сам "руль". Это как стоять на доске и пытаться её же поднять! А штука в том, что в программировании это ВОЗМОЖНО! И так как я не программист, я много времени провел в интернете, в поисках примера. Десятки форумов проговаривали фразу «программная коррекция», но ни один так и не дал пример. То ли теоретиков слишком много, то ли все считали, что это настолько элементарно, что и пример кода не нужен. В общем пришлось писать самому. А мне, как НЕ программисту, это далось ни разу не просто.

Для рядовых пользователей я накидал ИНСТРУКЦИЮ ПО ЭКСПЛУАТАЦИИ
 
[^]
Архар
13.02.2021 - 11:02
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Заключение

Данный прототип я собирал пару дней, а вот отлаживал почти месяц. И прошивка Террана продолжает "вылизываться" по сей день. Тем не менее, устройство стабильно работает и имеет право на жизнь. Главное что дон Кирпич доволен и улыбается. И не маловажная часть прототипирования – экономическое обоснование. Ну так вот: цена всех запчастей на момент публикации составила примерно 1300р + корпус. Если все эти пироги покупать не в местном магазине, а заказать в Китае, выйдет еще дешевле. А вот три розетки с таймером и один термостат в заводском исполнении, по цене обошлись бы примерно в два-три раза дороже.

Оригинал моей статьи тут Там немного подробнее описано...

Всем спасибо! Я кончил. Можно пинать.

Аквариумный контроллер "TeRRaN"
 
[^]
Себеш
13.02.2021 - 11:05
7
Статус: Offline


Ярила

Регистрация: 5.11.16
Сообщений: 3250
ну это кабзда....
ну не в субботу утром же такое постить брат!!!!!!!!!!!
 
[^]
Dinozauer
13.02.2021 - 11:10
4
Статус: Offline


Бредоносец

Регистрация: 12.01.15
Сообщений: 1735
Черепаху хорошо, план выполнен. Корпус можно и поменьше найти, но тут сделано как всегда из того что под рукой. Да и не особо жалуют подобные проекты на ЯПе как я посмотрю, попилить поварить да, а ардуино подобное как-то мимо кассы идёт.
 
[^]
Архар
13.02.2021 - 11:14
6
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Цитата (Себеш @ 13.02.2021 - 11:05)
ну это кабзда....
ну не в субботу утром же такое постить брат!!!!!!!!!!!

Ну что я могу сказать... Прости) Нет у меня другого свободного времени cry.gif
 
[^]
Paradoxion
13.02.2021 - 11:16
4
Статус: Offline


Ярила

Регистрация: 18.02.19
Сообщений: 1208
За рукожопство плюс

Размещено через приложение ЯПлакалъ
 
[^]
RodrigeZZ
13.02.2021 - 11:16
0
Статус: Offline


Приколист

Регистрация: 12.10.12
Сообщений: 369
Ми пардон, надеюсь, счастлив Дон.
Не вкурил, по какому алгоритму происходит опрос термистора. И зачем он?

Размещено через приложение ЯПлакалъ
 
[^]
Себеш
13.02.2021 - 11:19
1
Статус: Offline


Ярила

Регистрация: 5.11.16
Сообщений: 3250
Цитата (Архар @ 13.02.2021 - 13:14)
Цитата (Себеш @ 13.02.2021 - 11:05)
ну это кабзда....
ну не в субботу утром же такое постить брат!!!!!!!!!!!

Ну что я могу сказать... Прости) Нет у меня другого свободного времени cry.gif

та нее друг, я свой дайк теме поставил, ты время потратил, кому то пользу принесешь темой )
прост как начал читать, а еще в этом ничего не смыслю - так что то аж плохо стало...
это вчерашний алкоголь тому виной cool.gif lol.gif
 
[^]
omega42
13.02.2021 - 11:19
2
Статус: Offline


Нет статуса

Регистрация: 17.10.08
Сообщений: 4007
Молодца, дружище
Вот насчёт руления доской на которой стоишь за счёт глобальных переменных - это дорога к долгой отладке :)
Не критикую - сочувствую
 
[^]
Архар
13.02.2021 - 11:21
1
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Цитата (RodrigeZZ @ 13.02.2021 - 11:16)
Ми пардон, надеюсь, счастлив Дон.
Не вкурил, по какому алгоритму происходит опрос термистора. И зачем он?

В настройках можно привязать розетки к температуре. Подогрев воды например автоматизировать.
алгоритм сюда писать смысла нет. В скетче посмотрите на NTCloop();

omega42 Ох, друже... Как же ты прав! pray.gif

Это сообщение отредактировал Архар - 13.02.2021 - 11:22
 
[^]
ARBATskiy
13.02.2021 - 11:21
7
Статус: Offline


Ярила

Регистрация: 3.10.18
Сообщений: 4325
Мой аквас, 200л.

Размещено через приложение ЯПлакалъ

Аквариумный контроллер "TeRRaN"
 
[^]
omega42
13.02.2021 - 11:27
3
Статус: Offline


Нет статуса

Регистрация: 17.10.08
Сообщений: 4007
Цитата (Архар @ 13.02.2021 - 11:21)
Цитата (RodrigeZZ @ 13.02.2021 - 11:16)
Ми пардон, надеюсь, счастлив Дон.
Не вкурил, по какому алгоритму происходит опрос термистора. И зачем он?

В настройках можно привязать розетки к температуре. Подогрев воды например автоматизировать.
алгоритм сюда писать смысла нет. В скетче посмотрите на NTCloop();

omega42 Ох, друже... Как же ты прав! pray.gif

Та канешна прав! Это ж мои любимые грабли! lol.gif

Тут raspberry выпустили свой контроллер для аналогичных кейсов: raspberry pico - так там python есть! С ним жить веселее гораздо. За себя говорю.
 
[^]
monter
13.02.2021 - 11:39
4
Статус: Offline


Юморист

Регистрация: 16.12.11
Сообщений: 510
Аквариум, это охуенный релакс! держи петрушку!
 
[^]
RodrigeZZ
13.02.2021 - 11:41
3
Статус: Offline


Приколист

Регистрация: 12.10.12
Сообщений: 369
Цитата (omega42 @ 13.02.2021 - 11:27)
Та канешна прав! Это ж мои любимые грабли!

Тут raspberry выпустили свой контроллер для аналогичных кейсов: raspberry pico - так там python есть! С ним жить веселее гораздо. За себя говорю.

Стоит как крымский мост?

Размещено через приложение ЯПлакалъ
 
[^]
Архар
13.02.2021 - 11:43
2
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Цитата (RodrigeZZ @ 13.02.2021 - 11:41)
Стоит как крымский мост?

Вы знаете, нет. Как ни странно 4$ пишут...
 
[^]
Архар
13.02.2021 - 11:54
6
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Цитата (monter @ 13.02.2021 - 11:39)
Аквариум, это охуенный релакс! держи петрушку!

Вот у кого тру релакс, так это у моего черепаха теперь gigi.gif

Аквариумный контроллер "TeRRaN"
 
[^]
Архар
13.02.2021 - 11:56
8
Статус: Offline


Приколист

Регистрация: 19.04.18
Сообщений: 276
Для тех, кто сейчас скажет, что он не живой: Порядок! Он так "заземляется" и спит всегда. Температуру регулирует...

Аквариумный контроллер "TeRRaN"
 
[^]
omega42
13.02.2021 - 11:56
1
Статус: Offline


Нет статуса

Регистрация: 17.10.08
Сообщений: 4007
Цитата (RodrigeZZ @ 13.02.2021 - 11:41)
Цитата (omega42 @ 13.02.2021 - 11:27)
Та канешна прав! Это ж мои любимые грабли! 

Тут raspberry выпустили свой контроллер для аналогичных кейсов: raspberry pico - так там python есть! С ним жить веселее гораздо. За себя говорю.

Стоит как крымский мост?

Не, 450 руб. Сейчас поискал - за 500 нашлось сразу. Не, недорого даже по нашим ценам. (амперка, амперкот...)
 
[^]
altcms
13.02.2021 - 11:57
3
Статус: Offline


Старый байкер

Регистрация: 23.06.12
Сообщений: 848
Нормально, грамотно, на энкодере (а то обычно кнопок ненужных кучу напихают). скетч не смотрел, работает и ладно :)
 
[^]
ipv4
13.02.2021 - 13:28
2
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7418
Цитата (altcms @ 13.02.2021 - 11:57)
Нормально, грамотно, на энкодере (а то обычно кнопок ненужных кучу напихают). скетч не смотрел, работает и ладно :)

У меня несколько вариантов: либо (1) просто кнопки, либо (2) просто энкодер (+ кнопки при необходимости), либо (3) 5-позиционный джойстик, либо (4) житровыипаный энкодер от панасоник, кажись (на фото, крутилка + нажималка... понравилось, но дорогонах). Всё зависит от задачи.

P.S. За электрическое рукожопство - всегда зелень (сам занимаюсь, ога). Написано хорошо, прикольно.

P.P.S. Сам ардуино терпеть ненавижу. Не из-за размеров (хотя это тоже, всегда хочется ещё компактнее), а из-за её экосистемы. Мне ближе cmake / g++ / avrlibc. Bare metal - наше всё! )))

Это сообщение отредактировал ipv4 - 13.02.2021 - 13:39

Аквариумный контроллер "TeRRaN"
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 13501
0 Пользователей:
Страницы: (4) [1] 2 3 ... Последняя » [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх