Автосвет в туалете

Нужно реализовать алгоритм включения света

lightwinged
Рядовой
Сообщения: 8
Зарегистрирован: 22.04.2019{, 09:29}
Репутация: 0
Имя: Василий

Автосвет в туалете

#1

Сообщение lightwinged » 22.04.2019{, 11:56}

Здравствуйте. Пробовал реализовывать, но затык.
Алгоритм следующий, есть концевик двери - геркон, и датчик движения PIR.
Сюжет во включении света по открытию двери, если забыли закрыть выключить по таймеру.
Если дверь открыта и сработал датчик движения, не выключать пока дверь снова не откроют.
Если дверь открыть, то сработка датчика движения включает свет по его задержке, режим HI, который выставляется переменными резисторами на самом датчике.

Всё, чего вчера смог добиться, это включение и не выключение при закрытой двери с сработке датчика, открытие выключает свет.

Весь затык в отключении при следующем открытии, пробовал через Bool, но ему назначается состояние сейчас, он не помнит как триггер.
Пробовал триггер, но не получается "поймать" именно следующее открытие, а не изменение геркона.

Код: Выделить всё

bool _gtv1 = 1;
bool _trgr2 = 0;
void setup()
{
pinMode(3, INPUT);
pinMode(5, INPUT);
pinMode(13, OUTPUT);
}
void loop()
{
_gtv1 = ( ( (digitalRead (3))) && ( (digitalRead (5))) );
if(!( (digitalRead (3)))) _trgr2 = 0;
if(_gtv1) _trgr2 = 1;
digitalWrite(13, _trgr2);
}
Последний раз редактировалось lightwinged 22.04.2019{, 18:14}, всего редактировалось 1 раз.

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Автосвет в туалете

#2

Сообщение AVGN » 22.04.2019{, 17:25}

lightwinged, здесь такие кракозябры не понимают.
Тут мы все непрограмисты прямоугольниками рисуем схемы в FLProg.
Вам на форум программистов надо.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

lightwinged
Рядовой
Сообщения: 8
Зарегистрирован: 22.04.2019{, 09:29}
Репутация: 0
Имя: Василий

Автосвет в туалете

#3

Сообщение lightwinged » 22.04.2019{, 18:18}

ТАК?
Вложения
Автосвет.flp
(47.58 КБ) 42 скачивания
Автосвет.JPG
Автосвет.JPG (15.01 КБ) 827 просмотров

lightwinged
Рядовой
Сообщения: 8
Зарегистрирован: 22.04.2019{, 09:29}
Репутация: 0
Имя: Василий

Автосвет в туалете

#4

Сообщение lightwinged » 22.04.2019{, 20:22}

Человек открыл дверь и свет включился, но для уверенности что он собирается войти и уменьшения вероятности ложных срабатываний, подверяем датчиком движения ИК. На открытую дверь нужен таймер, который включает свет на заданное время, и выключает даже если дверь забыли закрыть. Путь будет одна минута.
Когда человек закрыл за собой дверь и есть сработки ИК датчика, не выключать свет! Как это реализовать???
И когда он выходит и снова закрывает за собой дверь (нет сработки ИК и концевик двери замкнут), нужно выключить свет. Состояние геркона измениться дважды. Тоже в этом затык.
+ если забыли закрыть дверь, погореть немного и выключить, но если сработал датчик движения с открытой дверью, тоже выключить по окончании сработки ИК датчика.
Последний раз редактировалось lightwinged 22.04.2019{, 20:30}, всего редактировалось 1 раз.

31april
Рядовой
Сообщения: 9
Зарегистрирован: 27.10.2016{, 18:15}
Репутация: 0
Откуда: Обнинск
Имя: Игорь

Автосвет в туалете

#5

Сообщение 31april » 22.04.2019{, 20:30}

Может быть вот так? попробуйте...
СпойлерПоказать
Автосвет_v2.png
Отправлено спустя 10 минут 37 секунд:
lightwinged писал(а):
22.04.2019{, 20:22}
...
И когда он выходит и снова закрывает за собой дверь (нет сработки ИК и концевик двери замкнут), нужно выключить свет. Состояние геркона измениться дважды. Тоже в этом затык.
...
это не затык - это отсутствие достоверных данных о наличии человека. Нам придется отслеживать уход человека только по сигналу PIR. А концевик на двери с его "булевыми" значениями может помочь только сразу включить свет, пока человек попал в фокус PIR
Вложения
Автосвет_v2.flp
(83.29 КБ) 29 скачиваний

lightwinged
Рядовой
Сообщения: 8
Зарегистрирован: 22.04.2019{, 09:29}
Репутация: 0
Имя: Василий

Автосвет в туалете

#6

Сообщение lightwinged » 22.04.2019{, 21:05}

Проверил, не включается на открытие двери, и выключается без сработок ИК и закрытой дверью...
Что не так?
Считаю таймер TOF не нужен, т.к. на самом ИК датчике есть выставляемое время задержки сработки.
Генератор тоже не особо, т.к. за одну секунду нельзя открыть и снова закрыть дверь.

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

Отправлено спустя 11 минут 5 секунд:
31april писал(а):
22.04.2019{, 20:40}
это не затык - это отсутствие достоверных данных о наличии человека. Нам придется отслеживать уход человека только по сигналу PIR. А концевик на двери с его "булевыми" значениями может помочь только сразу включить свет, пока человек попал в фокус PIR
Тогда смысл затеи теряется. Так уже работает.
Можно немного упростить: открытая дверь и ИК - включить, закрытая дверь и ИК запомнить состояние и не выключать (можно выкрутить регулятор задержки ИК до конца, но тогда после закрытия двери свет будет гореть несколько минут, может и больше, если на минимум будет выключатся свет, когда человек внутри...), закрытая дверь и нет ИК выключить.
Последний раз редактировалось lightwinged 22.04.2019{, 21:26}, всего редактировалось 2 раза.

31april
Рядовой
Сообщения: 9
Зарегистрирован: 27.10.2016{, 18:15}
Репутация: 0
Откуда: Обнинск
Имя: Игорь

Автосвет в туалете

#7

Сообщение 31april » 22.04.2019{, 21:19}

Вход геркона надо инвертировать. У меня он замкнут при открытой двери.

lightwinged
Рядовой
Сообщения: 8
Зарегистрирован: 22.04.2019{, 09:29}
Репутация: 0
Имя: Василий

Автосвет в туалете

#8

Сообщение lightwinged » 22.04.2019{, 21:20}

31april писал(а):
22.04.2019{, 21:19}
Вход геркона надо инвертировать. У меня он замкнут при открытой двери.
Это сделал. У меня замкнут при закрытой.

Отправлено спустя 33 минуты 47 секунд:
Так помнит состояние сработки ИК и закрытой двери. Ждёт пока дверь не откроется. Но включает только по закрытию и ИК.
Может нужны две переменные? "Движение есть" и "движения нет"???
Вложения
СветТуалет.flp
(48.23 КБ) 34 скачивания
Помнит состояние.JPG
Помнит состояние.JPG (15.08 КБ) 753 просмотра

31april
Рядовой
Сообщения: 9
Зарегистрирован: 27.10.2016{, 18:15}
Репутация: 0
Откуда: Обнинск
Имя: Игорь

Автосвет в туалете

#9

Сообщение 31april » 22.04.2019{, 22:29}

А ИК при движении размыкает или замыкает контакты? У меня в программе на входах стоит "включить подтягивающий резистор", значит если один вывод геркона посадить на землю, а другой на вход ардуины, то при замыкании мы получим ноль на входе, а при размыкании - единицу. Проверьте, у Вас так?

Отправлено спустя 40 секунд:
Ну и ИК тоже проверьте...

Отправлено спустя 6 минут 47 секунд:
А ещё попробуйте встать на место ардуинки и самому, мысленно, по двум лампочкам (условно), подключенным к вашим датчикам, принять правильное решение о включении света ... :smile453:

lightwinged
Рядовой
Сообщения: 8
Зарегистрирован: 22.04.2019{, 09:29}
Репутация: 0
Имя: Василий

Автосвет в туалете

#10

Сообщение lightwinged » 22.04.2019{, 22:58}

31april писал(а):
22.04.2019{, 22:37}
А ИК при движении размыкает или замыкает контакты? У меня в программе на входах стоит "включить подтягивающий резистор", значит если один вывод геркона посадить на землю, а другой на вход ардуины, то при замыкании мы получим ноль на входе, а при размыкании - единицу. Проверьте, у Вас так?
ИК при сработке подаёт высокий или 1-цу на выход. Вроде как замыкает.

Отправлено спустя 2 минуты 8 секунд:
31april писал(а):
22.04.2019{, 22:37}
А ещё попробуйте встать на место ардуинки и самому, мысленно, по двум лампочкам (условно), подключенным к вашим датчикам, принять правильное решение о включении света ...
Нет команды ждать, если она была это решило бы задачу на раз. Как "нарисовать" ждать пока концевик не сработает дважды?

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Автосвет в туалете

#11

Сообщение rw6cm » 23.04.2019{, 00:43}

lightwinged,
2019_04_23_00_52_36_FLProg_5.1.0.png
2019_04_23_00_52_36_FLProg_5.1.0.png (7.86 КБ) 723 просмотра
Win10-64, FLProg (portable)

lightwinged
Рядовой
Сообщения: 8
Зарегистрирован: 22.04.2019{, 09:29}
Репутация: 0
Имя: Василий

Автосвет в туалете

#12

Сообщение lightwinged » 23.04.2019{, 08:38}

rw6cm писал(а):
23.04.2019{, 00:43}
lightwinged,
2019_04_23_00_52_36_FLProg_5.1.0.png
Так уже работает. Но, когда "немного задержался" в туалете, свет гаснет..., или нужно крутить регулятор ИК, тогда свет горит несколько минут после закрытия двери. И есть ложные сработки ИК, когда там никого, а свет включился... (ИК стоит рядом с вытяжкой, и перепад температур вытягиваемого воздуха его включает..., можно перенести его в другой место, но лучше "допилить алгоритм")
Хочу "убить" двух зайцев. Ложные сработки, и время выключения после закрытия двери за собой.

http://forum.amperka.ru/threads/%D0%A1% ... ost-211477

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Автосвет в туалете

#13

Сообщение rw6cm » 23.04.2019{, 09:13}

lightwinged, От ложных сработок настроить чувствительность, а вот с закрытием двери не выйдет,
как определить вы вышли и закрыли или вошли и закрыли? Здесь надо определится со временем.
Возможно для ИК я сделал 3мин а для двери 1мин. Хотя тем кто любит мечтать на горшке 4мин будет мало )))
В общем сделать с запасом, все равно счас лампы свдиоды, много не намотают)
Win10-64, FLProg (portable)

31april
Рядовой
Сообщения: 9
Зарегистрирован: 27.10.2016{, 18:15}
Репутация: 0
Откуда: Обнинск
Имя: Игорь

Автосвет в туалете

#14

Сообщение 31april » 23.04.2019{, 10:04}

мне кажется (покрестился..), что решения этой задачи именно так, как она поставлена, не хватает данных. По одному концевику невозможно понять вошел человек или вышел, или просто забыл закрыть дверь, или просто открыл по-ошибке и закрыл... :smile390:

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Автосвет в туалете

#15

Сообщение Phazz » 23.04.2019{, 10:07}

rw6cm писал(а):
23.04.2019{, 09:13}
все равно счас лампы свдиоды, много не намотают
Все эти пляски с бубном не имеют ни какого экономического эффекта. Если не выключать лампу на 7 ватт вообще, то за сутки она съест эл. энергии на 0,5 рублей )))

31april
Рядовой
Сообщения: 9
Зарегистрирован: 27.10.2016{, 18:15}
Репутация: 0
Откуда: Обнинск
Имя: Игорь

Автосвет в туалете

#16

Сообщение 31april » 23.04.2019{, 10:10}

кстати, как ардуинка "вычислит" ложная это сработка ИК или просто
...перепад температур вытягиваемого воздуха...
???

alexys5
Рядовой
Сообщения: 9
Зарегистрирован: 13.10.2015{, 20:35}
Репутация: 0
Откуда: Москва

Автосвет в туалете

#17

Сообщение alexys5 » 23.04.2019{, 10:41}

С 2007 года на PIC контроллере у меня в туалете реализовано данное устройство. Управляется одним герконом. Алгоритм простой. Открыл дверь -свет включился. Закрыл дверь - свет горит. Повторно открыл дверь - свет плавно погас. Если открыл дверь на "долгое" время (не помню уже сколько запрограммировал, может более, чем на секунд 7-10), то при закрытии свет плавно погаснет. Крайне редкие случаи за эти 12 лет, чтобы были какие-либо сбои, при условии, что пользовались и взрослые, и дети, и гости. Если заметил ошибку, всегда можно передернуть дверь, да и как говорили уже здесь, что современные лампы много не нажгут. Геркон я расположил не с края двери, а посередине, т.е. геркон срабатывает не сразу с началом открытия двери, что вместе с плавным гашением света дает дополнительный комфорт. Единственное неудобство, это то, что когда приходишь в гости, идешь в туалет и долго соображаешь, почему свет не загорелся и начинаешь искать выключатель. Ну а после выхода, естественно забываешь свет выключить. Так что никакой PIR датчик, в сущности не нужен.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Автосвет в туалете

#18

Сообщение rw6cm » 23.04.2019{, 10:53}

alexys5 писал(а):
23.04.2019{, 10:41}
Так что никакой PIR датчик, в сущности не нужен.
Если вникнуть в схему PIR, то можно геркон подключить к нему, и ни какой контроллер не нужен )
Win10-64, FLProg (portable)

Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Автосвет в туалете

#19

Сообщение Grafsaxar » 23.04.2019{, 14:54}

Ну уже раз такой умный свет в туалете делаете то и делайте умный унитаз:
Под крышку унитаза датчик. Чтобы замечать сидит ли кто на унитазе.
Если больше 3 мин кто то сидит ардуино проигрывает МП3 со словами :* фу как воняет * и через 15 секунд с помощью Серва нажимает на курок освежителя воздуха. Сделать самому не тяжело. Или взять готовый выкинуть мозги и управлять самому. Ну и если сигнал с крышки ноль значит пациент слез с горшка. Через 1-2 минуты можно запускать автоматический смыв. Важно время замерить. Ото получится уже смылось а жопа ещё не вытерта:)) у каждого своё время на эту процедуру. И обязательно не забудьте кнопку ручного смыва на всякий случай.

Освещение у меня реализовано следующим методом:
На косяке двери ставятся 2 или 3 IR Сенсора.
Ардуино считает сколько человек зашло и вышло.
По сенсорам можно определить заходит или выходит человек. Когда последний вышел свет выключается.

Можно поставить датчик перегара.
Если кто с перегаром зашёл то смывается 2 раза и выдаёт повышенную дозу освежителя.
Вроде так как то.

Единственное что щёткой приходится пока унитаз руками чистить. Пока не придумал как это автоматизировать.
Качество — это делать что-либо правильно, даже когда никто не смотрит

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

Автосвет в туалете

#20

Сообщение nalnik » 23.04.2019{, 15:11}

:fie: Извращенцы - вы все :D - не надо трогать единственное "место для уединения и размышлений и о проблемах всего сущего"
Я хочу быть добрее, но люди сами нарываются.

Ответить

Вернуться в «Помогите, а то я "нимагу"»