![]() |
|
![]() |
#1 |
Junior Member
Регистрация: 20.12.2013
Сообщений: 27
Вес репутации: 0 ![]() |
![]()
Доброе время суток. Решил сделать автоматическое включение света в ванной комнате, для эксперимента. В первом варианте был использован PIR сенсор(датчик движения) Но он не удовлетворял требованиям. Там приходилось все время двигаться, а ставить большую задержку не выгодно, так как когда человек уйдет из ванны, свет будет просто так гореть. Потом подумав решил сделать датчик в дверном проеме использовав ИК. Ик дальнометры фирмы Sharp хорошо бы подошли но они дороговаты для этого будут, тем более что на один дверной проем необходимо два датчика. Так как самому паять времени нету особа были заказаны вот эти http://www.aliexpress.com/item/Infra...419361081.html Эти датчики удалось настроить на дистанцию 30-40см. Они располагаются с одной стороны два датчика или с разных сторон дверного проема под разный угол обзора. Логика работы следующая: если сначала срабатывает первый датчик, а потом второй, значит человек зашел в ванну и надо включить свет. Если снова сработал 1 а потом 2 датчик значит зашел еще один человек, считаем их количество. При сработке 2 а потом 1 значит человек вышел. И если счетчик равен 0 то выключаем свет. Был написан код на скорую руку и как мне кажется не очень хороший)) Хочу посоветоваться как лучше написать с использованием библиотеки CyberLib еще не очень с ней разобрался.. Надо учесть следующие условия:
1. Зашел человек или вышел. 2. Счетчик людей которые зашли и вышли, и он не должен быть ниже 0 3. Избежать срабатывания двух датчиков одновременно. Т.к. некоторые люди полные или заходят в верхней одежде и тогда срабатывает первый и второй датчик одновременно и получается светомузыка. Я избавлялся от этого путем паузы после того как сработал второй датчик, но это не рационально наверное.. 4. Если сработал один датчик, а второй нет, то обнулять состояние того датчика который сработал. 5. Интервал срабатывания между первым и вторым датчиком. Одни люди быстро заходят, срабатывает хорошо, а вот дедушка и бабушка медленно заходят и тут бывают глюки в системе... Если кто-то может помочь написать рационально данную программу буду признателен. Я использую Unu для настройке, но в дальнейшем планирую перейти на Nano)) |
![]() |
![]() |
![]() |
#2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я бы повесил первый датчик на int0, а второй на int1
2-if(people<0) people=0; 3-при использовании int0 и int1, одновременного срабатывания никогда не будет 4-использовать отдельную переменную статуса датчиков 5-используйте максимально возможный интервал, и после этого интервала обнуляйте статус датчика |
![]() |
![]() |
![]() |
#3 |
Junior Member
Регистрация: 20.12.2013
Сообщений: 27
Вес репутации: 0 ![]() |
![]()
Подскажите как пользоваться прерыванием из вашей библиотеки. И как собственно работает прерывание. Буду благодарен))
|
![]() |
![]() |
![]() |
#4 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Ардуиновский пример
Код:
int pin = 13; volatile int state = LOW; void setup() { pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE); } void loop() { digitalWrite(pin, state); } void blink() { state = !state; } |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Member
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0 ![]() |
![]()
А если попробовать измеритель расстояния http://www.aliexpress.com/store/prod...610440655.html для управления светом в санузле?
Логика, думаю, понятна. Вот интересно, у этого датчика узкий луч или достаточно широкий, чтобы при нахождении в небольшом помещении срабатывать. Если узкий, то можно несколько таких датчиков повесить. При изменении измеренного расстояния на любом датчике держим включенным свет. Будут мнения? Последний раз редактировалось age0811; 28.01.2014 в 23:18. |
![]() |
![]() |
![]() |
#7 | |
Member
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Еще есть способ детектировать отраженным ИК лучем
|
![]() |
![]() |
![]() |
#9 |
Junior Member
Регистрация: 21.02.2014
Адрес: SPb
Сообщений: 3
Вес репутации: 0 ![]() |
![]()
... если помещение маленькое (ванна, туалет, кладовка и т.д.) то для определения "человека внутри" достаточно 2 датчиков, нужно
просто учитывать зачем туда зашли... Например туалет: 1 - датчик движения (вход, выход) 2 - ИК датчик или другой (горшок занят) и дальше логика по "ИЛИ" (можно с небольшой задержкой)... |
![]() |
![]() |
![]() |
#10 |
Junior Member
Регистрация: 24.02.2014
Сообщений: 7
Вес репутации: 0 ![]() |
![]()
Добрый вечер!
Поддержу тему, так как у самого возникла похожая проблемма. Суть в том чтоб включать подсветку на кухне при входе в нее и выключать при выходе, решил использовать два датчика (в голову пришла только эта мыль, может кто то придумает по другому) сначала срабатывает первый датчик, затем второй при входе, датчик 2 а затем 1 при выходе. Изначально были куплены два ультразвуковых датчика (никаких неприятных щелчков замечено не было), луч очень широкий, разносить датчики приходиться на расстоянии не мене 60-70 см, что не очень удовлетворяет требованиям, к тому же ложные срабатывания или не срабатывания примерно из 10 раз 2-3, а то и 4-5 раз положили этим датчикам конец. Затем были куплены ПИР датчики, если человек проходит в одежде срабатывают они из 2 раз 1, и то на расстоянии нескольких см, что тоже заставило от них отказаться. Далее наткнулся на статью "детектировать отраженным ИК лучем" ,ссылку на которую давал уважаемый админ, путем очень долгого подбора расстояния между излучателем и приёмником удалось добиться расстояния срабатывания см 40, а мне нужно около одного метра дабы расстояние дверного проема 130см, и подбор расположения приемника очень трудоёмок, решил отказаться от этого решения. Решил купить шилд распознавания речи но и там граблей оказалось не меньше. На данный момент остановился на пересечении луча но тянуть четыре провода на противоположную относительно приемников стену считаю не целесообразным. Может есть у кого-то идеи как сделать такой "выключатель"? |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|