Я пытаюсь управлять блоком IR HVAC в моем доме с помощью Raspberry Pi 2 и инфракрасного экрана (см. Здесь: http://bit.ly/29iC0lr ).
Я следовал инструкциям на странице продукта ИК-щита с советами из нескольких других мест, и прием сигналов с пульта HVAC прекрасно работает. Мне удалось создать файл .conf, и я вижу, какие кнопки я настроил, когда использую команду LIST, но при попытке SEND_ONCE я получаю следующий ответ:
irsend: hardware does not support sending
Я потратил несколько часов, пробуя различные ОС (включая piCore 6.1-v7 и Raspbian Jesse 2016-05-27 и 2015-11-21) и две версии LIRC (0.9.0 и 0.9.4), но всегда получал один и тот же результат.
Я подтвердил, что ИК-светодиод работает с использованием цифровой камеры и скрипта Python, который вручную управляет выводом GPIO.
Может ли кто-нибудь указать мне правильное направление для устранения этой проблемы? Есть ли способ узнать, почему LIRC считает, что у моего оборудования нет передатчика?
Заранее спасибо.
Примечание: мой /boot/config.txt включает эту строку для lirc-rpi
dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17
[РЕДАКТИРОВАТЬ 7-7-2016]
Вот некоторая дополнительная информация, включая вывод нескольких команд в разделе «Устранение неполадок» на этой странице: http://aron.ws/projects/lirc_rpi/
Вывод cat /sys/kernel/debug/gpio
не выглядит правильным, но я не не знаю, что с этим делать. : - \
У меня есть следующая строка в /etc/rc.local:
modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17
Я также попробовал подобный фрагмент кода в / etc / modules, но это не имело никакого значения.
pi@raspberrypi:~ $ ls -l /dev/lirc*
crw-rw---- 1 root video 244, 0 Jul 7 11:27 /dev/lirc0
lrwxrwxrwx 1 root root 21 Jul 7 11:27 /dev/lircd -> ../var/run/lirc/lircd
pi@raspberrypi:~ $ dmesg | grep lirc
[ 5.219904] lirc_dev: IR Remote Control driver registered, major 244
[ 5.230067] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
[ 6.196796] lirc_rpi: auto-detected active low receiver on GPIO pin 18
[ 6.197243] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
[ 6.197248] lirc_rpi: driver registered!
pi@raspberrypi:~ $ sudo cat /sys/kernel/debug/gpio
GPIOs 0-53, platform/3f200000.gpio, pinctrl-bcm2835:
gpio-35 (? ) in hi
gpio-47 (? ) out lo
pi@raspberrypi:~ $ cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
16: 0 0 0 0 ARMCTRL 16 Edge bcm2708_fb dma
20: 1500 0 0 0 ARMCTRL 20 Edge DMA IRQ
32: 145314 0 0 0 ARMCTRL 32 Edge dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
49: 0 0 0 0 ARMCTRL 49 Edge 3f200000.gpio:bank0
50: 0 0 0 0 ARMCTRL 50 Edge 3f200000.gpio:bank1
65: 26 0 0 0 ARMCTRL 65 Edge 3f00b880.mailbox
66: 2 0 0 0 ARMCTRL 66 Edge VCHIQ doorbell
75: 1 0 0 0 ARMCTRL 75 Edge
77: 120 0 0 0 ARMCTRL 77 Edge DMA IRQ
82: 192 0 0 0 ARMCTRL 82 Edge mmc0
83: 5 0 0 0 ARMCTRL 83 Edge uart-pl011
96: 0 0 0 0 ARMCTRL 96 Edge arch_timer
97: 3798 2724 1275 1139 ARMCTRL 97 Edge arch_timer
FIQ: usb_fiq
IPI0: 0 0 0 0 CPU wakeup interrupts
IPI1: 0 0 0 0 Timer broadcast interrupts
IPI2: 2225 2478 3697 2901 Rescheduling interrupts
IPI3: 7 6 8 9 Function call interrupts
IPI4: 3 5 0 1 Single function call interrupts
IPI5: 0 0 0 0 CPU stop interrupts
IPI6: 0 0 0 0 IRQ work interrupts
IPI7: 0 0 0 0 completion interrupts
pi@raspberrypi:~ $ lsmod
Module Size Used by
cfg80211 419759 0
rfkill 16659 2 cfg80211
8192cu 528485 0
evdev 10226 1
snd_bcm2835 19739 0
bcm2835_gpiomem 3023 0
snd_pcm 74833 1 snd_bcm2835
snd_timer 18164 1 snd_pcm
lirc_rpi 6638 0
snd 52116 3 snd_bcm2835,snd_timer,snd_pcm
lirc_dev 8169 1 lirc_rpi
rc_core 16910 1 lirc_dev
uio_pdrv_genirq 2966 0
uio 8228 1 uio_pdrv_genirq
ipv6 341892 30
/boot/config.txt
?Ответы:
Для меня это еще один шаг помог:
редактировать
/etc/lirc/lirc_options.conf
и наборdriver = devinput
для
driver = default
последующей перезагрузкой или перезапустить службу lircd
источник
Хорошо, я нашел ответ, точнее, кто-то, кто гораздо лучше осведомлен о Linux, чем я ( /raspberrypi//users/49162/jonathan-dieter ) нашел его. :)
Вместо загрузки модуля lirc_rpi в / etc / modules или /etc/rc.local он предложил добавить новый файл конфигурации в /etc/modprobe.d/ (в моем случае /etc/modprobe.d/ir-remote.conf ) со следующей строкой:
Мое лучшее предположение относительно того, почему это имело значение, состоит в том, что модуль загружался с настройками по умолчанию ПЕРЕД командой в / etc / modules или rc.local. Поскольку он уже был загружен, система просто проигнорировала мою последующую попытку, и вывод вывода никогда не был настроен правильно (это под Raspbian Jessie BTW).
Еще одно замечание о блоке HVAC, которое может быть полезным. Я не смог использовать irrecord для сохранения команд с пульта дистанционного управления. Кажется, что системы HVAC работают немного иначе, чем телевизор или видеомагнитофон.
Эти две страницы ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPS и http://absurdlysure.blogspot.com/2013/03/lirc-raspi -remote-control-configuration.html, особенно первые два комментария, помогли мне понять, как записать необработанный вывод из mode2, нормализовать его, а затем передать его с помощью irsend.
источник
После следования этому руководству: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board Я столкнулся с той же проблемой, как указано в этом вопросе:
Я попытался добавить эту строку:
в /etc/modprobe.d/ir-remote.conf, но это тоже не помогло.
Когда я запустил демон LIRC с помощью следующей команды:
это сработало! Устройство должно быть таким же, как вы настроили в файле /etc/lirc/hardware.conf. Итак, шаги:
irsend: hardware does not support sending
sudo lircd --device /dev/lirc0
запустить демон LIRCirsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
источник