Страница 1 из 2
Автосвет в туалете
Добавлено: 22 апр 2019, 11:56
lightwinged
Здравствуйте. Пробовал реализовывать, но затык.
Алгоритм следующий, есть концевик двери - геркон, и датчик движения 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);
}
Автосвет в туалете
Добавлено: 22 апр 2019, 17:25
AVGN
[ref]lightwinged[/ref], здесь такие кракозябры не понимают.
Тут мы все непрограмисты прямоугольниками рисуем схемы в FLProg.
Вам на форум программистов надо.
Автосвет в туалете
Добавлено: 22 апр 2019, 18:18
lightwinged
ТАК?
Автосвет в туалете
Добавлено: 22 апр 2019, 20:22
lightwinged
Человек открыл дверь и свет включился, но для уверенности что он собирается войти и уменьшения вероятности ложных срабатываний, подверяем датчиком движения ИК. На открытую дверь нужен таймер, который включает свет на заданное время, и выключает даже если дверь забыли закрыть. Путь будет одна минута.
Когда человек закрыл за собой дверь и есть сработки ИК датчика, не выключать свет! Как это реализовать???
И когда он выходит и снова закрывает за собой дверь (нет сработки ИК и концевик двери замкнут), нужно выключить свет. Состояние геркона измениться дважды. Тоже в этом затык.
+ если забыли закрыть дверь, погореть немного и выключить, но если сработал датчик движения с открытой дверью, тоже выключить по окончании сработки ИК датчика.
Автосвет в туалете
Добавлено: 22 апр 2019, 20:40
31april
Может быть вот так? попробуйте...
[spoiler]
Автосвет_v2.png
[/spoiler]
Отправлено спустя 10 минут 37 секунд:
lightwinged писал(а): 22 апр 2019, 20:22
...
И когда он выходит и снова закрывает за собой дверь (нет сработки ИК и концевик двери замкнут), нужно выключить свет.
Состояние геркона измениться дважды. Тоже в этом затык.
...
это не затык - это отсутствие достоверных данных о наличии человека. Нам придется отслеживать уход человека только по сигналу PIR. А концевик на двери с его "булевыми" значениями может помочь только сразу включить свет, пока человек попал в фокус PIR
Автосвет в туалете
Добавлено: 22 апр 2019, 21:16
lightwinged
Проверил, не включается на открытие двери, и выключается без сработок ИК и закрытой дверью...
Что не так?
Считаю таймер TOF не нужен, т.к. на самом ИК датчике есть выставляемое время задержки сработки.
Генератор тоже не особо, т.к. за одну секунду нельзя открыть и снова закрыть дверь.
Суть "запомнить" состояние сработки ИК и закрытой двери, и ждать открытия, а лучше следующего закрытия.
Отправлено спустя 11 минут 5 секунд:
31april писал(а): 22 апр 2019, 20:40
это не затык - это отсутствие достоверных данных о наличии человека. Нам придется отслеживать уход человека только по сигналу PIR. А концевик на двери с его "булевыми" значениями может помочь только сразу включить свет, пока человек попал в фокус PIR
Тогда смысл затеи теряется. Так уже работает.
Можно немного упростить: открытая дверь и ИК - включить, закрытая дверь и ИК запомнить состояние и не выключать (можно выкрутить регулятор задержки ИК до конца, но тогда после закрытия двери свет будет гореть несколько минут, может и больше, если на минимум будет выключатся свет, когда человек внутри...), закрытая дверь и нет ИК выключить.
Автосвет в туалете
Добавлено: 22 апр 2019, 21:19
31april
Вход геркона надо инвертировать. У меня он замкнут при открытой двери.
Автосвет в туалете
Добавлено: 22 апр 2019, 21:54
lightwinged
31april писал(а): 22 апр 2019, 21:19
Вход геркона надо инвертировать. У меня он замкнут при открытой двери.
Это сделал. У меня замкнут при закрытой.
Отправлено спустя 33 минуты 47 секунд:
Так помнит состояние сработки ИК и закрытой двери. Ждёт пока дверь не откроется. Но включает только по закрытию и ИК.
Может нужны две переменные? "Движение есть" и "движения нет"???
Автосвет в туалете
Добавлено: 22 апр 2019, 22:37
31april
А ИК при движении размыкает или замыкает контакты? У меня в программе на входах стоит "включить подтягивающий резистор", значит если один вывод геркона посадить на землю, а другой на вход ардуины, то при замыкании мы получим ноль на входе, а при размыкании - единицу. Проверьте, у Вас так?
Отправлено спустя 40 секунд:
Ну и ИК тоже проверьте...
Отправлено спустя 6 минут 47 секунд:
А ещё попробуйте встать на место ардуинки и самому, мысленно, по двум лампочкам (условно), подключенным к вашим датчикам, принять правильное решение о включении света ...

Автосвет в туалете
Добавлено: 22 апр 2019, 23:00
lightwinged
31april писал(а): 22 апр 2019, 22:37
А ИК при движении размыкает или замыкает контакты? У меня в программе на входах стоит "включить подтягивающий резистор", значит если один вывод геркона посадить на землю, а другой на вход ардуины, то при замыкании мы получим ноль на входе, а при размыкании - единицу. Проверьте, у Вас так?
ИК при сработке подаёт высокий или 1-цу на выход. Вроде как замыкает.
Отправлено спустя 2 минуты 8 секунд:
31april писал(а): 22 апр 2019, 22:37
А ещё попробуйте встать на место ардуинки и самому, мысленно, по двум лампочкам (условно), подключенным к вашим датчикам, принять правильное решение о включении света ...
Нет команды ждать, если она была это решило бы задачу на раз. Как "нарисовать" ждать пока концевик не сработает дважды?
Автосвет в туалете
Добавлено: 23 апр 2019, 00:43
rw6cm
[ref]lightwinged[/ref],
2019_04_23_00_52_36_FLProg_5.1.0.png
Автосвет в туалете
Добавлено: 23 апр 2019, 08:38
lightwinged
rw6cm писал(а): 23 апр 2019, 00:43
[ref]lightwinged[/ref],
2019_04_23_00_52_36_FLProg_5.1.0.png
Так уже работает. Но, когда "немного задержался" в туалете, свет гаснет..., или нужно крутить регулятор ИК, тогда свет горит несколько минут после закрытия двери. И есть ложные сработки ИК, когда там никого, а свет включился... (ИК стоит рядом с вытяжкой, и перепад температур вытягиваемого воздуха его включает..., можно перенести его в другой место, но лучше "допилить алгоритм")
Хочу "убить" двух зайцев. Ложные сработки, и время выключения после закрытия двери за собой.
http://forum.amperka.ru/threads/%D0%A1% ... ost-211477
Автосвет в туалете
Добавлено: 23 апр 2019, 09:13
rw6cm
[ref]lightwinged[/ref], От ложных сработок настроить чувствительность, а вот с закрытием двери не выйдет,
как определить вы вышли и закрыли или вошли и закрыли? Здесь надо определится со временем.
Возможно для ИК я сделал 3мин а для двери 1мин. Хотя тем кто любит мечтать на горшке 4мин будет мало )))
В общем сделать с запасом, все равно счас лампы свдиоды, много не намотают)
Автосвет в туалете
Добавлено: 23 апр 2019, 10:04
31april
мне кажется (покрестился..), что решения этой задачи именно так, как она поставлена, не хватает данных. По одному концевику невозможно понять вошел человек или вышел, или просто забыл закрыть дверь, или просто открыл по-ошибке и закрыл...

Автосвет в туалете
Добавлено: 23 апр 2019, 10:07
Phazz
rw6cm писал(а): 23 апр 2019, 09:13
все равно счас лампы свдиоды, много не намотают
Все эти пляски с бубном не имеют ни какого экономического эффекта. Если не выключать лампу на 7 ватт вообще, то за сутки она съест эл. энергии на 0,5 рублей )))
Автосвет в туалете
Добавлено: 23 апр 2019, 10:10
31april
кстати, как ардуинка "вычислит" ложная это сработка ИК или просто
...перепад температур вытягиваемого воздуха...
???
Автосвет в туалете
Добавлено: 23 апр 2019, 10:41
alexys5
С 2007 года на PIC контроллере у меня в туалете реализовано данное устройство. Управляется одним герконом. Алгоритм простой. Открыл дверь -свет включился. Закрыл дверь - свет горит. Повторно открыл дверь - свет плавно погас. Если открыл дверь на "долгое" время (не помню уже сколько запрограммировал, может более, чем на секунд 7-10), то при закрытии свет плавно погаснет. Крайне редкие случаи за эти 12 лет, чтобы были какие-либо сбои, при условии, что пользовались и взрослые, и дети, и гости. Если заметил ошибку, всегда можно передернуть дверь, да и как говорили уже здесь, что современные лампы много не нажгут. Геркон я расположил не с края двери, а посередине, т.е. геркон срабатывает не сразу с началом открытия двери, что вместе с плавным гашением света дает дополнительный комфорт. Единственное неудобство, это то, что когда приходишь в гости, идешь в туалет и долго соображаешь, почему свет не загорелся и начинаешь искать выключатель. Ну а после выхода, естественно забываешь свет выключить. Так что никакой PIR датчик, в сущности не нужен.
Автосвет в туалете
Добавлено: 23 апр 2019, 10:53
rw6cm
alexys5 писал(а): 23 апр 2019, 10:41
Так что никакой PIR датчик, в сущности не нужен.
Если вникнуть в схему PIR, то можно геркон подключить к нему, и ни какой контроллер не нужен )
Автосвет в туалете
Добавлено: 23 апр 2019, 14:54
Grafsaxar
Ну уже раз такой умный свет в туалете делаете то и делайте умный унитаз:
Под крышку унитаза датчик. Чтобы замечать сидит ли кто на унитазе.
Если больше 3 мин кто то сидит ардуино проигрывает МП3 со словами :* фу как воняет * и через 15 секунд с помощью Серва нажимает на курок освежителя воздуха. Сделать самому не тяжело. Или взять готовый выкинуть мозги и управлять самому. Ну и если сигнал с крышки ноль значит пациент слез с горшка. Через 1-2 минуты можно запускать автоматический смыв. Важно время замерить. Ото получится уже смылось а жопа ещё не вытерта:)) у каждого своё время на эту процедуру. И обязательно не забудьте кнопку ручного смыва на всякий случай.
Освещение у меня реализовано следующим методом:
На косяке двери ставятся 2 или 3 IR Сенсора.
Ардуино считает сколько человек зашло и вышло.
По сенсорам можно определить заходит или выходит человек. Когда последний вышел свет выключается.
Можно поставить датчик перегара.
Если кто с перегаром зашёл то смывается 2 раза и выдаёт повышенную дозу освежителя.
Вроде так как то.
Единственное что щёткой приходится пока унитаз руками чистить. Пока не придумал как это автоматизировать.
Автосвет в туалете
Добавлено: 23 апр 2019, 15:11
nalnik

Извращенцы - вы все

- не надо трогать единственное "место для уединения и размышлений и о проблемах всего сущего"