IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [143]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [508]
    Видеорегистраторы [186]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [437]
    Накопители данных [232]
    Нетбуки, Ноутбуки, Ультрабуки [689]
    Мультиварки, блендеры и не только... [162]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [360]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4959]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [50]
    Электронные книги [101]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3981]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1120]
    Smart TV, UltraHD, приставки, проекторы... [415]
    Smart Watch [268]
    Sound: наушники, плееры, усилители... [618]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 173
    Гостей: 173
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2014 » Июль » 14 » Умный будильник на основе датчика движения или IP-камеры
    07:46
    Умный будильник на основе датчика движения или IP-камеры

    Умный будильник на основе датчика движения или IP-камеры

    Думаю, что многие из вас знают про разные фазы сна и существование умных будильников, про это было уже много статей. Суть в том, что на протяжении ночи происходит смена фаз быстрого и медленного сна. В зависимости от того, в какую из фаз вы проснулись, утро может быть как добрым, так и весьма серым. Во время медленного сна человек постепенно засыпает всё крепче и крепче, будить его в этот момент не стоит, проснуться будет тяжело. Во время быстрой фазы человек спит не так крепко, может ворочаться и переворачиваться с боку на бок. Именно в этот момент легче всего проснуться.

    На этом принципе построены многие умные будильники. Они бывают как в виде настольных гаджетов или наручных часов, так и в виде приложений для смартфона. Принцип их работы весьма прост. Будят они не в строго заданный момент, а в промежуток времени, когда желательно проснуться, ожидая при этом какое-либо движение. Если человек начал шевелиться, значит началась фаза быстрого сна, и его пора будить.

    У меня в комнате один из датчиков движения висит прямо над кроватью. Об этом я немного рассказывал в своей статье про мой умный дом.

    image

    Недавно я просматривал логи и заметил, что на истории движения с этого датчика очень чётко видны фазы моего сна, когда я сплю один. Это не удивительно, он очень хорошо фиксирует любое моё движение, даже если я лежу под одеялом. Сразу же возникла мысль — почему бы не сделать мой будильник «умным»?

     

    Датчик движения


    Многие спрашивали меня, как же устроены мои датчики, просили дать схему. На самом деле всё проще некуда. Я пошёл в ближайший электромонтажный магазин и купил обычный бытовой датчик движения для включения света, обошлось мне это примерно в 200 рублей. У него было три вывода: общий, питание 220В и выход. Однако, для моих целей коммутация такого напряжения была совсем ни к чему. Я разобрал датчик и обнаружил внутри две платы: мозги и питание. Первая питалась от напряжения около 9В и давала на выходе логическую единицу при наличии движения. Вторая же предоставляла эти самые 9 вольт за счёт конденсаторного питания и коммутировала нагрузку электромагнитным реле. В результате плата с конденсаторным питанием была заменена на мою плату с микроконтроллером:



    Задача микроконтроллера предельно проста: ждать логическую единицу от датчика движения и посылать в сеть умного дома информацию об этом, но делать это не чаще, чем раз в минуту. Питается же всё это теперь от 12 вольт, которые протянуты у меня ко всем устройствам.
     

    Скрипты будильника


    Так как все устройства в доме у меня связаны с моим роутером на базе Linux, и именно он занимается пробуждением, вся оставшиеся махинации сводятся к написанию shell-скриптов.

    За будильник у меня отвечает alarm.sh, который в нужный момент запускается через cron, при этом в параметрах передаётся — как именно надо будить. Теперь этот скрипт должен запускаться, когда начинается тот интервал, в течении которого я должен проснуться. Пускай он будет длиться 30 минут. Получается, что если мне надо проснуться не позже 9:30, то будильник надо ставить на 9:00.
    Скрипт получился таким:

    #!/bin/sh
    # Максимальное время ожидания движения в секундах
    MAX_TIME=1800
    # Путь к флагу
    FLAG_FILE=/tmp/motion.flag
    
    # Убираем себя из кронтаба
    crontab -l | grep -v alarm.sh | crontab -
    
    # Если файл-флаг, который сообщает о движении уже существует, то удаляем его
    if [ -f $FLAG_FILE ];
    then
     rm $FLAG_FILE
    fi
    
    # Ждём в течении заданного времени
    for i in `seq 1 $MAX_TIME`;
    do
    # Если появился флаг, значит есть движение, больше не надо ждать
     if [ -f $FLAG_FILE ];
     then
     break
     fi
     sleep 1
    done
    
    # Если надо, включаем радио
    if [ "$1" -eq 1 ]
    then
     radio.sh &
    fi
    
    # Если надо, включаем заданное количество ламп на люстре
    if [ "$2" -ge 1 ]
    then
     sleep 1
     light.sh $2 &
    fi
    
    # Если надо, включаем компьютер
    if [ "$3" -eq 1 ]
    then
     /usr/local/sbin/wakemypc
    fi
    
    # TODO: управление оконными шторами
    



    В скрипте, который реагирует на пакеты от устройств умного дома, я сделал создание флага:

    # $3 - тип команды, 21 - код информации о движении
    if [ "$3" -eq 21 ]
    then
     touch /tmp/motion.flag
    fi
    



    Если интересно, вот так происходит включение радио через radio.sh:

    #!/bin/sh
    # Имитируем нажатие кнопки включения ресивера на пульте-ДУ
    echo "04040C017A850976">/tmp/clunet.fifo
    sleep 10
    for i in `seq 1 80`;
    do
     # Увеличение громкости на 0.5 dB, имитируем нажатие кнопки увеличения громкости
     echo "04040C017A851AE5">/tmp/clunet.fifo
     sleep 6
    done
    



    Добавлением alarm.sh в crontab занимается PHP скрипт, поэтому будильник можно устанавливать через веб-интерфейс:

    image

    Или через приложение для Android:



    На самом деле такой будильник можно было сделать и без роутера с Linux, ведь датчик движения и ДУ-передатчик соединены напрямую, но для этого пришлось бы как-то научить их считать время, на что они изначально не были рассчитаны.
     

    Использование IP-камеры


    Теоретически для умного будильника можно использовать и IP-камеру с инфракрасной подсветкой, если направить её на кровать.



    Практически в любой такой камере есть возможность отслеживать движение. Админка моей камеры выглядит так:



    Да, корявый английский от китайцев :) Как видите, можно указать URL, который запрашивается при обнаружении движения. Дело за малым — написать PHP скрипт, при вызове которого будет создаваться флаг.

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

    Итог


    Такие будильники действительно помогают сделать утро добрым. Ощущения бывают весьма своеобразными. Например, я могу во сне переворачиваться с боку на бок, и во время этого включается будильник, в результате чего я просыпаюсь скорее над кроватью, а не на ней :)
    Увы, такой подход к созданию умного будильника подходит только для людей, которые спят в гордом одиночестве.

    Надо сказать, что отдельный будильник в виде радио, которое постепенно увеличивает громкость, тоже очень приятный. Во время крепкого сна он не будит мгновенно, тихая музыка начинает пробиваться сквозь сон и постепенно нарастать. Однако, чаще я всё-таки просыпаюсь от звука включения ресивера.

    Пока писал статью, пошёл седьмой час утра. Доброе утро, Хабр :)

     

    http://habrahabr.ru/post/229713/

    Категория: Linux и не только | Просмотров: 634 | Добавил: laptop | Рейтинг: 3.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024