Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Освещение

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2012, 11:55   #1
yarkin
Junior Member
 
Регистрация: 24.07.2012
Сообщений: 9
Вес репутации: 0
yarkin is an unknown quantity at this point
По умолчанию

а я о датчике препятствия слышал,правда, не знаю, как у нас в стране, а вот за границей слепые у себя в домах такое ставят.
yarkin вне форума   Ответить с цитированием
Старый 05.11.2012, 12:56   #2
meloman
Junior Member
 
Регистрация: 01.11.2012
Сообщений: 28
Вес репутации: 0
meloman is a splendid one to beholdmeloman is a splendid one to beholdmeloman is a splendid one to beholdmeloman is a splendid one to beholdmeloman is a splendid one to beholdmeloman is a splendid one to beholdmeloman is a splendid one to behold
По умолчанию

А ультразвуковых датчиков что нет в продаже? Я сам поставил в прихожую датчик движения, согласен - иногда приходится руками помахать (раз в 5 мин примерно), чтобы он включился.
meloman вне форума   Ответить с цитированием
Старый 08.08.2014, 21:34   #3
Теоретик
Junior Member
 
Регистрация: 08.08.2014
Сообщений: 4
Вес репутации: 0
Теоретик is an unknown quantity at this point
По умолчанию Re: Датчик движения

Цитата:
Сообщение от meloman Посмотреть сообщение
А ультразвуковых датчиков что нет в продаже? Я сам поставил в прихожую датчик движения, согласен - иногда приходится руками помахать (раз в 5 мин примерно), чтобы он включился.
Ультразвук не самый лучшее решение. Помнится наплакались с ними автоалярмщики, окно недозакрыл - ложняк. Мороз и солнце - ложняк. Сквозняки и любые движения воздуха враг ультразвука. А ванна это вытяжка и незакрытая дверь регулярно. Ну и всякие там занавески для ванн, висящие полотенца и т.п. Не самый лучший выбор ИМХО.
Теоретик вне форума   Ответить с цитированием
Старый 03.06.2014, 08:08   #4
SuperFlash
Member
 
Регистрация: 14.02.2014
Сообщений: 33
Вес репутации: 0
SuperFlash is an unknown quantity at this point
По умолчанию Re: Датчик движения

Есть конечно, но пока они дороже своих альтернатив
SuperFlash вне форума   Ответить с цитированием
Старый 14.08.2014, 21:15   #5
Midway
Junior Member
 
Регистрация: 14.08.2014
Сообщений: 5
Вес репутации: 0
Midway is an unknown quantity at this point
По умолчанию Re: Датчик движения

На днях получил "стартер кит". Разумеется зачесались руки, что бы такого замутить? Первая мысль - автоматический включатель лампочки в комнате (интересно, это только у меня?). Походил по форумам... был немало удивлен, что нормально работающего решения не обнаружил.
Под "нормально работающим" подразумевается:
1.Никаких нажатий кнопок.
2.Никаких маханий руками каждые 5 минут.
3.Захожу в комнату - свет включается. Выхожу выключается.
4.Захожу в комнату - свет включается. Заходит жена, свет продолжает гореть. Заходит еще 5 человек, свет так же продолжает гореть.
Выхожу, свет горит. Выходит жена, свет горит. Выходят 5 человек и как только дверной проем покидает последний свет гаснет.
Если это реализовать, то нетрудно будет сделать плавное включение-выключение, а так же вкл-выкл днем, но при занавешаных шторах или жалюзи (полумрак).
Не скажу, что прошел интернет вдоль и поперек, думал что ответ будет в первых строках поисковиков, ан нет... Может кто встречал?
В "стартер ките" пришла Мега2560 (эт так, на всякий пожарный...)
Я пока дилетант в этом направлении.
Светодиодами поморгал, шаговый моторчик покрутил. Прикольно. Хочется большего.
Midway вне форума   Ответить с цитированием
Старый 14.08.2014, 21:49   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Датчик движения

Готовых решений я не встречал
Мое видение того как это должно выглядеть:
IR thermosensor + линза френеля + PIRsensor+линза френеля
PIRsensor регистрирует движение включает таймер 1 мин. или 30сек
IR thermosensor измеряет температуру
Если движения нет и температура ниже чем 1 минуту назад, то свет выключаем
Admin вне форума   Ответить с цитированием
Старый 15.08.2014, 19:12   #7
Midway
Junior Member
 
Регистрация: 14.08.2014
Сообщений: 5
Вес репутации: 0
Midway is an unknown quantity at this point
По умолчанию Re: Датчик движения

2 Admin
Интересное решение. Спасибо. Принцип понятен (я бы никогда не додумался).

Решил сделать тупо и просто (как у военных)), но дешево и надежно.
Пока на столе. Взял два фоторезистора, положил их под настольную лампу (на брэдборде разумеется). На вход их. И два диода на выход подцепил (про подтяжку не забыл), для контроля. Набросал скетч простенький (не сразу получилось).
В результате: провожу рукой над фоторезисторами (последовательно), имитирую прохождение человека. Светодиоды так же последовательно загораются (и гаснут), сначала один, потом второй. В обратную сторону так же корректно моргают в обратном порядке.
А это значит, что если правильно написать код, то ардуинка сможет считать сколько человек прошло в одном направлении и сколько в другом.
Ну... может через месяц упорного изучения я бы и написал такой скетч (не факт). Но подвернулся сын (в кодах шарит). "Кроха сын к отцу пришел и спросила кроха...")) я рассказал чего хочу...
Через полчаса приходит: -Давай пробовать.
Не сразу заработало, он пару раз код поправил и завелось!))
Мучали ардуину полчаса. Работает исправно. В обоих направлениях. Сразу видно, людей считать любит больше чем медведь бороться))
Теперь надо два ИК фотоприемника (в комплекте только один), светодиод (ИК) и пробовать по аналогии. Если заработает, монтировать в дверной проем.
Фоторезистор приладить и дописать скетч (это даже я смогу), чтоб не включал свет днем. Ну и купить приблуду для плавного включения-выключения света.
Надеюсь получится. Как считаете?
Если кому интересно, скетч выложу. Схема банальнейшая (для детского садика)), тоже без проблем.

Последний раз редактировалось Midway; 15.08.2014 в 19:22. Причина: орфография
Midway вне форума   Ответить с цитированием
Старый 16.08.2014, 09:18   #8
age0811
Member
 
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0
age0811 is an unknown quantity at this point
По умолчанию Re: Датчик движения

Цитата:
Сообщение от Midway Посмотреть сообщение

Если кому интересно, скетч выложу. Схема банальнейшая (для детского садика)), тоже без проблем.
Выложи, пожалуйста скетч, очень будет полезно!
age0811 вне форума   Ответить с цитированием
Старый 15.08.2014, 20:34   #9
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Датчик движения

А Вы попробуйте на ИК приемник направить пульт ДУ и понажимайте кнопки
Admin вне форума   Ответить с цитированием
Старый 17.08.2014, 22:12   #10
Midway
Junior Member
 
Регистрация: 14.08.2014
Сообщений: 5
Вес репутации: 0
Midway is an unknown quantity at this point
По умолчанию Re: Датчик движения

Как оказалось, в коде, о котором я писал, присутствует баг. Если проводим рукой туда или обратно, то все нормально. Но если задержались (закрыты оба фоторезистора), то программа начинала прибавлять людей.
Сын обещал исправить в свободное время.
Пришлось сесть за учебники и написать свою версию. Код далек от совершенства, простой и деревянный. Программисты отполируют надеюсь. Багов пока не нашел. Давайте искать вместе. Это моя первая прога, не смеяться и сильно не пинать)))

Код:
/*==Created by Midway==========
====МЕГА КРУТОЙ ВЫКЛЮЧАТЕЛЬ)))====
*/

// Светодиоды пины-выходы
int ledOUT1 = 20; //контрольный
int ledOUT2 = 21; //контрольный
int ledOUT3 = 19; //Как бы освщение в комнате
// Фоторезисторы пины-входы
int sensorPin1 = A0;
int sensorPin2 = A1;
// Данные с фоторезисторов
int sensorVal1 = 0;
int sensorVal2 = 0;
// Событие
int event;
// Количество людей в комнате
int humanCount;
// Аналоговые входы фоторезисторов буду преобразовывать
// в сигналы: либо сработал, либо нет
boolean sens1;
boolean sens2;
// У двух датчиков может быть 4 состояния: (--), (-+), (++), (+-)
// Нужно отслеживать предыдущее и текущее состояние
int status_curr = 0;
int status_prev = 0;
// Порог срабатывания фоторезисторов. Подбирается индивидуально
int tresh = 700;
// Для отладки. Потом можно убрать
boolean debug;

void setup()
  {
// Режимы светодиодов
    pinMode(ledOUT1, OUTPUT);
    pinMode(ledOUT2, OUTPUT);
    pinMode(ledOUT3, OUTPUT);
    digitalWrite(ledOUT3, LOW);
// Передача
    Serial.begin(9600);
  }

void loop()
  {
// Для отладки. Потом можно убрать    
    debug = false;
// Начальные значения сенсоров  
    sens1 = false;
    sens2 = false;
// Считываем значение с фоторезисторов
    sensorVal1 = analogRead(sensorPin1);  
    sensorVal2 = analogRead(sensorPin2);
// Если фоторезистор сработал, переводим в значение сенсора TRUE
    if (sensorVal1<tresh) sens1 = true; debug = true;
    if (sensorVal2<tresh) sens2 = true; debug = true;
// Если сработал первый,  
    if (sens1) 
    {
//зажигаем первый светодиод      
      digitalWrite(ledOUT1, HIGH);
    }
    else digitalWrite(ledOUT1, LOW);
// Если второй,    
    if (sens2) 
    {
//зажигаем второй светодиод      
      digitalWrite(ledOUT2, HIGH);
    }
    else digitalWrite(ledOUT2, LOW);  
// Состояние сенсоров (фоторезисторов)
    {
// Здесь текущий статус (состояние) фоторезисторов превращается в предыдущий      
      status_prev = status_curr;
// Здесь определяется текущий статус (--), (-+), (++), (+-)
      if (sens1 == false && sens2 == false) status_curr = 0;
      if (sens1 == true && sens2 == false) status_curr = 1; debug = true;
      if (sens1 == true && sens2 == true) status_curr = 2; debug = true;
      if (sens1 == false && sens2 == true) status_curr = 3; debug = true;
    }
// При переходе с предыдущего состояния к текущему (если состояние датчиков 
//изменилось), в нашем случае может произойти 8 вариантов развития событий.
//Нас интересуют события 3 и 7 (остальные так, на всякий...)
    {
      if (status_prev == 0 && status_curr == 1) event = 1;
      if (status_prev == 0 && status_curr == 3) event = 5;
      if (status_prev == 1 && status_curr == 2) event = 2;
      if (status_prev == 1 && status_curr == 0) event = 8;
      if (status_prev == 2 && status_curr == 3) event = 3;
      if (status_prev == 2 && status_curr == 1) event = 7;
      if (status_prev == 3 && status_curr == 0) event = 4;
      if (status_prev == 3 && status_curr == 2) event = 6;
// Если текущее состояние не отличается от предыдущего, то никаких событий не произошло    
      if (status_curr == status_prev) return;
// Для отладки. Потом можно убрать         
      if (debug) Serial.println ("Previous Status = " + String(status_prev));        
      if (debug) Serial.println ("Current Status = " + String(status_curr));
      if (debug) Serial.println ("Event = " + String(event));   
    }
// Считаем хьюманов...    
    {
      if (debug) Serial.println ("Human count in room WAS : " +String(humanCount) );
      if (event == 3) humanCount++;
      if (event == 7) humanCount--;
      humanCount = max(humanCount, 0);
      if (debug) Serial.println ("Human count in room NOW : " +String(humanCount) );
    }
// ...и зажигаем  
    {
      if (humanCount > 0) digitalWrite(ledOUT3, HIGH);
      else digitalWrite(ledOUT3, LOW);
    }  
  }
Midway вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:02. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика