DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Arduino - сделай сам

3903

Итак, идея не нова: так как частенько уезжаю на неделю/две из города, нужен контроль света, с кормлением проблем нет, есть кому зайти раз/два в неделю, но как показал последний отпуск, растючка почти вся пожухла за 12 дней без света.
Итого, требавания:
Свет по таймеру - с настройкой длительности светового дня.
Всё.
Покупать розетку/таймер не хочу.
Все просто, интереса нету, потому был выбран вариант самосборки на базе arduino.
Опять же лишний функционал не нужен, да и самому интересно разобраться, научиться(почти с нуля) и таки собрать.
Для начала имеем:
Начальные знания программирования pascal/c++(программист по специальности, но по ней не работал никогда, только баловался иногда за последние 15 лет).
Бездонное море всего на AliExpress, где заказано:
Arduino uno
Датчик часов
Релюшка
И мелочевка для сборки.
Пока все в ожидании прибытия, еще едет плата для сборки(без пайки), для начальных экспериментов.
Теперь сюда буду отписывать результаты, идеи, мысли...
Пока, после сборки таймера света, хочу добавить в эту же коробочку естественно, контроль температуры (точнее, чтото вроде контрольного контура, который бы выключал терморегулятор, при превышении порогового значения температуры/включал обратно, как элемент защиты от залипания). Ну и позже, как разберусь, экран с менюшкой для установок. Это в планах.
Как я вижу на форуме имеются умельцы, кто разбирается в вопросе, буду спрашивать если можно, ведь можно если что?:)


klishe
Аватара пользователя
Участник
Минск
42 / 41 раз

Вполне устраивает розетка-таймер,но с огромным интересом приветствую Вашу тему,вопрос охлаждения в летний период очень актуален. :co_ol:Надеюсь arduino это под силу?И какой объём корбочки для такой функции понадобится.
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Охлаждение ему абсолютно под силу и в разных режимах, но я пока до этого не дорос, но емть к чему стремиться, и куда расширяться.
Если нужно, то даже тут, на форуме есть примеры сборок с таким и большим функционалом.
Я же, просто хочу начать с нуля и вести минидневник чтоли....
А коробочка? Наверное мыльница или чуть больше, зависит от модели платы, на основе которой будет сборка.
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

У китайцев новый год, видители, потому продолжаем ждать поставки..,
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Наконец то добежали до меня все железяки, проба работы так сказать ппошла удачно. Буду продолжать.
Фото Arduino - сделай сам (photo#100804)
.

...
serg_42
Аватара пользователя
Профессионал
Новокузнецк
5097 / 3115 раз
8

DominiSantus ...все железяки...
Дисплейчик бы ещё, хоть какой никакой. Без него постоянно мониторить COM-порт - ИМХО не кошерно :-) :nez-nayu:
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Мониторчик есть, пока 8х2, но думаю поставить lcd 2004a, как на рабочем 3д принтере, с кнопками для установок таймеров.
serg_42
Аватара пользователя
Профессионал
Новокузнецк
5097 / 3115 раз
8

DominiSantus Мониторчик есть, пока 8х2,
Тогда нормально. :co_ol:
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Вот такая пока котовасия получается:
Фото Arduino - сделай сам (photo#100824)
Думаю надо выпаять ножки, на экране и впаять провода, чтоб паук поменьше стал, или может печатную плату засутить?
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Выпаял ножки у экрана, и у релюшки, воткнул провода напрямую, паук уменьшился.
Фото Arduino - сделай сам (photo#101044)
Приблуда начинает потихоньку приобретать понятные очертания, коробочку конечно надо побольше подобрать, но пока сойдёт и так. Функционал пока минимален, отсчёт и вывод на экран даты/времени, включение/выключение света, установка пока путём прошивки.
Из за отсутствия lir 2032 аккумулятора, время останавливается при выключении из розетки, приходится перепрошивать, для установки времени, надо скорее осваивать составление меню, для установки времени, и таймеров... но в этом корпусе кнопки уже некуда.
Да и питание устройств я хочу сделать от управляемых розеток(выводов +/- может), чтобы подключать устройства без доработок.
Может сделать систему модульной?
Например экран с кнопками повесить на стенку аквариума, от него жгутик проводов пустить в тумбу, где уже основной блок и розетки?
serg_42
Аватара пользователя
Профессионал
Новокузнецк
5097 / 3115 раз
8

DominiSantus lir 2032 аккумулятора, время останавливается при выключении из розетки, приходится перепрошивать, для установки времени, надо скорее осваивать составление меню, для установки времени, и таймеров...
Чё то я в проблему вникнуть не могу :nez-nayu:
Батарейка же CR2032 (судя по фото) в модуле часов стоит, значит часы обязаны продолжать тикать.
Или имелось ввиду время включения/выключения реле?
На фото не видно, если часы на чипе DS1307 - то можно прямо в них (там порядка пятидесяти 8-разрядных регистров бесхозных, которые сидят на батарейке), если часы на DS3231 - то храненить EEPROM ATMeg-и. Для этого надо подключить хидер EEPROM.h.
Второй вариант более предпочтителен, ибо универсальный.
Что касаемо настройки - это дело вкуса. Не так уж часто надо менять время "включить/выключить".
Я у себя просто в loop-e просматриваю Serial-порт и проверяю а не пришли ли с Serial-порта какие либо команды.
У меня они обычные, текстовые, типа DOS-овских:
"date 13 04 18" - выставить на календаре дату 13.04.2018 (кстати - сегодня пятница, 13, блин... :sh_ok: )
"time 09 19 35" - выставить на часах время 09:19:35
"relay1 01 09 19" - включать реле 1 в 09:19
"relay1 00 19 19" - выключать реле 1 в 19:19
"relay2 01 10 20" - включать реле 2 в 10:20
"relay2 00 11 35" - выключать реле 2 в 11:35
и т.д. и т.п.
А уж отправить эту команду можно как угодно (с ноутбука по USB шнуру, по блютузу, по WiFi)
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Время включения, выключения оно помнит, но при отключении от питания не тикает, запоминает время отключения от сети и потом тикает с той минуты.
Cr2032 стоит, но толи она мертвая толи ещё что. Модуль часов дс 3231 стоит. Может её не хватает чтоб Часы тикали?

А подробнее можно про запись а еепром?
На данный момент время таймера лежит вообще напрямую в прошивке.
serg_42
Аватара пользователя
Профессионал
Новокузнецк
5097 / 3115 раз
8

DominiSantus запоминает время отключения от сети и потом тикает с той минуты.
DominiSantus На данный момент время таймера лежит вообще напрямую в прошивке.
Тут есть какое-то противоречие. :nez-nayu: Скетч надо глянуть...
По поводу EEPROM можно просто погуглить "EEPROM Ардуино".
... выложил свои исходники (файл Jebo_Light.ino).
Там всё откомментировано.
Если что не понятно - спрашивайте.
На дисплее это выглядит вот так:
Фото Arduino - сделай сам (photo#101046)
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Не совсем точно выразился, не время, там я просто читаю время из часов и сверяю значение часа, если оно в диапазоне от до часов то включаю свет, если нет то выключаю.
Более сложные алгоритмы пока не нужны:) потом добавлю что то.
А Часы просто останавливаются, но не сбрасываются...
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Проблема оказалась проще, чем казалось.
Все было в том, что при старте Ардуинка, считывала из памяти(уж своей или часиков не знаю, своей наверное) время компиляции, каждый раз, пока я не додумался закомментировать эту часть кода и перекомпилировать. Конечно, за время компиляции(когда выставлял время по новой текущее) потерялось около 5-10(вряд ли больше) секунд, но теперь часики тикают даже отключенные от питания, на 2032 батарейке.

Пока использую такой приём:

int Hours_start = 10;
int hours_fin = 20;

Int h_now = int(time.gettime(“H”));

If (hours_start >= h_now && hours_start <= hours_fin) { включаю} else { выключаю}

Одна проблема, кривые руки, пока перепаивал контакты на релюшке, убил ее... не знаю или релюшку или только посадочное место для gnd контакта(его точно, слезло полностью, может и соседние дорожки зацепил). Буду теперь на этой релюшке тренироваться с паяльником(никогда раньше его в руках не держал, школа не в счёт)...
Завтра поеду в радиомаг:)
serg_42
Аватара пользователя
Профессионал
Новокузнецк
5097 / 3115 раз
8

DominiSantus Буду теперь на этой релюшке тренироваться с паяльником(никогда раньше его в руках не держал,
Фото Arduino - сделай сам (photo#101069)
Фото Arduino - сделай сам (photo#101070)
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Действие третье:

Переставил релюшку, заодно укоротил часть проводов и места спайки закрыл термоусадкой.
Выявил: контрастность дисплея надо уменьшать.
Попробую 3 пин(лсд), посадить на аналоговый ардуинки (обязательно ШИМ, или можно любой?), и уменьшить контраст вдвое, а на вечер вообще до минимума и на ночь.
Ну и думаю весь жгут проводов(а я посадил светильник напрямую к коробочке, без управляемой розетки), запихать в клемники(на зажимах такие видел, как на колонках), чтоб ее легко в разрыв ставить/снимать, если унести на прошивку вдруг надо или на другое устройство.
Но пока ещё предстоит упаковка всего этого в коробочку....
Пока взял распаечную коробку 10х10, убрал все внутренние выступы, придётся отрезать центральный туннель(под саморез, который ее соединяет) и крепить по ходу на горячие сопли, или что-то думать.
Попробую на будущее нарисовать коробку и распечатать, но это ещё очень не скоро.
serg_42
Аватара пользователя
Профессионал
Новокузнецк
5097 / 3115 раз
8

DominiSantus Попробую 3 пин(лсд), посадить на аналоговый ардуинки (обязательно ШИМ, или можно любой?),
Низяяя..... :-):
..
...
...
.... ибо ток светодиода подсветки слишком велик. ATmega рано или поздно "сгорит" (40 мА - предельный ток одного пина, 100 мА - максимальны суммарный ток по всем пинам).
В принципе, можно регулировать подсветку дисплея ШИМ-ом и обязательно через резистор (Ом на 200 или около того).
Я не стал заморачиваться - просто впаял резистор на 150 Ом вместо джампера подсветки дисплея:
Фото Arduino - сделай сам (photo#101113)
DominiSantus и уменьшить контраст вдвое
Имеется ввиду "яркость"?
Контрастность дисплея регулируется "крутилкой" на его заднице.
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

Значит ШИМ буду осваивать, а крутилки то у меня нету.
То есть надо посадить 200(220?) Ом на контрастную 3 ногу экрана, и пихнуть ее в ШИМ пин какой-либо, а туда давать плавающие значения и смотреть как оно получится, так?
DominiSantus
Аватара пользователя
Свой на форуме
Мурманск
160 / 52 раза
9

А, стоп, контраст на 3 ноге, а яркость же отдельно на 15,16 диодом... точно.
Мне в принципе надо яркость уменьшать, немного.