Sensores Arduino y Raspberry Pi
20Descripción:
Este módulo puede recibir señales infrarrojas y emitirlas en la salida de señal como una secuencia digital. Además, el LED integrado en el módulo parpadea brevemente cuando se detecta una señal de infrarrojos.
Especificaciones:
Operating voltage: 3,3 V - 5 V
Operating current: 0,4 - 1,5 mA
Reception range: 18 m
Reception angle: ± 45°
Carrier frequency: 38 kHz
Wavelength: 940nm
Crystal frequency: 455kHz
Encoding: encoding format for the NEC
Power: CR2025/1600mAH
Esquemático:
Pinout:
Conexión Arduino:
Para usar el sensor KY-022 debemos instalar la librería IR remote desde el gestor de librerías en el Arduino IDE
Abrimos Arduino IDE.
Elegimos Sketch --> Include Library --> Manage libraries.
En el cuadro de búsqueda escribimos "irremote".
Instalamos IRremote by Armin Joachimsmeyer.
Una vez instalado, vamos a:
File --> New
Con éste Sketch podremos obtener los códigos de cada botón de nuestro control remoto:
Verificar.
Subir.
Una vez subido, abriremos el Monitor Serie:
Herramientas Serial Monitor.
Al pulsar cada botón obtendremos códigos que podemos seleccionar con el mouse haciendo clic derecho y luego presionando "Ctrl+c" para copiar todos los códigos obtenidos de una sola vez, esta opción no nos saldrá con clic derecho.
Luego de copiado creamos un archivo de texto o un tabla en Libre Office Calc y pegamos con "Ctrl+v" o con "Ctrl+Shift+v". Y agregamos a que botón pertenece cada código.
El código se verá de esta forma:
F30C7F80
Si elegimos ver el código con el nuevo print:
IrReceiver.printIRResultShort(&Serial);
Protocol=NEC Address=0x80 Command=0xC Raw-Data=0xF30C7F80 32 bits LSB first
Protocol=NEC2 Address=0x80 Command=0xC Repeat gap=57650us Raw-Data=0xF30C7F80 32 bits LSB first
Código Arduino:
Conexión Arduino Ejemplo 1: Encender LED con cualquier botón
Código Arduino Ejemplo 1: Encender LED con cualquier botón
Conexión Arduino Ejemplo 2: Encender LED con un botón especifico
Código Arduino Ejemplo 2: Encender LED con un botón especifico
Conexión Raspberry Pi:
Usar módulo IR KY-022 con control remoto y Lirc en Raspberry Pi OS:
Hay que instalar LIRC desde el Terminal:
sudo apt-get instal lirc -y
2. Editamos modules agregando las siguientes dos líneas al final del archivo:
sudo nano /etc/modules
lirc_dev
lirc_rpi gpio_in=18
Si van a usar también un emisor IR en su lugar agregamos:
lirc_rpi gpio_in=18 gpio_out=22
Presionamos "Ctrl+x" para cerrar. "Y" para guardar. "Enter" para aceptar y terminar de cerrar el archivo.
3. Editamos config.txt:
sudo nano /boot/config.txt
Agregamos la siguiente línea al final del archivo:
dtoverlay=lirc-rpi, gpio_in_pin=18, gpio_out_pin=22
Presionamos "Ctrl+x" para cerrar."Y" para guardar. "Enter" para aceptar y terminar de cerrar el archivo.
4. Editamos ir-remote.conf:
sudo nano /etc/modprobe.d/ir-remote.conf
Agregamos la siguiente línea:
options lirc_rpi gpio_in_pin=18 gpio_out_pin=22
Presionamos "Ctrl+x" para cerrar. "Y" para guardar. "Enter" para aceptar y terminar de cerrar el archivo.
5. Editamos las siguientes líneas en lirc_options.conf:
driver = default
device = /dev/lirc0
Presionamos "Ctrl+x" para cerrar. "Y" para guardar. "Enter" para aceptar y terminar de cerrar el archivo.
6. Paramos y reiniciamos lirc:
sudo /etc/init.d/lircd stop
sudo /etc/init.d/lircd start
7. Nos fijamos que Lirc esté corriendo:
sudo /etc/init.d/lircd status
8. Reiniciamos la Raspberry Pi:
sudo reboot
9. Probamos que está funcionando:
sudo /etc/init.d/lircd stop
mode2 -d /dev/lirc0
Nos aparecerá lo siguiente:
<press a key in remote ...>
Presionamos cualquier botón y veremos líneas similares con diferentes valores:
pulse 560
space 1706
pulse 535
E ira aumentando a medida que toquemos los botones. Presionamos "Ctrl+C" para cerrar.
Ahora debemos grabar nuestro control remoto, en mi caso usé el del Cable Operador Telecentro:
1. Detenemos Lirc:
sudo /etc/init.d/lircd stop
sudo irrecord -d /dev/lirc0 ~/lircd.conf
Seguimos las instrucciones que nos pide:
Presionar "Enter"
Entrar el nombre que le damos al control remoto.
Presionar "Enter" para empezar a grabar.
Presionamos cada botón del control hasta completar 2 líneas de punto, si terminamos de presionar todos los botones y aún no se hacen las 2 líneas repetimos botones al azar hasta completarla.
Luego seguimos las instrucciones, nos pedirá que pongamos nombre al botón que presionaremos, para saber esto abrimos otra terminal y tecleamos:
irrecord --list | less
Nos desplegará los nombres disponibles:
Ejemplo: Para el botón "Rojo"
KEY_RED
Presionamos "Enter" y pulsamos el botón "Rojo" de nuestro control.
Lo detectará y nos pedirá el nombre de otro botón.
Ejemplo: Para el botón "Power"
KEY_POWER
Presionamos "Enter" y pulsamos el botón "Power" de nuestro control.
Cuando ya tengamos todos los botones que necesitemos usar presionamos "Enter" y nos pedirá que pulsemos repetidas veces lo más rápido posible un botón cualquiera pero solo ése botón, luego de lograr eso guardará nuestra grabación en "$HOME" como "nombrequeledimos.conf"
Ahora hacemos un backup del lircd.conf original:
sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd_original.conf
Y copiamos nuestra grabacion a lircd.conf
sudo cp ~/Telecentro.conf /etc/lirc/lircd.conf
Iniciamos Lirc Daemon:
sudo /etc/init.d/lircd start
Listo, ya podemos usarlo como por ejemplo en kodi editando Lircmap.xml:
sudo nano /usr/share/kodi/system/Lircmap.xml
Dónde copiaremos la sección completa:
<remote device="mceusb">
hasta </remote>
Son muchas líneas las seleccionamos y copiamos, las pegamos al final del archivo pero antes de </lircmap>
Una vez que peguemos lo copiado procedemos a editarlo cambiando "mceusb" por "Telecentro",en mi caso, en el suyo, el nombre que ustedes le pusieron a su control remoto.
Luego vamos editando cada una de las etiquetas reemplazando por el nombre de nuestras teclas.
Por ejemplo:
<play>Play</play>
Lo cambiamos por nuestra tecla:
<play>KEY_PLAY</play>
Y así con cada una que querrámos manejar con nuestro control remoto.
Presionamos "Ctrl+x" para cerrar. "Y" para guardar. "Enter" para aceptar y terminar de cerrar el archivo. Reiniciamos Raspberry Pi y abrimos kodi y podremos manejarlo perfectamente con nuestro control.
En Python existe la librería Python Lirc que debemos instalar.
Conexión Raspberry Pi Pico:
Código MicroPython Raspberry Pi Pico:
Abrimos la Terminal e ingresamos:
cd
git clone https://github.com/peterhinch/micropython_ir
cd micropython_ir
Abrimos Thonny y buscamos ese directorio, copiaremos el directorio ir_rx a nuestra Raspberry Pi Pico/W.
Seleccionamos el directorio ir_rx y presionamos clic derecho opción Upload to/
Asi queda nuestra Raspberry Pi Pico/W
Una vez subida la librería, vamos a la Shell de Thonny o al REPL e introducimos:
from ir_rx.test import test
test()
Al pulsar Enter el Receptor Infrarrojo estará listo para recibir y mostrarnos el dato de nuestro control remoto.
Una vez obtenido los datos y anotados, nos servirán para realizar alguna acción.
Código Kaluma's JavaScript Raspberry Pi Pico:
Requiere Package ir-receiver (En Windows para instalar Packages requerimos tener Git instalado, en Pi OS viene por defecto, si usas otro Linux: sudo apt install git).
Abrimos la Terminal o el CMD e ingresamos:
cd
mkdir ky022-app
cd ky022-app
npm install https://github.com/niklauslee/ir-receiver --save
npm init -y
nano index.js
Guardamos los cambios con Ctrl+o, Confirmamos con Enter, Cerramos el archivo con Ctrl+x.
En Windows en lugar de nano tenemos notepad, guardar los cambios con Ctrl+g, Salir con Ctrl+w:
notepad index.js
kaluma flash ./index.js --bundle --shell
Conexión Raspberry Pi Pico W:
Código MicroPython Raspberry Pi Pico W:
Abrimos la Terminal e ingresamos:
cd
git clone https://github.com/peterhinch/micropython_ir
cd micropython_ir
Abrimos Thonny y buscamos ese directorio, copiaremos el directorio ir_rx a nuestra Raspberry Pi Pico W.
Seleccionamos el directorio ir_rx y presionamos clic derecho opción Upload to/
Asi queda nuestra Raspberry Pi Pico W
Una vez subida la librería, vamos a la Shell de Thonny o al REPL e introducimos:
from ir_rx.test import test
test()
Al pulsar Enter el Receptor Infrarrojo estará listo para recibir y mostrarnos el dato de nuestro control remoto.
Una vez obtenido los datos y anotados, nos servirán para realizar alguna acción.
Código Kaluma's JavaScript Raspberry Pi Pico W:
Requiere Package ir-receiver (En Windows para instalar Packages requerimos tener Git instalado, en Pi OS viene por defecto, si usas otro Linux: sudo apt install git).
Abrimos la Terminal o el CMD e ingresamos:
cd
mkdir ky022-app
cd ky022-app
npm install https://github.com/niklauslee/ir-receiver --save
npm init -y
nano index.js
Guardamos los cambios con Ctrl+o, Confirmamos con Enter, Cerramos el archivo con Ctrl+x.
En Windows en lugar de nano tenemos notepad, guardar los cambios con Ctrl+g, Salir con Ctrl+w:
notepad index.js
kaluma flash ./index.js --bundle --shell
Conexión ESP32:
Requisito ESP32:
Abrimos la Terminal e ingresamos para descargarla:
cd
git clone https://github.com/eliasmonzon/IR_remote.git
Abrimos Thonny y buscamos ese directorio, copiaremos la librería IR_remote/libreria/IR_remote.py y el directorio IR_remote/ejemplos a nuestra ESP32.
O creamos la librería IR_remote.py:
Código MicroPython ESP32:
Obtención de códigos de un control remoto, para su posterior utilización.
Códigos leídos:
Botón 1: 0x1fe50af
Botón 2: 0x1fed827
Botón 3: 0x1fef807
Botón 4: 0x1fe30cf
Led 1 en GPIO 16
Led 2 en GPIO 17
Led 3 en GPIO 5
Led 4 en GPIO 18