Como acceder a un W2000 desde W10 y no morir en el intento


Puede parecer descabellado en los tiempos  que corren que aún quede alguna máquina corriendo con Windows 200, pero  por extraño que puede parecer,  en  efecto para determinados servicios legados es posible que necesitemos conectarnos a esa máquina   mediante alguna utilidad  de escritorio remoto ( por ejemplo   mediante el famoso servicio VNC , o el viejo escritorio remoto  mstsc de Windows ,las cual sonra la manera estándar  de trabajar en ambiente Windows)   quizás para actualizar algún desarrollo de nuevo servicio  .

Bien  , quizás  lo “fácil”   sea  acceder mediante el  VNC , o el  mstsc de Windows dado   que son servicios prácticamente integrados en el so,  pero quizas  en realidad lo complejo se haga cuando la máquina está aislada de internet y tratemos de copiar ficheros desde o hacia  esa máquina  a  una local que ejecute un so actual como puede ser w10 +

Si lo intenta  , lo  primero    ya sabemos deberia ser  comprobar la  conectividad  a  esa máquina desde nuestro w10 ,para lo  cual lo  primero es lanzar el comando Ipconfig en el W2000   para saber la dirección IP del servidor

Como vemos en el ejemplo, puede haber diferentes IP’s asociadas al mismo equipo  , pero al menos la ip  de servicio o producción debería devolvernos el ping desde nuestro equipo a la Ip obtenida con el comando ipconfig

 

Una vez sepamos que hay conectividad tcp/ip desde nuestro w10 al w2000   tendremos que comprobar que tiene los servicios de transferencia de ficheros iniciados

 

Si ambas circunstancias se dan  y no puede copiar ficheros desde el terminal server  o desde una unidad de red , probablemente le falle por diversas causas  que vamos a  ver para intentar dilucidar;  

 

SMB1

Si intenta conectar dispositivos que solo admiten SMBv1 o si estos dispositivos intentan conectarse con usted, es posible que reciba alguno de los siguientes mensajes de error:

No se puede conectar con los recursos compartidos de archivos porque no es seguro. Este recurso compartido requiere el protocolo SMB1 obsoleto, el cual no es seguro y podría exponer su sistema a ataques.
Su sistema requiere SMB2 o superior. Para obtener más información sobre cómo solucionar este problema, visite: https://go.microsoft.com/fwlink/?linkid=852747.

Desde luego este error anterior es el más típico, pero  existen otros errores parecidos  que tiene mucha relación con el error anterior:

  • El nombre de red especificado ya no está disponible.
  • Error no especificado 0x80004005
  • Error de sistema 64
  • El servidor especificado no puede realizar la operación solicitada.
  • Error 58

Precisamente  SMBv1 no está instalado de forma predeterminada en Windows 10 versión 1709 ni en Windows Server versión 1709 y posteriores. Tampoco  en Windows 10 Fall Creators Update y Windows Server versión 1709 (RS3) y posteriores, el protocolo de red Bloque de mensajes del servidor versión 1 (SMBv1) no está instalado de forma predeterminada, poruqe desde 2017, se utiliza SMBv2 y protocolos posteriores. Microsoft desaprobó públicamente el protocolo SMBv1 en 2014.

SMBv1 tiene el siguiente comportamiento en Windows 10 Fall Creators Update y en Windows Server versión 1709 (RS3):

  • SMBv1 ahora tiene subcaracterísticas, tanto para el cliente como para el servidor, que pueden desinstalarse por separado.
  • Windows 10 Enterprise y Windows 10 Education ya no contienen SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia.
  • Windows Server 2016 ya no contiene SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia.
  • Windows 10 Home y Windows 10 Pofessional ya no contienen SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia.
  • Windows 10 Home y Windows 10 Professional ya no contienen SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia. Si SMBv1 para cliente no se utiliza durante 15 días en total (excepto cuando el equipo está apagado), se desinstala automáticamente.
  • Las actualizaciones directas y los pilotos de Insider de Windows 10 Home y Windows 10 Professional no quitan SMBv1 automáticamente desde el inicio. Si SMBv1 para el cliente o el servidor no se utiliza durante un total de 15 días (sin incluir el tiempo durante el que el equipo está apagado), cada uno se desinstala automáticamente. 
  • Las actualizaciones directas y los pilotos de Insider de Windows 10 Enterprise y Windows 10 Education no quitan SMBv1 automáticamente. Un administrador debe decidir desinstalar SMBv1 en estos entornos administrados. En Windows 10 versión 1809 (RS5) y versiones posteriores, un administrador puede activar la eliminación automática de SMBv1 activando la característica “Eliminación automática de SMB 1.0/CIFS”.
  • Quitar automáticamente SMBv1 después de 15 días es una operación de un solo uso. Si un administrador reinstala SMBv1, no se harán más intentos para desinstalarlo.
  • Las características de los SMB versión 2.02, 2.1, 3.0, 3.02 y 3.1.1 aún son totalmente compatibles y se incluyen de forma predeterminada como parte de los archivos binarios de SMBv2.
  • Debido a que el servicio Explorador de equipos utiliza SMBv1, el servicio se desinstalará si SMBv1 para el cliente o el servidor también se desinstala. Esto significa que Explorer Network ya no puede mostrar a los equipos con Windows por medio del método de exploración de datagramas NetBIOS heredado.
  • SMBv1 aún puede reinstalarse en todas las ediciones de Windows 10 y Windows Server 2016.

Windows 10 versión 1803 (RS4) Profesional controla SMBv1 de la misma forma que la versión 1703 de Windows 10 (RS2) y Windows 10 versión 1607 (RS1). Este error se corrigió en Windows 10 versión 1809 (RS5). Todavía puede desinstalar SMBv1 manualmente. Sin embargo, Windows no desinstalará automáticamente SMBv1 después de 15 días en los siguientes escenarios:

  • Si realiza una instalación limpia de Windows 10 versión 1803.
  • Si actualiza Windows 10 versión 1607 o Windows 10 versión 1703 a Windows 10 versión 1803 directamente, sin actualizar primero a Windows 10 versión 1709.

 

Volver a activar SMBv1 en Windows 10

Con la nueva versión de Window 10 Fall Creators, microsoft a tomado la decisión de deshabilitar el protocolo SMB versión 1 ,después de todos los problemas sufridos por Wannacry,Petya… que aprovechaban una vulnerabilidad del protocolo.  Si no tenemos más remedio que habilitar SMB v1 en Windows 10  ,tendremos que abrir una consola de powershell como administrador y ejecutamos el  comando de activación de este protocolo, es decir seguiremos los siguientes pasos :

  1. Para activar el Power Shell debemos ejecutarlo como permisos de administrador
  2. Nos debe  salir una ventana de texto con el prompt   con el  PS
  3. Ejecutar la siguiente orden:  Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol
  4. Reiniciamos el sistema para aplicar los cambios
  5. En   teoría   ya deberíamos poder  acceder a los recursos compartidos.

Podemos volver a deshabilitar SMB v1 en cualquier momento con : Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

 

 

Windows 10 “el servicio de inicio de sesión de la red no se ha iniciado” y error 1068

Si a pesar de haber realizado el paso anterior cuando se intente conectar a una unidad de red aparece el error “el servicio de inicio de sesión de la red no se ha iniciado” lo  primero es averiguar los permisos

Si da igual con que usuario entre y  siempre sale ese error, probaremos   usando el usuario administrador.

)

 

Si entrando con el usuario administrador va buscando el problema, intentando cambiar el nombre del equipo (pero aparece en gris y sale un mensaje de que el servicio de “estación de trabajo no funciona” y no deja cambiar el nombre del equipo, nos deberíamos   ir a ver los servicios para intentar activar el servicio “estación de trabajo

Si nos aparece  el error 1068  esto  significa “No se puede iniciar el servicio o grupo de dependencia”.

El servicio Estación de trabajo tiene dos componentes que dependen de él

  • Los servicios Net Logon
  •  Configuración de Escritorio remoto.

Es posible que el servicio Net Logon tenga algún problema. Accede a la consola de servicios, desde la cuenta administrador y compruebe el servicio

Resolucion de problemas al ejecutar archivos con extension .ica


 Citrix es  una famosa  empresa  fundada en 1989 por el antiguo desarrollador de IBM Ed Iacobucci   y que acogio a muchos de los fundadores originales que habían participado en el proyecto OS/2 de IBM

Es ademas  una de las empresas pioneras, junto a Vmware, en virtualización de escritorios y aplicaciones . Ademas ha estado  muy unida a Microsoft desde sus orígenes.

Dispone de 3 familias de productos: 

  • Citrix Delivery Center (XenApp, XenDesktop, XenServer y Netscaler)
  •  Citrix Cloud Center: Permite crear nubes híbridas con soluciones en la nube,
  • Citrix Online Services: Que está unido a la aplicación GoToMeeting (herramienta videoconferencias) 

Citrix XenDesktop es  su producto estrella y en la versión 7 une en una suite XenApp (Aplicaciones) y XenDesktop (VDI).   Los componentes básicos de un sistema de este tipo   son los siguintes :

  • RECEIVER : Citrix Receiver el software cliente necesario para que se puedan entregar aplicaciones o escritorios . Es un elemento multiplataforma y multidispositivo, ya que existen clientes para Windows, Linux, Mac, Android o IOS entre otros.En este post vamos a hablar precisamente de los  problemas que puede dar
  • STOREFRONT :se comporta, como su propio nombre indica, como una tienda online que pone a disposición de los clientes aplicaciones y escritorios.  Básicamente es el frontal web que los usuarios ven y donde introducen sus credenciales.  Si surgen modificaciones, se actualiza automáticamente (se puede comprobar pulsando F5 en el navegador)
  • DELIVERY CONTROLLER : gestiona los accesos de los usuarios, optimiza las conexiones, hace de intermediario entre el resto de componentes y proporciona los servicios necesarios para la creación de máquinas.  Debe existir al menos un DC en la infraestructura, siendo recomendado tener más de uno (redundancia), ya que marcará la capacidad de gestionar más usuarios y aplicaciones.  Un DC saturado (normalmente CPU) puede provocar problemas en la plataforma y la base de datos.
  • BBDD: Tradicionalmente se monta sobre SQL Server (no todos los componentes admiten SQL Express) . Existen 3 bases de datos en toda instalación XenApp / XenDesktop:
    • Site: Configuración Site en ejecución y estado
    • Configuration Logging: Registro de la actividad administrativa
    • Monitoring: Almacena los datos de Director (inicio sesión y conexión).Sólo los DCs se conectan con la Base de Datos
  •  STUDIO : es la consola de administración tanto para escritorios como para aplicaciones .En Studio se pueden gestionar otros componentes como las licencias o storefront. .Adicionalmente, desde Studio se gestiona la publicación de aplicaciones y escritorios.  También se gestionan las sesiones conectadas en vivo y se pueden lanzar acciones sobre ellas.
  •  LICENSE SERVER  Componente que gestiona las licencias de los productos, al que consulta Citrix Delivery Controller para validar las sesiones . Consola web, que puede gestionarse desde Citrix Studio
  •  DIRECTOR : Es un componente WEB que permite monitorizar en tiempo real sesiones de Citrix.  Es posible extraer informes históricos de tiempos de sesión de un grupo o usuario.
  •  VIRTUAL DELIVERY AGENT  o VDA es el agente necesario en la infraestructura servidora o clientes de escritorio para que exista la comunicación con los Delivery Controller y poder ofrecer esos recursos (aplicaciones o VDI) a los usuarios finales.  En un servidor Windows permite que varios usuarios se conecten a la vez. En un escritorio Windows permite la conexión de un solo usuario.
  •  ACTIVE DIRECTORY:aunque no es un componente directo en la instalación de Citrix, sí se convierte en un requisito.  En directorio activo se configuran los usuarios y contraseñas que tendrán acceso. Así como las GPOs necesarias para implementar con seguridad y optimización la plataforma.
  • OTROS COMPONENTES 
    • Netscaler: Cortafuegos, balanceo de carga, entrega de aplicaciones a través de la red y optimización de aplicaciones 
    • Branch Repeater: Optimiza la entrega de las aplicaciones a los usuarios ubicados en sucursales (Appliance) 
    • EdgeSight: Monitoriza el rendimiento de las aplicaciones (integrado en Director) 
    • Sharefile: Herramienta para compartir archivos de forma segura 
    • Citrix WEM: Gestor de directivas que sustituye ciertas funciones de Active Directory para acelerar el logon. 
    • Netscaler Insight Center: Dispositivo virtual para el seguimiento, análisis y generación de informes sobre aplicaciones.
    • etc

 

Citrix Virtual Apps es un software de virtualización de aplicaciones producido por la famosa empresa  Citrix Systems   que permite acceder a las aplicaciones de Windows a través de dispositivos individuales desde un servidor compartido o un sistema en la nube  (siendo lo mas típico en un ambiente empresarial que estas estén disponibles a través de un servicio VPN)

Dentro de esta estrategia propietarias  del fabricante Citrix , los archivos con con las extensiónes  .ica  de  Independent Computing Architectureson lo que los convierte  literalmente  en archivos de configuración de  siendo  exclusivamente  utilizados precisamente por  esos  programas de Citrix para invocarse en remoto ayudándose precisamente de la configuración que se haya hecho en estos archivos  que se descargan en local desde el portal empresarial .

Estos ficheros ,de hecho, se pueden abrir con un editor de texto ASCII para ver así su contenido, aunqu,  en realidad tiene poco sentido verlos  pues sólo se pueden iniciar en el otro extremo  del cloud  con una de las aplicaciones compatibles de Citrix.

Por tanto , precisamente mediante estos archivos ICA se lanzan las aplicaciones remotamente a utilizando Citrix XenClient , el programa Citrix XenApp o sobre todo  el conocido programa  Citrix Receiver.

Si tiene problemas a la hora de ejecutar algunos de estos ficheros .ica  lanzados  desde un ambiente corporativo o empresarial  (  como por ejemplo que no se pueden abrir las aplicaciones , solo deja guardar los archivos ica ,aparece una ventana que se cierrra en blanco, etc. ),  puede intentar  seguir los siguientes pasos para intentar ejecutar estas aplicaciones virtualizadas:

 

Paso 1: Descargue el nuevo cliente de Citrix

A fecha de agosto de 2018, Citrix Workspace app  es la la sustitutade   Citrix Receiver. Por lo tanto la aplicación Citrix Workspace App es el nuevo cliente de Citrix que actúa de forma similar a Citrix Receiver y es totalmente retrocompatible (o al menos en eso dice el fabricante)   con la infraestructura Citrix de su organización. La aplicación Citrix Workspace App proporciona las capacidades completas de Citrix Receiver, así como nuevas capacidades basadas en la implementación de Citrix de su organización razon por la que el fabricante Citrix  recomienda que se descargue la aplicación Citrix Workspace.

La aplicación Citrix Workspace es el software de cliente fácil de instalar que ofrece un acceso seguro y sin inconvenientes a todo lo necesario para hacer todo lo que quiera. Con esta descarga gratuita, puede acceder de forma fácil y segura a todas las aplicaciones, escritorios y datos desde cualquier dispositivo, incluyendo teléfonos inteligentes, tabletas, PCs y Macs

.Descarga para Windows


La aplicación Citrix Workspace sustituye de forma automática muchas versiones anteriores de Citrix Receiver y los complementos en línea de Citrix; sin embargo, deben eliminarse manualmente algunas versiones antes de instalar la aplicación Citrix Workspace , siendo lo mejor que se haga con la utilidad especifica. de ReceiverCleanupUtility

Paso 2: Acceso desde el VPN a la url de su organización

En al mayoria de lso casos  necesitara  abrir una URL adecuada en su navegador para autenticar su espacio de trabajo digital Citrix con todas sus aplicaciones, escritorios y datos. En ocasiones incluso , puede que necesite configurar su cuenta indicando su correo electrónico o una dirección de servidor para autenticar con la aplicación Workspace para usar aplicaciones y escritorios virtuales. Puede preguntar a su administrador de sistemas qué pasos seguir en su situación pues no solo necesitara  esa url : tambien necesitara la instalación del cliente Citrix en la justa version que haya decidido su organizacion.

Paso 4-Fuerce la ejecución de los achivos

La aplicación Citrix Workspace App es un nuevo cliente de Citrix que actúa de forma similar a Citrix Receiver y es totalmente retrocompatible con la infraestructura Citrix de su organización  proporcionando las capacidades completas de Citrix Receiver, así como nuevas capacidades basadas en la implementación de Citrix de su organización.

Una vez instalado el cliente , cuando acceda desde su portal a la apliacion virualizada , haga clic derecho en el archivo ICA para abrir el menú contextual del archivo.Luego haga clic en la opción “Abrir con” y una lista de programas se abrirá.

Desplázese y haga clic en “Citrix XenApp” o “Citrix XenClient” :el programa Citrix debería  abrirse y lanzará la aplicación remota definida en el archivo ICA.

 

 

Paso 5; Instale  versiones anteriores

Puede que no siempre   estén al dia  en su organizacion con la ultima  version de Citrix en el lado servidor  , por lo que deberá  encontrar versiones anteriores de Receiver en el sitio web de descargas de Citrix.  por lo que debería confirmar con su administrador de sistemas que necesita una versión anterior de Citrix Receiver antes de continuar.

Antes de proceder,primero  debería desistalar  todo el sw de Citrix con  la herramientas especifica : ReceiverCleanupUtility

Una vez desistalado  todo si su aplicación  Citrix  no le funciona   con la  ultima version del cliente  entonces intente descargar alguna version anterior , por ejemplo Receiver 4.9 LTSR for Windows desde https://www.citrix.es/downloads/citrix-receiver/legacy-receiver-for-windows/receiver-for-windows-49LTSR.html

Instalar este cliente es bien sencillo  pues basta descargarlo  yen seguida   ya debería comenzar el asistente de  instalación 

Inmediatamente   simplemente le daremos al botón “Iniciar”

 

 

Una vez leída la licencia deberíamos darla a “Siguiente”

 

 

 

Finalmente  aparecerá la ventana de instalación completada junto al botón de Agregar cuenta , el cual la mayoría de los casos es completamente  innecesario

 

 

Como ve querido lector ,en el caso de tener el servicio  disponible si nos falla probablemente se deba a la version del cliente Citrix que tengamos instalados. Citrix  por su parte , si todo lo demas fallo , reconoce ciertos errores  a los que da  ademas un modo de solucionarlos   en la siguiente url   https://docs.citrix.com/es-es/citrix-workspace-app-for-linux/troubleshooting.html

 

Ingeniería inversa con java


Si alguna vez  ha tenido un proyecto java compilado en forma de fichero .class  o .jar   y necesita conocer como esta construido el código para  hacer ingeniería inversa o simplemente para investigar su  funcionamiento,  la herramienta que vamos a ver, lo hace de maravilla ! y además es gratuita!, veamos en detalle en que consiste.

En  efecto el “proyecto Java Decompiler” tiene como objetivo desarrollar herramientas para descompilar y analizar el “código de bytes” de Java 5 y las versiones posteriores siendo  JD-GUI la utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos “.class”.

Con esta herramienta puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos Incluso puede integrarse  con el IDE de Eclipse  gracias a  JD-Eclipse, que  es un complemento para la plataforma Eclipse.

La herramienta le permite mostrar todas las fuentes Java durante su proceso de depuración, incluso si no las tiene todas. JD-Core es una biblioteca que reconstruye el código fuente de Java de uno o más archivos “.class”. JD-Core se puede usar para recuperar el código fuente perdido y explorar la fuente de las bibliotecas de tiempo de ejecución de Java.

Se admiten las nuevas características de Java 5, como anotaciones, genéricos o tipo “enum”. JD-GUI y JD-Eclipse incluyen la biblioteca JD-Core. JD-Core, JD-GUI y JD-Eclipse son proyectos de código abierto publicados bajo la licencia GPLv3.

Veamos un poco algo sobre la historia de esta  interesante  herramienta:

  • En 2011, Alex Kosinsky inició una variante de JD-Eclipse que admite la alineación del código descompilado por los números de línea de los originales, que a menudo se incluyen en el Bytecode original como información de depuración.
  • En 2012, una rama de JDEclipse-Realign de Martin “Mchr3k” Robertson  extendió la funcionalidad mediante el control de descompilación manual y el soporte para Eclipse 4.2 (Juno).
  • Y llegamos a la actualidad    D (Java Decompiler) ,  es un decompilador para el lenguaje de programación Java.Se proporciona como una herramienta GUI, así como en forma de complementos para los entornos de desarrollo integrado Eclipse (JD-Eclipse) e IntelliJ IDEA (JD-IntelliJ).Es compatible con la mayoría de las versiones de Java desde 1.1.8 hasta 1.7.0, así como JRockit 90_150, Jikes 1.2.2, Eclipse Java Compiler y Apache Harmony y, por lo tanto, a menudo se utiliza donde anteriormente se operaba el popular JAD

Java decompiler

Instalación

Se puede descargar directamente desde  su pagina de Github

La versión ultima   disponibles  es la 1.5.2

Esta versión incluye los siguientes cambios:

  • Actualizando JD-Core a 1.0.3
  • Adición de soporte de archivos AAR (archivo de Android)
  • Adición de soporte de archivos JMOD (módulo Java 9)

Este   es el enlace para descargar el  jd-gui-windows-1.5.2.zip   que es la versión  que   funciona sobre windows.

Descomprimimos el  ficherpo zip ( https://github.com/java-decompiler/jd-gui/releases/download/v1.5.2/jd-gui-windows-1.5.2.zip)

Finamente lanzaremos la aplicación  jd-gui.exe

JD-GUI es una utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos “.class”  y también  “.jar”  . Puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos.

Existe JD-Eclipse es un complemento para la plataforma Eclipse. Le permite mostrar todas las fuentes Java durante su proceso de depuración, incluso si no las tiene todas.

JD-GUI es una utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos “.class”. Puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos.

Mas  información en su sitio  http://java-decompiler.github.io/

Cómo enviar correos de forma masiva gratis y sin limite


Si alguna vez  se  ha preguntado cómo enviar correos electrónicos de forma masiva  y prácticamente  sin límite  sin caer en spam , o lo que es lo mismo,  mandar emails,  newsletter o boletines a  destinatarios que haya recopilado con el consentimiento de esas personas, así como  a listas de correos, sin necesidad de ir enviándolos uno a uno,   en  este post   vamos  a ver como gracias al veterano servicio de calidad de  Mailrelay con más de 15 años online, usado  tanto de forma personal como profesional ,  es en realidad una  tarea bastante sencilla  hacerlo y todo ello sin coste alguno   usando este servicio web    que además  cuenta   prácticamente  una capacidad ilimitada (es decir 75.000 emails al mes, y gestión de hasta 15.000 suscriptores).  

Quizás  lo más  interesante de destacar es que el servicio de Mailrelay al contrario de otros servicios , es   gratuito  sin publicidad en las newsletters  pues  otros servicios  similares   ponen muchas trabas, y se aprovechan insertando publicidad , incluso en cuentas de pago básicas en algunos casos,   y además no tiene  límite de envío diario, no tiene  limitaciones de funcionalidades y ofrecen  soporte gratuito  ¿Por qué gastar esfuerzos de marketing en publicitar o r anunciar otra empresa?

En efecto   gracias a Mailrelay es posible  crear newsletter, enviar mailings, gestionar listas de suscriptores y analizar  campañas de email de   una forma  gratuita  y más ahora  que    ha sido actualizada  y mejorada  en  nueva version 3 que como vamos    ver en este video  hace  que sea realmente sencillo lanzar este tipo de e-mails

 

Como vemos  en el video esta nueva version V3  de Mailrelay cuenta  nuevo dashboard principal con menú superior y resumen de las últimas campañas,nuevo y potente editor drag & drop (que facilita la creación de newsletters, con bloques para redes sociales, vídeo, texto, grupos de imágenes, columnas, etc)  ,estadísticas mejoradas con más información y en tiempo real,posibilidad de segmentación por grupos de forma tradicional o utilizando los nuevos segmentos dinámicos ,automatismos mejorados y ampliados en base a registros, click o apertura de boletín , etc

De hecho  más de 200.000 clientes en todo el mundo incluyendo grandes empresas   lo están usando como  puede apreciarse  en el gráfico de abajo

 

Veamos  a continuación cómo realizar una  sencilla campaña con  Mailrelay   ,donde como  vamos a ver,  no es demasiado  difícil  pues la operativa se  reduce a la importación de   los contactos, crear una newsletter, enviarlas   y `por supuesto realizar   un seguimiento estadístico de todo,

Bien  veamos  como hacerlo  usando esta  veterana herramienta.

 

 

1- Importación de  contactos y creación de  lista de suscriptores

Suponiendo que tengamos cuenta gratuita con  Mailrelay , lo primero que tenemos que hacer es crear la «ubicación» donde vamos a incluir » nuestros contactos.Tenemos dos opciones bien diferenciadas: Grupos  y Segmentos .( los segmentos se diferencia porque los contactos que hay en ellos deben cumplir una condición y son dinámicos, por lo que su número de suscriptores es variable.)  Nos  iremos al menú «suscriptores» -> «grupos» y en esta pantalla haremos clic en el botón «añadir», para crear un nuevo grupo.

Crear un grupo es muy sencillo pues solo tenemos dos valores posibles para darle: Nombre  y Descripción ( !ojo pues esta es  solo un valor interno,  para que podamos organizar nuestra lista de contactos”) .Añadiremos  un nombre al grupo y haremos click en «crear grupo».

Una vez hemos hecho clic en crear grupo veremos esta pantalla:

mailrelay email marketing tutorial v3

Ahora realizaremos una nueva importación, haciendo click en el botón «nueva importación» que podemos ver a continuación:

mailrelay email marketing tutorial v3

En la siguiente pantalla, vamos a ver las opciones de importación de las que disponemos actualmente Veamos las opciones:

  1.  Copiar y pegar
  2.  Subir Archivos > importar de un txt o CSV esta es la que usaremos ahora
  3.  Importar desde Mailchimp >

Al  marcar la opción, aparece un recuadro donde podemos arrastrar el fichero a subir. Puede importar un fichero CSV o TXT (también ha de estar separado por comas).En realidad no importa demasiado cuántos valores tengamos, pero debemos respetar que solo tengamos un contacto por línea, y que los campos estén separados por comas.

Bien, una vez tengamos ese fichero, lo que haremos será arrastrarlo a la casilla donde pone «arrastra el archivo». Una vez se haya subido el fichero, vamos a ver una pantalla bastante similar a la siguiente:

Como vemos en la imagen hay tres  puntos clave:

  1.  Campos y columnas: iremos usando  los desplegables y nos ayudaremos de la vista previa de los datos. En los desplegables de campo  hay campos de tipo «incorporado», campos que existen por defecto en el sistema, como nombre, dirección, ciudad, etc. No es necesario que los cree, simplemente importe los datos en ellos.
  2.  Importar en los grupos. Aquí elegiremos el grupo al que queremos importar los contactos (, solo tenemos que hacer click y seleccionarlo) 
  3.  Opciones adicionales. Por último podemos elegir qué hacer con los contactos existentes, si bien ignorarlos (los saltamos y no hacemos nada) o los sobreescribimos

Ahora solo queda hacer click en «importar» y se realizará la importación  del contenido del fichero  csv a la bbdd del servicio de Mailrelay .Una vez finaliza la importación de contactos veremos un pequeño resumen,con  el listado de emails importados, y el resultado, por si hubiera habido algún error o problema con el email en cuestión..

 

2· Crear una newsletter con el editor drag & drop de Mailrelay

Esta  nueva versión de Mailrelay incluye varias opciones para crear nuestros boletines, opción que  podemos ver en el menú «Boletines» –>«Boletines».

Aquí, si hacemos click en el botón «Añadir» como en los menús anteriores, veremos una pantalla  con cuatro opciones de edición de boletines:

  1.  Crear boletín. Con esta opción haremos uso del editor drag & drop para crear nuestro diseño de newsletter de forma fácil y rápida
  2.  Pegar código. Si disponemos de un diseño de boletín en html, podemos importarlo pegándolo directamente en un editor clásico
  3.  Subir archivo zip. Funciona igual que la opción anterior, pero importando directamente
  4.  Importar desde una URL. Otra función similar, en esta ocasión importaremos desde una URL. Importante: las páginas web hacen uso de CSS, Javascript externos, menús, etc. Por lo que no se importarán bien, o no se enviarán bien como un email. No importes la URL de una web
Elegimos la opción «crear boletín», y lo primero que tendremos que hacer será rellenar    la típica información que enviaríamos en un e-mail:
  1.  Asunto. El asunto de nuestro email, el subject o título, es lo que verán los contactos al recibir en su cliente de correo.
  2.  Previsualizar texto. Es el texto de la precabecera, un pequeño texto que aparece después del asunto en algunos clientes de correo.
  3.  Remitente. Aquí pondremos el email de remitente que vamos a emplear, por defecto podemos elegir el email con el que hemos creado la cuenta.
  4.  Grupos. Y el grupo que hemos creado lo seleccionaremos aquí.

Cuando ya lo tenemos todo listo, haremos click en el botón «Siguiente» de la esquina inferior derecha y  pasaremos a una pantalla donde podremos seleccionar una plantilla de base . Podemos elegir la que queramos y haremos  click de nuevo en «siguiente».

► El editor drag & drop para crear newsletters

Este editor es muy sencillo de utilizar pues tenemos dos espacios bien diferenciados, a la izquierda la visualización de la plantilla.Lo  destacado es que si pasa sobre cualquier elemento verá que se superpone un menú flotante que nos permite: Mover el elemento, Editarlo,Duplicarlo o eliminarlo. Asimismo en las imágenes verá también la opción de «buscar imagen» para sustituir la imagen por defecto por una de las que tenga en su equipo.

Bien,  en la parte  derecha veremos esto:

opciones del editor de Mailrelay

Como vemos ,los elementos que tenemos disponibles son:

  1.  Texto. Para insertar un cuadro de texto, donde poder escribir, insertar enlaces, y en general darle el formato que queramos.Los bloques de texto funcionan igual que las imágenes, solo tiene que arrastrar el bloque en cuestión a la zona donde quieras ubicarlo.Recuerde, una vez arrastrado el bloque de texto, hacemos clic en «editar»:Tenemos tres opciones:
    1.  Contenido. Este será el contenido de texto del bloque
    2.  Diseño. Valores como tipo de fuente, tamaño, alineación, etc
    3.  Configuración. Número de columnas
  2.  Imagen. Nos permite insertar una imagen.Si ya tenemos un elemento de imagen solo tenemos que hacer click en el botón «buscar imagen», y si no, primero arrastraremos un elemento de tipo «imagen»a la zona de edición.Al hacer click en «buscar imagen» y en la caja donde pone «Drop files here to upload»?Aquí podremos pinchar y elegir la imagen de nuestro equipo, o arrastrar la imagen, con lo cual la veremos aparecer.Una vez hecho eso, solo tenemos que hacer click en la imagen que queremos utilizar, se situará en la parte izquierda, y podremos hacer click en el botón «usar archivo», lo que hará que la imagen aparezca en el editor de esta forma:
  3.  Imagen con leyenda. Si tenemos que poner una imagen que incluya una leyenda.Para empezar solo tenemos que arrastrar este bloque a donde queramos posicionarlo.Elegiremos
    1. Número de imágenes. Elegiremos  las imágenes que deseemos incorporar
    2.  Posición de las columnas. Podemos tenerlas una al lado de otra, o una encima de la otra
    3.  Posición de la leyenda. Esto hace referencia a la posición del texto, arriba de la imagen, o debajo
  4.  Grupo de imágenes. Para insertar más de una imagen en nuestra newsletter
  5.  Botones de redes sociales
  6.  Divisor
  7. Vídeo

Con estas opciones tendremos más que suficiente para crear un buen diseño para nuestro email.

Estos elementos los podemos arrastrar a la parte izquierda para crear elementos de forma fácil, como vemos en la siguiente imagen:

 

► Añadir el nombre del contacto

Antes hemos subido nuestra lista de contactos incluyendo el nombre, así que quizás  se pregunte ¿cómo incluimos el nombre en la newsletter? Pues editaremos el bloque de texto donde queremos incluir el nombre, posicionamos el cursor del ratón donde queremos añadir el nombre y utilizamos el desplegable «Variables» , En el mismo bajamos hasta encontrar la sección «Suscriptor» y elegimos la opción «Nombre» y ya cuando envíe la newsletter esta variable se sustituirá por el nombre del contacto en cuestión.

► Añadir  el enlace de baja

Al igual que en el caso anterior, vamos a utilizar el editor, pero en este caso, la variable que seleccionaremos será una de las opciones de «URLs de baja»:

editor de newsletter mailrelay enlace de baja

Tenemos varias opciones aquí:

  1.  URL de baja normal. Cuando el suscriptor hace click, se da de baja inmediatamente
  2.  URL de baja con confirmación por email. Cuando el suscriptor hace click recibe un email de baja en el que ha de hacer click para confirmar
  3.  URL de baja de grupo. Solo da de baja al suscriptor en el grupo en el que ha realizado el envío

Si hace click en esta opción, verá que inserta en el editor algo como esto:{{ unsubscribe_url }}

Y ya está. Ahora que tenemos la newsletter lista y preparada, la guardamos utilizando el botón de la esquina inferior derecha:

guardar plantilla de newsletter

 

3· Enviar una newsletter 

Vamos a entrar en la última parte  realizando el envío del boletín, así que lo  primero que tenemos que hacer es volver al menú «Boletines»– «Boletines», y ahi veremos un listado de los boletines ,.

Ahora miremos un poco más a la derecha:verás por cada línea, una serie de iconos como estos:

enviar newsletter gratis con Mailrelay

De izquierda a derecha esos enlaces  tienen esta  funcionalidad:

  1.  Enviar newsletter ( no esta por casualidad en primer lugar) ,Al hacer click en el mismo veremos una pantalla de errores posibles.Lo bueno, es que si hace click en los enlaces, puede ver cómo se deben realizar estas configuraciones.
  2.  Duplicar
  3.  Mostrar (visualizar el boletín)
  4.  Editar
  5.  Borrar

 

enviar newsletter gratis con mailrelay

 

Si seguimos un  poco más abajo tenemos otras dos opciones más:

  1.  Enviar boletín a un grupo o segmento. Opción con la que podríamos enviar el boletín al grupo donde hemos importado los suscriptores.
  2.  Enviar un boletín de prueba. De esta forma nos podemos enviar una prueba de boletín, para ver cómo queda la newsletter en nuestro cliente de correo
  3. Y para terminar  como tercer punto podemos ver que es posible programar el envío para una fecha determinada o enviar la newsletter en ese momento

Bueno, en todo caso  pulsando el primer botón de enviar newsletter , ya tendremos nuestro mailing enviado por lo que sólo nos queda comprobar que efectivamente ya se ha enviado  asi como lo datos estadisticos.

 

4- Las estadísticas del envío 

Es interesante cerciorarse que en efecto el envío de la newsletter se ja realizado con éxito , así que nos  iremos al menú «informes» – «boletines enviados». Aquí vemos una lista de los boletines enviados:

listado de mailings enviados

Es importante fijarse  que el estado indique  «completado», ya que en otro caso indicaría si está en proceso o cualquier posible error.

También en esta pantalla de boletines enviados podemos ver un pequeño resumen, de emails enviados, visualizaciones y clicks, aunque de todas formas si queremos ver el detalle del envío podemos hacer click en el asunto de la newsletter e iremos a una pantalla con más detalle:

estadísticas de mailing

Como  podemos ver en esta pantalla a modo de  resumen rápido y general podemos  ver información rápida de: Emails entregados, cantidad y porcentaje, Emails rebotados, Visualizaciones y porcentaje (es posible que un mismo suscriptor abra varias veces el email) y  Clicks y porcentaje

Pero ademas fíjese que tenemos más menús, al lado de la flecha: Emails enviados, Visualizaciones, Clicks, Baja y  Reenviado. En estos menús tenemos mucha más información, como los contactos que han abierto, los que han hecho click, el mapa de click,geolocalización, etc .

Si le interesa en su blog  puede ampliar mas información al respecto .

 

 

 

Creemos  que para una primera toma de contacto, ya hemos visto los aspectos más importantes de lo que se puede hacer con una nueva cuenta de Mailrelay en su nueva version  V3  ,  que como decíamos en la introducción, es uno de  las pocas servicios gratuitos ,·que no tiene límite diario de envío, y  que  como hemos visto , incluye  una ingente  número de funcionalidades  extra  .

Además  un aspecto que no debemos  desdeñar de la  funcionalidad de Mailrelay ,  es que  no incluyen publicidad en sus newsletters, pues la verdad suena un poco anacrónico que para  intentar informar de algún producto nuevo , una novedad  o lo  que sea que queramos enviar a nuestra  base de clientes  o usuarios   tengamos  que incluir publicidad  de terceros ¿a  que sonaría bastante raro verdad?  

 

Controlando placas de IoT desde javascript


Node.js framework  fue  creado por Bocoup para controlar placas de desarrollo en una configuración de host-cliente   aunque   realmente su uso mayoritario sea como plataforma web   siendo    Johnny-Five la plataforma open  source de Robótica e IoT de JavaScript 

En realidad existen diferentes  plataformas donde se puede ejecutar el programa Johnny-Five :

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Johnny-Five como vemos hacer un énfasis especial en la robótica, pero tambien puede hacer muchas cosas diferentes con el software.De hecho ha existido durante hacer  más tiempo que la mayoría de los marcos de JavaScript para hardware . Ademas iene una API clara  y “fresca” ,ambas cosas ideales para los principiantes de hardware.

Lanzado porBocoup en 2012, Johnny-Five esta mantenido por una comunidad de desarrolladores de software apasionados e ingenieros de hardware. De hecho más de 75 desarrolladores han hecho contribuciones para construir un ecosistema robusto, extensible y muy versatil.

 

Hola Mundo! 

A los microcontroladores y las plataformas SoC nos gusta decir “Hola mundo” con un simple LED parpadeante, así  que veamos en primer lugar un ejemplo como lo hariamos  usando el Ide clásico  de Arduino

Como vemos en la imagen ,conectaremos un led entre el pin 13  y masa , respetando la polaridad (el ánodo al pin13 y el cátodo o pin corto a masa )

Para  hacer destellear el citado led,  estos son los pasos básicos  que tenemos que seguir en nuestro sketch  programandolo desde el IDE de Arduino:

  1. Configurar el pin 13 (con LED incorporado) como una SALIDA
  2. Establecer el pin 13 ALTO para encender el LED
  3. Esperamos 500 ms (medio segundo)
  4. Establecer el pin 13 BAJO para apagar el LED

Y este es el código completo para ejecutar desde el Ide de Arduino:

void setup() {
pinMode(13, OUTPUT);    
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);  
delay(500);
}

Y ahora vamos a ver el mismo ejemplo , pero ejecutandolo en Javascript por medio de node-js,

Desgraciadamente  si usamos un Arduino o alguno de sus variantes (Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,)   necesitaremos que el programa JavaScript se ejecute en una máquina host que ejecute Node.js. de modo que el programa transmitirá instrucciones básicas de E / S a la placa a través de una interfaz  serie USB , que actuara como un cliente ligero .

El método host-cliente implica la comunicación a través de una API común entre el host y el cliente. El marco Node.js usado con Arduino y placas similares , Johnny-Five, se comunica (de forma predeterminada) con las placas  utilizando un protocolo llamado Firmata, protocolo que permite que los hosts (computadoras) y los clientes (microcontroladores) intercambien mensajes de ida y vuelta en un formato basado en mensajes MIDI. El protocolo Firmata especifica cómo deben ser esos mensajes de comando y datos. La implementación de Firmata de Arduino proporciona el firmware real que puede poner en su tablero para hacer que “hable” Firmata. Toma la forma de un boceto de Arduino que sube al tablero.

Firmata es lo suficientemente popular como para que los bocetos de Firmata que necesita vengan empaquetados con el IDE de Arduino asi que bastara con subir este a Arduino una única vez  ya que  el código javascript  correra en el host usando node.js.

Puede seguir estos pasos para cargar el interfaz correcto de Firmata en su Arduino  para que se pueda utilizar como cliente en una configuración de host-cliente:

Resumidamente estos son los pasos previos para ejecutar el   mismo  ejemplo del led parpadeante  que hemos visto pero   en  javascript en una placa Arduino;

  • En primer lugar  conectar  su Arduino  mediante USB a  su ordenador
  • Lanzar el IDE de Arduino.
  • Asegurarse que esta configurada la version de su placa,  así como el puerto COM  virtual al que esta conectado
  • Acceda al menú Archivo> Ejemplos> Firmata
  • Seleccione StandardFirmataPlus de la lista y despliegue este sw sobre su Arduino

  • Ahora Instale Node.js   en su pc . Funciona  con ultima version 11.3.0  de  64 bit que incluye  npm 6.4 (no olvidar de chequear que se instalen  otros componentes )Este es el link de descarga https://nodejs.org/en/download/ 
  • En la instalación de Node.js, repetimo  no debemos olvidar de chequear que se instalen  otros componentes  pues  con ellos se   instalara automáticamente
    • Python 2.7.3 (http://www.python.org/getit/releases/2.7.3/)
    • Visual Studio Express 2010 de 32 bits (con  las dependencias de C ++)
    • El comando npm
    • Alternativamente si dispusiésemos de npm podríamos instalar ambos entornos  con  npm --add-python-to-path install --global --production windows-build-tools
  • Este pasos anterior ( instalacion de componentes ) es  innecesario  si chequeamos en la instalación  de node.js  pues se instalaran  esos componentes  automáticamente
  • Ahora instalar node-gyp  medianete  el comando  npm install -g node-gyp (esto instalará node-gyp globalmente)                          
  • Ya puede  crear su primer proyecto Johnny-Five, por lo que en primer lugar cree un directorio para él e instale el paquete framework npm, como se muestra en la siguiente lista:
    • < mkdir hello-world
    • < cd hello-world
    • < npm install johnny-five
  • Ejecute  el comando “npm install johnny-five” desde la carpeta del proyecto
  • Ya por fin podemos crear el fichero javascript  con su editor de texto  que contendrá el código en javascript  . 

Realmente estos son los pasos  que tenemos que seguir:

  1. Requerir el paquete johnny-five
  2. Inicializar un nuevo objeto Board que represente a su placa .
  3. Esperar a que el tablero dispare el evento listo
  4. Crear una instancia de un objeto LED en el pin 13 (el pin LED incorporado de Uno)
  5.  Hacer que el LED parpadee cada 500 ms

Este es el código en js :


const five = require(‘johnny-five’);
const board = new five.Board();
board.on(‘ready’, () => {
 const led = new five.Led(13);
   led.blink(500);
});


Guarde el archivo como hello-world.js  y  conecte su Arduino  a un puerto USB en su ordenador  si aún no está conectado.

En una terminal  de windows  vaya al directorio del proyecto y ejecute este comando:

<node hello-world.js


Verá una salida como la siguiente en su terminal ejecutando hello-world.js en una terminal

 

 

Si el LED incorporado parpadea ,!enhorabuena !  !acaba de controlar una placa Arduino con JavaScript!  ¿a que es realmente sencillo?.

Aunque en el caso de la familia Arduino tiene la innegable penalización de necesitar un host para operar , la ventajas de este  modelo son evidentes pues no tenemos que estar constantemente compilando  y  subiendo el sketch con el ide de Arduino ya que el programa corre en host . Ademas  podemos usar un simple editor de texto para cambiar el código en javascript fácilmente

Asimismo el lenguaje javascript ha ido evolucionando hasta un ritmo que no podemos imaginar   incluyendo muchas características que no son soportadas de forma directa desde Arduino

Por ultimo mencionar la autentica potabilidad del código , pues el código que hemos visto en el ejemplo podremos usarlos  en múltiples plataformas  tan diferentes como Raspberry pi, Intel Edison , etc usando siempre el mismo código fuente aun siendo soportado por placas muy diferentes ¿ a que es interesante?

 

 

Placas soportadas

Johnny-Five ha sido probado con una variedad de tableros compatibles con Arduino . 

Para los proyectos que no están basados ​​en Arduino, los complementos de IO específicos de la plataforma están disponibles. Los complementos IO permiten que el código Johnny-Five se comunique con cualquier hardware en cualquier idioma que la plataforma hable.

Como comentábamos   existen diferentes  formas de   ejecutar  el programa Johnny-Five  segun la placa:

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2) ,   Es  facil adivinar qeu este es el mabiente ideal   pues dentro de la placa se oprtan tanto el host como el cliente  por lo qeu no ncesitamos conectarnos con otro dispositivo
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente.: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Veamos  ahora cada  caso en concreto;

Arduino Uno 

Ambiente 

  • Firmware / Runtime: : StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

SparkFun RedBoard 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

ping

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

 

Arduino leonardo 

Ambiente 

  • Firmware / Runtime:  StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Mega 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

Arduino Fio 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Micro 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Nano 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Pro Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
ping

BotBoarduino 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

chipkit uno32 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire
Paso a paso
Serial / UART
Dac no
ping

Spider Robot Controller 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere  tetehering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

DFRobot Romeo 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Teensy 3 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping

BeagleBone Black 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

CHIP 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

Blend Micro v1.0 

Ambiente 

  • Complemento IO: BlendMicro-IO ( instrucciones adicionales )
  • Firmware / Runtime: BLEFirmata
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a través de Bluetooth a la placa, que actúa como un cliente ligero .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

 Electric Imp  April 

Ambiente 

Plataforma específica 

  • Requiere una conexión WiFi conectada a Internet y está sujeto a la limitación de la tasa de solicitud por parte del servidor de Electric Imp API.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 1 

Ambiente 

Plataforma específica 

  • Las compilaciones que no son IoTKit ya no son compatibles.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 2 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Arduino 

Ambiente 

Plataforma específica 

  • El hardware es capaz de soportar solo 4 salidas PWM. Como resultado, los enlaces nativos no admiten PWM en los pines 10 y 11.
  • Aunque Galileo-io / Edison-io / Joule-io todavía no admite comunicaciones en serie, puede enlazar a / dev / ttyFMD1 en la placa Edison Arduino usando el módulo serialport .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Mini 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

SparkFun Edison GPIO Block 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

SparkFun Arduino Block

Ambiente 

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping no

Intel Joule 570x (Carrier Board) 

Ambiente 

Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

LightBlue Bean

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Linino uno 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

pcDuino3 Dev Board 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Pinoccio Scout 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Raspberry Pi 3 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi 2 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Zero 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi Model A Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Frambuesa Pi Modelo B Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Modelo B Rev 1 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping no

Raspberry Pi Modelo B Rev 2 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no


Particle Core (Spark Core)

Ambiente 

Plataforma específica 

  • Los temporizadores se comparten en grupos: Temporizador 2: A0 , A1 , Temporizador 3: A4 , A5 , A6 , A7 , Temporizador 4: D0 , D1
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping


Particle Photon

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
ping no
Silbido

Sparkfun Photon RedBoard 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping

Tessel 2 

Ambiente 

Plataforma específica 

  • El soporte de servo se proporciona a través de componentes I2C (por ejemplo, PCA9685 )
  • DAC está limitado a Puerto B, Pin 7
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac
ping no

Mas información en  http://johnny-five.io/platform-support/

Como ver la previsión del tiempo desde una Raspberry Pi


Wttr.in es un servicio de previsión del tiempo orientada a la consola que admite varios métodos de representación de información tal como secuencias ANSI de  terminal,  estando orientado tanto para clientes de consola HTTP (Rizo, httpie o wget), como  para navegadores web en HTTP  , o incluso para visualizadores gráficos en formato PNG .

El servicio wttr.in utiliza  visualización de  wego y diferentes fuentes de datos para obtener información de la previsión del tiempo.

Lo puede ver funcionando aquí: wttr.in desde  un navegador,   pero lo mas interesante de esta utilidad ,  es que  se puede lanzar desde una consola  en nuestra Raspberry pi , para  lo que únicamente  necesitaremos:

  • Conectividad  bien vía WIFI o por cable ethernet
  • Tener instalado el curl 
  • No es fundamental usar la ultima versión Rasperry Pi 3, pues esta utilidad funciona  perfectamente con la versión 2 e incluso en versiones anteriores.

 

Instalar curl en un Raspberry Pi

El comando curl es bastante útil y flexible siendo su  objetivo servir como  herramienta de transferencia de  datos, sin interacción del usuario, hacia o desde un servidor, utilizando uno de los muchos protocolos admitidos.

Si tiene PHP 5 instalado en la Rasperry Pi 3,    y no tiene instado curl cuando instaló Raspbian  ,para ejecutar la utilidad de previsión del tiempo se requiere . Para ello puede hacer lo siguiente:

sudo apt-get update

Y entonces:

sudo apt-get install php5-curl

Estos dos comandos únicamente son los que  realmente todo lo que tenemos que lanzar en el peor de los casos  ya  que puede que  tenga instalado curl en la    Rasperry Pi ,.

 

Ejecución de wttr

Para ver la previsión de tiempo de wttr en la Raspberry Pi  lo podemos  hacer accediendo  desde el navegador Web  Chromiun  e ir a la url http://wttr.in  , pero es mucho mas interesante y rápido (y obtendremos el mismo resultado)  si hacemos la llamada  desde un shell.

Previamente antes de lanzar el comando ,para que se visualice correctamente la salida de texto de este servicio , abriremos la consola de terminal desde la propia Rasperry Pi ,  y  ajustaremos la ventana   del valor  por defecto (80 x25 ) a  130 x24 ,  por lo que nos iremos a Editar –>Preferencias –>Mostrar y seleccionaremos como  ventana por defecto los valores  al menos de  130 x 24  en lugar de la marcada por defecto de 80 x25 .

 

Ahora pulsaremos Aceptar  y cerraremos la ventana  del Terminal

Nuevamente abriremos otra consola de shell  en la Raspberry Pi  y escribiremos : 

curl  wttor.in

Como resultado desde la misma consola veremos  un informe en  tiempo real para su ubicación   sin haber tenido  que especificar nada  más ,  ya  que  es   sensible tanto para la fecha actual como para la localización:

Como es de suponer ,la  ubicación real  se obtiene  de su dirección IP real    tomando  no solo la localización sino la zona horaria  y la hora .

 

Si quiere obtener la información meteorológica para un lugar específico  también se puede Agregar la ubicación deseada a la URL en su solicitud como esta:

$ curl wttr.in/London
$ curl wttr.in/Moscow

Recuerde , como hemos hablado  que si se omite el nombre de la ubicación, obtendrá el informe de su ubicación actual, basado en su dirección IP.

También se puede utilizar códigos del aeropuerto de 3 Letras con el fin de obtener la información del tiempo en un determinado aeropuerto:

$ curl wttr.in/muc      # Weather for IATA: muc, Munich International Airport, Germany
$ curl wttr.in/ham      # Weather for IATA: ham, Hamburg Airport, Germany

Digamos que quieres obtener el tiempo en un lugar geográfico que no sea un pueblo o ciudad – tal vez una atracción en una ciudad, un nombre de montaña o en algún lugar especial. Agregar el carácter antes del nombre para ver nombre ubicación especial antes de que el tiempo es entonces obtenido:~

$ curl wttr.in/~Vostok+Station
$ curl wttr.in/~Eiffel+Tower
$ curl wttr.in/~Kilimanjaro

Hay muchos ejemplos, debajo de la salida del tiempo en que se muestra los resultados de geolocalización de buscar la ubicación:

Location: Vostok Station, станция Восток, AAT, Antarctica [-78.4642714,106.8364678]
Location: Tour Eiffel, 5, Avenue Anatole France, Gros-Caillou, 7e, Paris, Île-de-France, 75007, France [48.8582602,2.29449905432]
Location: Kilimanjaro, Northern, Tanzania [-3.4762789,37.3872648] 

También puede utilizar (directa) de direcciones IP o nombres de dominio (con el prefijo) para especificar una ubicación:@

$ curl wttr.in/@github.com
$ curl wttr.in/@msu.ru

Por ultimo también ofrece  información detallada en línea, para lo cual  solo se necesita acceder a la página de /:help :

$ curl wttr.in/:help
Mas información en  su sitio de Github https://github.com/chubin/wttr.in

Como emular un mando con Arduino


A veces   puede ser  interesante emular del comportamiento  de un mando infrarrojo  con el fin de automatizar procesos  que de otra manera  seria mucho mas complejo . Como ejemplo típico de dispositivos que podemos controlar vía infrarojos, hablamos de  reproductores de cámaras, televisores, DVD, VCR, lectores de blueray, equipos de sonidos, descodificadores  y  un largo etcétera 

Aunque pueda parecer descabellado repetir las mismas señales desde una placa Arduino , lo cierto  es que no es descabellado querer emular este comportamiento , porque  podemos  hacer cosas  que seria muy dificultoso  sin la ayuda del procesamiento de señales de infrarojos como por ejemplo  encender automáticamente  el Aire Acondicionado  cuando la temperatura  suba un determinado valor , o se desconecte a una determinadas horas ,  se apague  cuando no haya movimiento  y un largo  etcétera 

Como paso previo  debemos analizar las señales infrarrojas emitidas por el mando usado para el control de ese dispositivo  por lo que deberemos averiguar  cómo recibir los códigos y luego una vez conocidas intentar ver como transmitirlas.

Para nuestra tarea necesitamos :

  • 1 x Arduino (cualquier versión sirve  siempre que pueda procesar señales  “PWM” )
  • 1 x LED IR   (usted puede conseguir éstos de cualquier TV remoto)
  • 1 x receptor IR (usted puede conseguir éstos de cualquier TV remoto)

 

Preparación para recibir señales

Para el análisis  de las señales infrarrojas  producidas por el mando del  dispositivo a controlar en primer lugar necesitaremos  un receptor de infrarrojos ,   que bien  puede proceder de   uno reciclado de cualquier viejo proyecto que ya no utilice  o bien adquirido específicamente  en el comercio

Una interesante opción son los famosos kits para Arduino que integran por unos 4€  todo los necesario para habilitar la comunicación en los dos sentidos  gracias a un led IRDa, un receptor IRDA  y un mando para pruebas.

Kit Modulo Receptor Infrarojo IR Protocolo Nec con Mando a Distancia Arduino

Como sugerencia  para captar el código correcto , deberíamos poner el receptor IR y el mando en una caja opaca  o algo que sea oscuro  lo cual  asegurará que habrá el mínimo de interferencias y  podremos tener el código más claro para que no tengamos que programar  nuestro  Arduino  muchas veces para una simple tarea. También, asegúrese de que estar alejados de personas viendo la televisión.

Realmente el circuito es bastante sencillo pues únicamente tendremos que alimentar con 5v DC  ( que podemos tomar directamente desde nuestro Arduino )   y luego conectar la salida del receptor digital al pin digital A2 de Arduino

 

Picture of Preparing to Receive Signals

Una vez montado el simple circuito del receptor de infrarrojo es hora de  subir el programa a su Arduino  para  poder descodificar la señal infrarroja .

El siguiente programa utiliza el Arduino y un PNA4602 para descifrar IR recibido lo cual se  puede utilizar para hacer un receptor de infrarrojos. (buscando un código en particular) o transmisor (pulsando un LED IR a ~ 38KHz para el duraciones detectadas,

Este código es de dominio público (visite http://www.ladyada.net y adafruit.com), pero en esta ocasión se ha traducido para que sea mas legible y fácil de entender:


// Necesitamos usar los métodos de lectura de pin ‘raw’  porque el tiempo es muy importante aquí y el digitalRead () es un  procedimiento s más lento!

#define IRpin_PIN PIND
#define IRpin 2

// el pulso máximo que escucharemos: 65 milisegundos es mucho tiempo
#define MAXPULSE 65000

// lo que debería ser nuestra resolución de tiempo, más grande es mejor ya que es más ‘preciso’ – pero demasiado grande y no se conseguirá  tiempo exacto
#define RESOLUTION 20

// almacenaremos hasta 100 pares de pulsos (esto son muchos )
uint16_t pulses[100][2]; // par es pulso alto  y bajo 
uint8_t currentpulse = 0; // indice para pulsos que estamos almacenando

void setup(void)

{
Serial.begin(9600);
Serial.println(“Ready to decode IR!”);
}

void loop(void)

{

// tiempo de almacenamiento temporal
uint16_t highpulse, lowpulse;

//empezar sin pulso 
highpulse = lowpulse = 0;

//esto es demasiado lento!
while (IRpin_PIN & (1 << IRpin)) {
// pin esta a nivel alto

// continúa otros microsegundos
highpulse++;
delayMicroseconds(RESOLUTION);

// Si el pulso es demasiado largo, ‘se agotó el tiempo’ – o bien nada / se recibió o el código está terminado, así que imprima lo que  hemos obtenido hasta ahora, y luego reiniciamos
if ((highpulse >= MAXPULSE) && (currentpulse != 0)) {
printpulses();
currentpulse=0;
return;
}
}
// no nos detuvimos, así que escondamos la lectura
pulses[currentpulse][0] = highpulse;

// lo mismo que arriba
while (! (IRpin_PIN & _BV(IRpin))) {
// pin esta aun bajo
lowpulse++;
delayMicroseconds(RESOLUTION);
if ((lowpulse >= MAXPULSE) && (currentpulse != 0)) {
printpulses();
currentpulse=0;
return;
}
}
pulses[currentpulse][1] = lowpulse;

// leemos un pulso alto-bajo con éxito, ¡continuamos!
currentpulse++;
}

void printpulses(void) {
Serial.println(“\n\r\n\rReceived: \n\rOFF \tON”);
for (uint8_t i = 0; i < currentpulse; i++) {
Serial.print(pulses[i][0] * RESOLUTION, DEC);
Serial.print(” usec, “);
Serial.print(pulses[i][1] * RESOLUTION, DEC);
Serial.println(” usec”);
}
}


Una vez que hemos subido el código anterior  y  todo está configurado correctamente, abrir el serial monitor haciendo clic en el botón en el programa de Arduino que es el botón de un círculo en la imagen y  ya estára en marcha así que ahora usted necesitará encontrar un control remoto que desee usar para controlar algo con Arduino

El proceso  esquemáticamente  a seguir es el siguiente :

  1. Encontrar el mando a distancia del dispositivo  que quiere controla
  2. Ejecutar el código del  receptor anteriormente citado
  3. Presione el botón del mando cuyo  código desea obtener 
  4. Ver el Monitor Serial
  5. Pegar el todo el código del monitor serie  en un editor de texto 
  6. Repetir los paso 3, 4 6  con todos los botones del mando que desee descodificar 

 Interpretando las señales

Una vez siga la secuencia de paso anteriores recibirá un montón de números seguidos por “usecs” o “usec”.
Asegúrese de que ha copiado la señal que se desea formateando la salida para más fácil referencia.

Se verá algo como esto:
500 usec, 300 usec
600 usec, usec 1200

Pero habrá números mucho más que eso.

Ahora en el programa emisor  verá esto bastantes veces:

delayMicroseconds();
pulseIR();

Es decir tenemos que  tomar el primer número y poner paréntesis en delayMicroseconds(“here”); el  valor obtenido en el monitor
y a su vez   tomar el segundo número de la misma línea como el de la delayMicroseconds()  valorar y poner en el paréntesis de pulseIR(); valor.

Veamos otro ejemplo .Si conseguimos esto en el monitor serial:

OFF ON
1660 usec, usec 580
1640 usec, usec 560

Ahroa para poner los  correspondiente valores en sus áreas correspondientes lo haremos asi :

delayMicroseconds(1660);
pulseIR(580);
delayMicroseconds(1640);
pulseIR(560);

Como puede apreciar ,la  tarea de transcripción  es muy fácil.

Una vez que tenga los códigos que desee, abra un nuevo  archivo IR_SEND.pde en el programa de Arduino y luego tendremos que  poner  los valores que tiene del monitor de serie entre paréntesis haciéndolo  del mismo modo  que hemos visto anteriormente .

Ahora, una vez que tenemos los códigos que desea y haya cargado el programa con la señal que desea enviar, todo lo que tiene que hacer es conectar el LED IR al pin 13 y luego a tierra  No necesita la resistencia si tiene un Duemilanove Arduino porque tiene una resistencia integrada para PIN 13, por lo que no tiene que preocuparse.


Como ejemplo veamos este código cuando se presiona el botón para subir el canal en un  control remoto de Comcast. . Aquí está el código de Serial Monitor: Recibido:

OFF  ON
36328 usec, 280 usec
820 usec, 300 usec
1580 usec, 320 usec
640 usec, 240 usec
2740 usec, 240 usec
1280 usec, 240 usec
1240 usec, 240 usec
1120 usec, 240 usec
2600 usec, 240 usec
12740 usec, 240 usec
840 usec, 240 usec
980 usec, 240 usec
700 usec, 240 usec
700 usec, 240 usec
720 usec, 240 usec
2460 usec, 260 usec
700 usec, 240 usec
700 usec, 240 usec
14904 usec, 260 usec
820 usec, 240 usec
1660 usec, 240 usec
700 usec, 260 usec
2740 usec, 240 usec
1240 usec, 240 usec
1260 usec, 240 usec
1100 usec, 240 usec
2620 usec, 240 usec
12720 usec, 260 usec
840 usec, 220 usec
2080 usec, 240 usec
1780 usec, 260 usec
700 usec, 240 usec
700 usec, 240 usec
2480 usec, 240 usec
700 usec, 240 usec
700 usec, 240 usec

Aquí está el código realizado a partir de los datos en bruto anteriores  pero no se  asociado al código  

En el siguiente  programa   se ha introducido  un detalla original ; Arduino cambiará el canal cada diez segundos para que se puedan hacer otras cosas , Por ejemplo mientras se ve televisión y esta haciendo otras cosa  así  no tendrá que cambiar el canal de modo que el sw  recorrerá los canales para que tenga las manos libres. (todos sabemos que presionar un botón es tan difícil, ¿por qué no hacerlo de forma automática?)

 

He aquí el programa realizado por Wally_Z:


int IRledPin =  13;    // LED conectado al pin digital 13

// El método setup () se ejecuta una vez, cuando comienza el boceto

void setup()   {               
  // initializa  el pin como salida :
  pinMode(IRledPin, OUTPUT);     

  Serial.begin(9600);
}

void loop()                    
{
  SendChannelUpCode();

  delay(20*1000);  // espera veinte segundos (20 segundos * 1000 milisegundos) Cambia este valor para diferentes intervalos.

}

// Este procedimiento envía un pulso de 38KHz al IRledPin  para un cierto  numero de microsegundos. Usaremos esto siempre que tengamos que enviar códigos.

void pulseIR(long microsecs)

{
  // contaremos desde la cantidad de microsegundos que se nos dice que esperemos

  cli();  // esto apaga cualquier interrupción de fond

  while (microsecs > 0) {
   // 38 kHz tiene aproximadamente 13 microsegundos de alto y 13 microsegundos de bajo
   digitalWrite(IRledPin, HIGH);  //Esto lleva alrededor de 3 microsegundos
   delayMicroseconds(10);         // esperar 10 microseconds
   digitalWrite(IRledPin, LOW);   // esto toma sobre 3 microseconds
   delayMicroseconds(10);         // esperar   10 microseconds

   // asi que  26 microseconds  todo junto
   microsecs -= 26;
  }

  sei();  // esto devuelve el control
}

void SendChannelUpCode()

{
  // Este es el código para CHANNEL + para TV COMCAST.
 
  delayMicroseconds(36328);      //Tiempo libre (columna IZQUIERDA)      
  pulseIR(280);                               //Tiempo en (columna DERECHA) <——- NO MEZCLAR ESTOS ARRIBA
  delayMicroseconds(820);
  pulseIR(300);
  delayMicroseconds(1580);
  pulseIR(320);
  delayMicroseconds(640);
  pulseIR(240);
  delayMicroseconds(1280);
  pulseIR(240);
  delayMicroseconds(1240);
  pulseIR(240);
  delayMicroseconds(1120);
  pulseIR(240);
  delayMicroseconds(2600);
  pulseIR(240);
  delayMicroseconds(12740);
  pulseIR(240);
  delayMicroseconds(840);
  pulseIR(240);
  delayMicroseconds(980);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(720);
  pulseIR(240);
  delayMicroseconds(2460);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(14904);
  pulseIR(240);
  delayMicroseconds(820);
  pulseIR(240);
  delayMicroseconds(1600);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(260);
  delayMicroseconds(2740);
  pulseIR(240);
  delayMicroseconds(1240);
  pulseIR(240);
  delayMicroseconds(1260);
  pulseIR(240);
  delayMicroseconds(1100);
  pulseIR(240);
  delayMicroseconds(2620);
  pulseIR(240);
  delayMicroseconds(12720);
  pulseIR(260);
  delayMicroseconds(840);
  pulseIR(220);
  delayMicroseconds(2080);
  pulseIR(240);
  delayMicroseconds(1780);
  pulseIR(260);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(2480);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
}

 

Via Instrucables.com

 

 

 

A %d blogueros les gusta esto: