Raspberry Pi

Русский сайт по микрокомпьютеру Raspberry Pi
Предложить пост

Вход








Регистрация | Забыли пароль?

Поиск



По всему сайту
По тэгам
По тэгам и заголовкам

Рубрики

  • Проекты и статьи
  • Модели
  • Новости
  • Мысли
  • Облако тэгов

    raspberry pi 3, raspbian, windows, ubuntu, linux, умный дом, windows 10, osmc, игры, python, gpio, установка ос, raspberry pi 2, raspberry pi zero, raspberry pi zero w, слежение, самолёт, http, diy, 1c-битрикс, web, сеть, кластер, бесперебойник, акустика

    Боковое меню

  • RSS-канал
  • Карта сайта
  • Обратная связь
  • Пользователи


    Top.Mail.Ru

  • Как управлять AV-техникой со смартфона: создание платы и софта для Raspberry Pi

    Система «Умный дом» становится всё популярнее. Чтобы оценить её по достоинству, необязательно быть миллионером. Навыки программирования помогут не выйти за рамки бюджета и сделать дом комфортным.

    Можно управлять светом со смартфона, замерить и вывести температуру за окном на специальный экран. Еще одна идея - управлять ТВ с айфона. Как её реализовать? Приобрести Raspberry (медиаплеер) и воспользоваться дистрибутивом Xbian. Придется усовершенствовать вывод GPIO, установить инфракрасный LED от телевизионного пульта.

    Рассмотрим более подробно каждый этап реализации идеи. Первоочередная задача – сделать плату с инфракрасным передатчиком и приемником для медиаплеера. Второй этап – настройка программ. Клиент для iPhone позволит полноценно управлять телевизором.

    Для управления ТВ нужен инфракрасный передатчик. Для обработки передаваемых команд необходимо просканировать телевизионный пульт. С этой задачей справится инфракрасный приемник. Соответственно, в небольшой плате есть приёмопередатчик. Что касается оборудования, для передачи сигнала подойдет GPIO 9, для приёма – GPIO 11. Также нужен источник питания 3.3V и заземление. Придется задействовать 4 вывода. Со схемой будущей платы можно познакомиться на рисунке ниже:



    Что есть на схеме?
    • R1 – резистор с сопротивлением 10 000 Ом, нужен для ограничения силы тока (максимум – 2,5мА) и предотвращения сгорания базы;
    • R2 – резистор с сопротивлением 33 Ом, обеспечивает большую силу сигнала, выступает в роли ограничителя силы тока (максимум – 50 мА) на светодиодной лампе;
    • Q1 – транзистор BC547, усиливает прием и передачу сигнала;
    • D1 – инфракрасный передатчик IR LED из любого пульта с рабочей частотой 36-38 Кгц;
    • IR – инфракрасный приемник сигнала TSOP1738.
    Определиться с зоной GPIO, используемыми выводами поможет рисунок ниже:



    Сделать небольшую плату можно по технологии ЛУТ. Выглядеть она будет следующим образом:



    После спайки плату можно установить в Raspberry. Для надежной фиксации используйте нижние 5х2 выводы GPIO. Альтернативный вариант – 5х1 выводы.



    С платой разобрались. Можно установить её. ИК приемник рабочий, но очень габаритный. Корпус Raspberry слишком мал для нового оборудования. Если хотите, найдите приемник поменьше. Самое главное, чтобы он был рассчитан на 38Кгц.
    Работа с «железом» закончена. Впереди – создание программ. Что же нам потребуется?
    • Lirc – считывает сигналы пульта, передает ИК запросы;
    • Сервер – принимает HTTP запросы, передает ИК сигналы при помощи lirc;
    • Мобильный клиент – занимается передачей HTTP команд на сервер.
    Измените /etc/modules для загрузки конкретных модулей - xbian@xbian ~ $ cat /etc/modules. В результате lirc будет пользоваться определенными выводами.

    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    # Parameters can be specified after the module name.
    lirc_dev
    lirc_rpi gpio_in_pin=11 gpio_out_pin=9


    Переходим к интерфейсу. Создайте его (/dev/lirc0) и добавьте в файл /boot/config.txt.
    dtoverlay=lirc-rpi,gpio_in_pin=11,gpio_out_pin=9


    После перезагрузки установите lirc. В случае запуска домена остановите процесс. Проверьте работоспособность модуля. Используйте команду xbian@xbian ~ $ sudo mode2 -d /dev/lirc0.

    space 16777215
    pulse 4534
    space 4421
    pulse 621
    space 1642
    pulse 582
    space 1648


    Как узнать работоспособность ИК приемника? Нажмите любую кнопку - появятся цифровые значения. Следующий шаг - xbian@xbian ~ $ sudo irrecord tv_samsung.conf.
    Программа подскажет, что нужно нажать. Получится конфигурация - tv_samsung.conf. Переместите её в /etc/lirc/remotes/. В моем случае конфиг выглядит так: xbian@xbian ~ $ cat /etc/lirc/remotes/tv_samsung.conf.

    # Please make this file available to others
    # by sending it to
    #
    # this config file was automatically generated
    # using lirc-0.9.1-git(default) on Tue Sep 3 19:29:12 2013
    #
    # contributed by
    #
    # brand: /home/xbian/lircd2.conf
    # model no. of remote control:
    # devices being controlled by this remote:
    #

    begin remote

    name TV
    bits 16
    flags SPACE_ENC|CONST_LENGTH
    eps 30
    aeps 100

    header 4532 4422
    one 591 1650
    zero 591 540
    ptrail 595
    pre_data_bits 16
    pre_data 0xE0E0
    gap 107530
    toggle_bit_mask 0x0

    begin codes
    KEY_POWER 0x40BF
    KEY_UP 0x48B7
    KEY_DOWN 0x08F7
    KEY_VOLUMEUP 0xE01F
    KEY_VOLUMEDOWN 0xD02F
    KEY_MUTE 0xF00F
    end codes

    end remote


    Проверьте работоспособность передатчика. Для этого запустите домен lirc и отправьте запрос: xbian@xbian ~ $ irsend SEND_ONCE TV KEY_POWER
    SEND_ONCE является директивой для разовой отправки. TV – название ТВ (смотрите /etc/lirc/remotes/tv_samsung.conf). KEY_POWER – наименование запроса (смотрите /etc/lirc/remotes/tv_samsung.conf).
    Ждите включения либо выключения ТВ. После этого можно двигаться дальше – к управлению со смартфона. Без сервера не обойтись. Его функции – это приём HTTP команд, исполнение irsend. Можно использовать Apache http server. Только придется настроить его на исполнение скриптов cgi-bin. В случае с дистрибутивом Xbian понадобится /etc/apache2/sites-enabled/000-default. Где искать скрипты? Как разрешить их выполнение? Ниже представлен подробный путь:


    ....
    ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    <Directory "/var/www/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>
    ....


    На bash можно создать скрипт. Он будет выполнять 2 функции: обработка запросов типа HTTP и выполнение irsend. Выглядит всё следующим образом: xbian@xbian ~ $ cat /var/www/cgi-bin/main.cgi.


    #!/bin/bash

    echo "Content-type: text/html"
    echo ""
    echo "<html><head><title>Welcome</title></head>"
    echo "<body>"
    echo "Send IR code: "
    echo $QUERY_STRING
    irsend SEND_ONCE TV $QUERY_STRING
    echo "</body></html>"


    Возвращаемся к скрипту. Он должен быть исполняемым: xbian@xbian /var/www/cgi-bin $ sudo chmod +x main.cgi.
    Запустите apache. Через браузер попытайтесь включить ТВ: 192.168.1.23/cgi-bin/main.cgi?KEY_POWER.
    В случае работы сервера вы увидите следующее: Send IR code: KEY_POWER.
    После /cgi-bin/main.cgi?  идёт команда отсюда - /etc/lirc/remotes/tv_samsung.conf.
    Дело сделано. Теперь управление доступно с мобильного устройства. Если хотите делать это из браузера, создайте приложение. Оно будет включать ссылки и HTTP команды для каждой кнопки управления ТВ.



    Если вы не писали программы для смартфонов, вам поможет OpenRemote - многофункциональный и простой конструктор. Можно создать дизайн будущего приложения, расставить нужным образом кнопки. Чтобы задать HTTP команду, достаточно зайти в свойства кнопки. Останется только разобраться с софтом. Мобильное приложения для управления умным домом на базе Z-Wave с помощью OpenRemote
    Источник

    10.11.2019 в 19:39, Просмотров: 249

    умный дом

    Короткая ссылка: http://4raspberrypi.ru/content.php?p=54

    ID: 54