Tabla de contenido:
- Paso 1: requisitos previos
- Paso 2: construcción del tablero
- Paso 3: esquema
- Paso 4: agregue la biblioteca Irremote al software Arduino
- Paso 5: registre los códigos de sus controles remotos
- Paso 6: cree la página web para su control remoto
- Paso 7: cargue el código de control remoto en su Arduino
- Paso 8: Conéctese al servidor web desde su computadora
- Paso 9: Paso opcional: edite su archivo de hosts para que sea más fácil de usar
Video: Control remoto basado en navegador Arduino (linux): 9 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Tenemos hijos. Me encantan, pero siguen ocultando el mando a distancia del satélite y la televisión cuando ponen los canales de los niños. Después de que esto sucediera a diario durante varios años, y después de que mi querida esposa me permitiera tener un Arduino para Navidad, decidí que era hora de hacer algo útil (¡en sus ojos!) Con el Arduino. Así que aquí tenemos la culminación de eso: una interfaz basada en web para Arduino que reemplaza mis controles remotos y es accesible desde mi red interna. Cuando descubra por qué mi escudo ethernet no permite que mi arduino mantenga un boceto, escribiré un nuevo boceto que usa el escudo ethernet como servidor web, lo que significa que no necesito apache instalado en mi computadora. ¡Estén atentos, llegaré allí!
Paso 1: requisitos previos
Hardware: Lado de Arduino: Arduino - Estoy usando una placa de pruebas Arduino Uno R2 - su tienda de electrónica local, o la cocina si desea una placa de prueba auténtica Caja de montaje - Usé una vieja caja de plástico con una tapa transparente Componentes: LED infrarrojo - Desoldado uno de un control remoto roto (¡gracias niños!) Receptor de infrarrojos - Obtuve el mío de un extensor remoto de ojo mágico Transistor - Usé una resistencia BC547 - Usé una resistencia variable de 1.5k ohmios configurada en cables de puente de placa de pruebas de 1k ohmios - Obtuve la mía desde un carrete de cable RJ45 de núcleo sólido Lado de la computadora: Computadora para usar como servidor Cable USB a Arduino Software: Software Arduino - de la biblioteca irremote arduino.cc - de https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (gracias Ken, gran trabajo!) Servidor web Apache con PHP instalado - apache.org Dirección IP interna - la mía es 192.168.0.9 Imagen de su control remoto - google o una imagen tomada con su cámara. Guardé el mío con una resolución de 200x600
Paso 2: construcción del tablero
Se recomienda encarecidamente usar una placa de pruebas para un arduino. Monté mi Arduino y una placa de pruebas en el mismo gabinete y conecté todos los pines que uso regularmente directamente a la placa de pruebas de forma permanente. Pines de Arduino utilizados para este proyecto: 5v, tierra Pines digitales 3, 11 (el pin 3 controla el LED de infrarrojos, el pin 11 se conecta al receptor de infrarrojos)
Paso 3: esquema
Este esquema es muy simple, 4 componentes y 6 cables. Conexiones LED IR: Conecte una de las patas de la resistencia al pin digital Arduino 3 Conecte la otra pata de la resistencia al pin base del transistor (la pata del medio en mi caso) Conecte el emisor del transistor a tierra Conecte el colector del transistor a la pata negativa del LED (pata corta, lado plano del LED) Conecte la pata positiva (pata larga, lado curvo) del LED a las conexiones del receptor IR de 5v pin (necesitaría encontrar el pinout para su receptor de infrarrojos en particular): pin GND a tierra VS pin a 5v VO pin a Arduino pin digital 11
Paso 4: agregue la biblioteca Irremote al software Arduino
irremote es una gran biblioteca escrita por Ken Shirriff y está disponible en su blog en https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Descargue la biblioteca de https:// arcfn.com / files / IRremote.zip e instálelo como lo haría con cualquier otra biblioteca para arduino. Su blog tiene mucha información útil sobre la biblioteca y cómo instalarla.
Paso 5: registre los códigos de sus controles remotos
Aquí está el comienzo de la parte aburrida (pero inevitable): presionar todos los botones del control remoto, guardar la cadena de salida y asignarla al control remoto virtual. Solo necesita hacerlo una vez, espere tomar aproximadamente 20 minutos más o menos. Inicie un editor de texto para guardar su salida. Cree un nuevo documento y escriba cada botón en su control remoto, uno por línea: Encendido, Abajo, Izquierda, Derecha … etcétera Inicie el IDE de Arduino y haga clic en "Archivos-> Ejemplos-> IRremote-> IRrecvDump" y cárguelo en su Arduino. Este ejemplo volcará los códigos remotos al puerto serie. Inicie el monitor del puerto serie y presione una tecla en su control remoto. Verá aparecer una cadena en la ventana del monitor serial: "Decodificado *: * (* bits)". Copie esta línea y guárdela en su documento en la línea correspondiente. Repita hasta que tenga todas sus claves almacenadas en el archivo de texto. Sé lo divertido que es este bit, lo he hecho dos veces hasta ahora: P Ahora tenemos que buscar y reemplazar un poco en el archivo de texto: buscar "Decodificado" reemplazar con "" buscar ": 0x" reemplazar con "," buscar "(" reemplazar con "," buscar "bits)" reemplazar con "" Entonces, para una línea como: Decodificado NEC: 0x000110 (15 bits) ahora deberíamos tener una línea que diga: NEC, 000110, 15
Paso 6: cree la página web para su control remoto
Ahora necesitamos mapear los botones en su imagen de su control remoto.
Usé https://www.maschek.hu/imagemap/imgmap para mapear los botones y modifiqué el código que te da el sitio web para que funcione.
Haga clic en "Usar una imagen en su computadora: [elegir archivo]", seleccione su imagen, haga clic en [cargar], haga clic en [aceptar] Coloque rectángulos, círculos, etc. en cada botón. Para HREF, coloque /remote.php?command= y la línea para ese botón del documento de texto, por ejemplo /remote.php?command=NEC, 000110, 15 Sería prudente (y ayuda enormemente en la depuración) si también completa Alt: con el nombre del botón, pero eso depende de usted.
Repita para cada botón.
¿Todo listo? Entonces continuaremos. En la parte inferior de esa página está "Código", haga clic en él y se abrirá un cuadro que muestra el código del mapa de imágenes. Cópielo y péguelo en un nuevo documento de texto. Esta es la parte principal de nuestra página web.
Aquí está mi página web completa, solo reemplace el…
con su propio código arriba y guárdelo como remote.php en su directorio web (/ var / www en linux) junto con sus imágenes de control remoto. Cambie las líneas por sus propias imágenes:
"https://www.w3.org/TR/html4/loose.dtd">
Control de LED Arduino
Paso 7: cargue el código de control remoto en su Arduino
Cree un nuevo boceto y pegue el siguiente código en él: / * * WebRemote * Se debe conectar un LED de infrarrojos al pin 3 de Arduino PWM. * Versión 0.1 de julio de 2009 * Este código es propiedad intelectual de Gregory Fenton, https://labby.co. uk / 2012/02 / irremote-arduino-experimentation / * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com * / #include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); return obj; } booleano finalizado = falso; char inData [64]; // Tamaño según corresponda byte index = 0; #define EOP "\ n" IRsend irsend; configuración vacía () {Serial.begin (9600); Serie << "Puerto serie inicializado" << EOP; } bucle vacío () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; long sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); if (índice == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {finalizó = verdadero; índice = 0; rotura; } else {if (índice <64) // Tamaño de la matriz {pch + = inChar; índice ++; }}} if (finalizó) {// Analice los datos en inData aquí… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // omitir ',' o '' // i ahora apunta al inicio de hexadecimal j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j ahora apunta a ',' o '' después de hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); para (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! ((k> = '0' && k = 'A' && k <= 'F'))) romper; sHex * = 16; if (k> = '0' && k <= '9') sHex + = (k - '0'); de lo contrario, si (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F'))) romper; } sTemp = pch.substring (j + 1); sBits = 0; para (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits * = 10; if (k> = '0' && k <= '9') sBits + = (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Tipo de código:" << sType << "Hex:"; Serial.print (sHex, HEX); Serie << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; terminó = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex, sBits); } else if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } else if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } else if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } else if (sType.equals (String (""))) {Serial << "Retrasar" << EOP; retraso (450); } retraso (30); }}
Paso 8: Conéctese al servidor web desde su computadora
.. o teléfono o android o ipad o lo que sea: vaya a https:// dirección IP del servidor web / remote.php en su navegador. Para mí, la dirección es https://192.168.0.9/remote.php pero la suya sin duda será diferente. Si todo está funcionando, debería ver una imagen de su control remoto con botones en los que puede hacer clic.
Paso 9: Paso opcional: edite su archivo de hosts para que sea más fácil de usar
Un paso que hice fue editar mi archivo de hosts (/ etc / hosts en linux, C: / Windows / System32 / Drivers / etc / hosts en Windows). Tenga en cuenta que este archivo solo se puede editar en un símbolo del sistema administrativo (Windows) o por su (Linux) Agregue la línea ip.add.re.ss remote reemplace ip.add.re.ss con la dirección IP del servidor y guarde el archivo. Debería hacer esto en todos los dispositivos que desee para acceder a la página web con el nombre corto. Ahora puede acceder al control remoto con https://remote/remote.php. Este es mi primer instructable adecuado, sea amable y avíseme si hay algún problema para que pueda solucionarlo.
Recomendado:
El control remoto de TV se convierte en un control remoto de RF -- NRF24L01 + Tutorial: 5 pasos (con imágenes)
El control remoto de TV se convierte en un control remoto de RF || Tutorial de NRF24L01 +: En este proyecto te mostraré cómo utilicé el popular nRF24L01 + RF IC para ajustar el brillo de una tira de LED de forma inalámbrica a través de tres botones inútiles de un control remoto de TV. ¡Empecemos
Control remoto basado en Arduino para Eskate o Hydrofoil: 5 pasos (con imágenes)
Control remoto basado en Arduino para Eskate o Hydrofoil: este instructivo le mostrará cómo construir un control remoto físico para usar con un eskate o un hydrofoil eléctrico, incluido todo el código y el hardware que necesita. Hay mucha soldadura involucrada, pero también es divertido de hacer. ¿Qué puede hacer el control remoto? Co
Convierta su control remoto IR en control remoto RF: 9 pasos (con imágenes)
Convierta su control remoto IR en control remoto RF: en el Instructable de hoy, le mostraré cómo puede usar un módulo RF genérico sin un microcontrolador, lo que eventualmente nos llevará a construir un proyecto en el que puede convertir un control remoto IR de cualquier dispositivo en un RF. Remoto. La principal ventaja de convertir un
Controle sus electrodomésticos con su control remoto de TV (control remoto por infrarrojos) con pantalla de temperatura y humedad: 9 pasos
Controle sus electrodomésticos con su control remoto de TV (control remoto por infrarrojos) con pantalla de temperatura y humedad: hola, soy Abhay y es mi primer blog sobre Instructables y hoy le mostraré cómo controlar sus electrodomésticos con el control remoto de su televisor construyendo esto. proyecto simple. gracias al laboratorio atl por el apoyo y el suministro de material
Liberación del cable del control remoto Olympus Evolt E510 (versión 2 con enfoque automático en el control remoto): 6 pasos (con imágenes)
Lanzamiento del cable del control remoto Olympus Evolt E510 (versión 2 con enfoque automático en el control remoto): Ayer construí un control remoto simple de un botón para mi Olympus E510. La mayoría de las cámaras tienen un botón disparador (el que presiona para tomar una foto) que tiene dos modos. Si se presiona suavemente el botón, la cámara se enfocará automáticamente y medirá la luz