Ambilight para Imagenio


Ambilight es una tecnología diseñada para mejorar la experiencia visual  analizando una señal de video  entrante y produciendo una  luz lateral ambiental adecuada al contenido que se está visualizando en la pantalla  con  un resultado bastante atractivo , el cual  además de la sensación de estar viendo una pantalla aun mayor.
Hasta hace muy poco este efecto solo se podía conseguir si comprábamos una TV que contara con ese sistema y no había otra opción, pero recientemente  han aparecido software para emularlo  a través una placa Arduino UNO (o incluso Arduino nano), un ordenador,y una tira de 50 leds(  suficientes  para iluminar una televisión de 47 pulgadas)  .  Aunque  la solución usando Arduino es  eficiente   podemos llegar aun mas lejos para  emularlo incluso en la  propia TV de nuestro salón   gracias  a la potencia de la Raspberry Pi  2 o 3   y  una capturadora  de vídeo  y por supuesto , una tira de 50 leds WS2801 (como vamos a  ver ).
En este  post  vamos a ver como es posible emular un sistema «ambiligt»  donde el hardware que controlará  todo el sistema sera únicamente una Raspberry Pi 2  o 3  equipada con una distribución compatible ( Openelec)   y el software de control de  leds Hyperion. Además de controlar los leds, la combinación de la Raspberry Pi junto con Kodi constituye un excelente Media Center capaz de reproducir todo tipo de contenidos de audio, vídeo e imagen, de reproducir nuestra colección multimedia almacenada en el PC o en un disco externo, e incluso de reproducir directamente contenidos on-line si se posee  las  subscripción en el hogar  y por supuesto cuenta con la conexión  de suficiente ancho de banda como por ejemplo ftth.
Es importante ademas resaltar  que será posible disfrutar de la emulación de  ambilight con fuentes de vídeo externas a la Pi  usando una económica  capturadora  de vídeo  que permitirá  que la emulación no solo funcione con el contenido multimedia que reproducimos desde la Raspberry Pi  , también  responderá a la señal de video externa que le introduciremos  procedente de una fuente externa de video como por ejemplo puede ser la señal de video procedente de un descodificador de Imagenio .
Para concretar  un poco  mas  en este montaje  necesitaremos los siguientes componentes:
  • Una Raspberry Pi 2 o 3
  • Un tarjeta microsd  de l amenos 2GB   donde instalamos  el sw para la Raspeberry Pi
  • Fuente con salida microusb  para la Raspberry Pi (5V/1Amp)
  • Tira de leds con el chip WS2801
  • Fuente dimensionada para alimentar la tira de leds (5v /2amp deberia bastar)
  •  Convertidor  de niveles (Opcional)
  • Capturadora de video usb USBTV007 o compatible
  • Caja para albergar la Raspberry-Pi 2

TIRA DE LEDS y ALIMENTACION

Antes de empezar  con el montaje ,  la tira de  leds   RGB   direccionable es muy importante que ésta esté basada en el chip  ws2801 (LEDs WS2801). Existen tiras basadas en el chip WS2801   en formato “luces de navidad”, pero lo mas habitual es adquirirla en forma de cinta autoadhesiva pues es mucho mas sencillo instalarlas detrás de nuestro TV  pues  se pueden pegar directamente en la parte de atrás del tv  y no necesitan un engorroso cableado   y ademas  no nos  dará  ningún tipo de problemas  con la Raspberry Pi

Un ejemplo de tira  compatible con WS2801 es  esta  que puede comprarse en Amazon por menos de 27€

tira de leds.png

Una peculiaridad  de esta tiras ,es que ademas de que se pueden cortarse según la longitud que se requieran ( siempre por la linea de corte que separa cada bloque  chip+led rgb del siguiente) .Otro aspecto muy interesante  es que ,  también es posible ampliarlas gracias a  los conectores que llevan en cada extremo, pudiendo  unirse  entre ellas fácilmente sin soldar nada hasta completar la longitud total que  se necesite ( la cual normalmente sera el perímetro interior de su TV).

No debemos olvidar que esta tiras tienen una flecha que indican el sentido de la conexión de las tiras que debe respetarse escrupulosamente  sobre todo a la hora de conectar varias tiras entre si : es decir siempre empezaremos por la izquierda de la flecha con la conexión a la raspberry y seguiremos el orden de la flecha para interconectar las tiras que se precisen

conector.png

Un aspecto importante que no debemos  olvidar  es que parara alimentar dicha tira de leds  WS2801 ,  necesitaremos aparte  una fuente de alimentación  dimensionada para el número de leds que vayamos a adquirir , (lo normal seria  una fuente de  5v y 2A para  unos 50 leds)

Este tipo de tiras de leds  tienen que alimentarse  con una fuente de alimentación externa así que si pensaba alimentarlos con la propia Raspberry olvídese, ya que no va a tener los suficiente intensidad para ello  Para saber que fuente de alimentación necesita , tendría  que conocer el consumo .Dado que el voltaje de alimentación es de 5V  y el consumo viene indicado en vatios por metro, por ejemplo 8.64 watts por metro puede calcular la  intensidad necesaria  aplicando   la siguiente formula:

I (Amp) =P (Watts) / V (voltaje) ->  8.64/5 = 1.728 amperios. por tanto necesita una fuente de alimentación de 5V y 1.728 amperios (mejor 2 amperios para que vaya holgada)

Si se quiere ahorrar los cálculos visite http://www.rapidtables.com/calc/electric/Watt_to_Amp_Calculator.htm

Como regla aproximada  para 50 LEDs se necesitan 2 amperios ,para 100 leds 4 amperios, etc.

ADAPTADOR DE NIVELES

Hay  un pequeño problema con los niveles de tensión que admiten las tiras de led WS2801   (niveles TTL de 0/5v )  y los niveles de tensión que maneja una Raspberry Pi (0/3.0v) . El nivel mínimo de tensión que teóricamente admiten los WS2801  para considerar una señal de entrada un «1» lógico debe ser de 0.8 x 5 = 4V. Sin embargo, tanto la Raspberry Pi 2 como   la Raspberry Pi 3,ambas   trabajan con lógica a 3.3V, por lo que un «1» lógico en el GPIO alcanzará como máximo un nivel de tensión de 3.3V, lo que parece  alejado del mínimo aceptado de 4V de los chips WS2801, razón por la cual  muchos recomiendan  instalar  un  convertidor  de niveles que realizara la función de adaptar las señales lógicas de 3.3V del GPIO de la Pi hasta los 5V de la lógica empleada en los chips WS2801 que controlan los leds.
Generalmente estos convertidores  son de muy  bajo coste (unos 2€) y se conectan de un modo muy sencillo:  tienen un lado de baja tensión (marcado como LV)  que funciona a  niveles de 3.3V  y un lado de ‘alta tensión’ que conectaremos  a la Raspverry Pi 2 o 3 , y otro  marcado como HV que trabaja a 5V  que conectaremos  a los pines de entrada de la tira de leds
Ademas no debemos olvidar los pines de GND del lado de baja (LV) y del de alta (HV)  que deben conectarse entre ellos si no lo están en la propia plaquita.
convertidor.png
Es importante mencionar que la línea de +5V para el lado HV(de «alta» tensión) debe provenir de la misma alimentación de 5V proporcionada a los leds (si usáramos una única fuente de alimentación para los leds y la Raspberry Pi 2 o 3  lo cual se desaconseja por completo , en ese casi si podríamos usar uno de los pines de +5V del GPIO para conectarlo al lado de HV), asi como  que también debe proporcionarse al circuito para el lado LV («baja» tensión)   la  alimentación de 3.3V  , la cual la obtendremos de la propia Raspberry Pi 2 o 3
El buffer de línea (adaptador de niveles de 3.3V a 5V) irá entre los pines GPIO de la RB Pi y la tira de leds WS2801   usando tan solo dos circuitos(  para CK y DS )   de los cuatro circuitos disponibles  en el adaptador.  Usaremos  por ejemplo un  hilo verde del pin MOSI (19) desde la Raspbery  hacia el adaptador  y de este a  la tira de leds(SD)    y otro hilo de color   azul el pin 23(SCLK)    hacia el adaptador y de este al CLOCK  de  la tira de leds .

Asimismo conectaremos  un  hilo de color negro de «tierra» (ground), desde el GDN del adaptador al pin 9  hacia el GND de  la Raspberry  y alimentaremos ambas partes del circuito con 5V (HV)  procedente de la fuente de alimentación para los leds   y 3.3V (LV) procedente del pin 1 de la Raspebrry pi.

En el siguiente esquema mostramos como quedaría el montaje final:

 

 

esquema-ambilight

 

 

 

Enchufaremos por ultimo la fuente de  5V y 2A (pueden ser más Amperios, pero no menos!) y encenderemos nuestra  Raspberry. Es posible que algunos leds se enciendan y se apaguen (es normal) ,pero también es posible que ningún led se encienda, !no se preocupe pues deberíamos  configurar aun  el software!

 

ESQUEMA FINAL

Desde el punto de vista técnico el conversor de niveles es lo correcto , pero es posible que muchas tiras de leds WS2801  a pesar de ser compatibles con niveles TTL , también sean tolerantes a 3.3V  y por tanto para conectar estas a la Rasepberry Pi  2  o 3  no sea necesario por tanto este conversor 

Los LEDs tienen 4 cables

  • alimentación positiva
  • alimentación negativa
  • data
  • clock

Los cables de alimentación van conectados a la fuente de alimentación  aparter de  50 al menos 2amperior   y los cables de datos (data y clock) se conectan a los puertos GPIO de la raspberry. Concretamente el cable data se tiene que conectar al pin MOSI y el cable clock se conecta al pin SCLK. . El negativo además de conectarse al cable de alimentación negativa de los leds debe conectarse a un pin  GND.

 
 

INSTALACIÓN FINAL DE LOS LEDS EN LA TV

Los LEDs cableados formato «luces de navidad »  también los hay  con el chip ws2801   teniendo la ventaja que se pueden adaptarlos a cualquier tamaño de pantalla ya que se pueden separar o  juntar según  se necesiten, pero por otro lado, el principal inconveniente  es que son bastante voluminosos (12mm) siendo la instalación s más complicada ya que se tiene que idear una manera de montarlos en la TV (por ejemplo, hay gente que se hace una plantilla de cartón, otra opción es pegarlos con bridas autoadesivas).

 

Realmente lo mas sencillo es por optar por tiras adhesivas  WS2801 pues tienen la ventaja que la instalación es más discreta y queda mucho mejor. La desventaja es que seguramente tenga que cortar la tira  para  poder abarcar todo el perímetro de la televisión, lo cual  implica que una vez que haya cortado y pegado cada trozo, tendrá que soldar un conector a ambos lados para volver a unir los contactos de la tira  (aunque  si no quiere soldar la tira esta la opción de comprar tantos metros de leds en formato continuo y pegar esta por todo el perímetro de la TV doblándolas en las esquinas.

En todo caso , la distribución   mas  normal de montaje de la tira de leds  es pegar la tira horizontal mas grande  en la parte abajo   y seguir  hacia la derecha hasta continuar el perímetro de la TV como se ve en la foto siguiente:

 

SOFTWARE

OpenELEC se construye desde cero específicamente para una tarea, para ejecutar Kodi. Otros sistemas operativos están diseñados para ser multiuso, por lo que incluyen todo tipo de software para ejecutar servicios y programas que probablemente nuca  se utilizarán. OpenELEC, sin embargo, sólo incluye el software necesario para ejecutar Kodi. Debido a que es pequeño (aproximadamente 150 MB), se instala literalmente en minutos, y, puede arrancar muy rápidamente en 5-20 segundos, dependiendo del tipo de hardware utilizado.A diferencia de otras soluciones de Kodi, OpenELEC no se basa en Ubuntu. De hecho, no se basa en ninguna distribución de Linux dado que es una distribución mínima de Linux complilada par Kodi  por lo que ha sido construido desde cero específicamente para actuar como un centro de medios. Eso significa que no incluye controladores para cosas que simplemente no se utilizarán como tarjetas 3G y tabletas gráficas, por ejemplo.

Además, OpenELEC está diseñado para ser gestionado como un dispositivo: puede actualizarse automáticamente y puede gestionarse completamente desde la interfaz gráfica. Aunque funciona en Linux, nunca necesitará ver una consola de administración, un terminal de comandos o tener conocimientos de Linux para usarlo.

Para que nuestra Raspberry Pi funcione como un potente Media Center necesitamos una distribución de Kodi (antes XBMC), y adicionalmente,  el software que nos
permita controlar la tira de LEDs. En cuanto al software para el control de los leds el ideal por prestaciones es el  Hyperion pues consume muchos menos recursos que Boblight  y por tanto es el mas utilizado.
Como la clave es el sw de Hyperion ,este  puede instalarse por  ssh a partir de una imagen de OSMC o bien Openelec ,  pero otra forma mas sencilla y cómoda es  descargarnos alguna de las distribuciones ya existentes al efecto con el sw de Hyperior  ya preinstalado como puede ser la imagen de Lighberry basada en Raspbmc.

Opcion  instalación manual

 Quien prefiera disponer de la última versión de Openelec podrá descargarla en http://openelec.tv   , y después posteriormente instalar de forma manual Hyperion (y muy probablemente realizar algunos retoques en la configuración para hacerla funcionar).
opnenelec
Como  referencia si se decide instalar la imagen de openelec directamente , una vez creada la imagen  tendremos que seguir los siguientes pasos:Instalar hyperiond e hyperion-remote (por defecto se instalarán en ‘/usr/bin’).
  • Preparar el fichero de configuración hyperion daemon (por defecto será ‘/etc/hyperion.config.json’).
  • Añadir hyperiond a los servicios del SO (añadir hyperion.conf a ‘/etc/init’).
  •  Iniciar el servicio de hyperion mediante el comando ‘initctl start hyperion’
  • También en vez de hacer todos estos pasos  de forma manual, es posible ejecutar un  script que nos instalará Hyperion más cómodamente.:https://github.com/tvdzwan/hyperion/wiki/Installation-on-OpenELEC

 

Como ejemplo ,con estos comandos  se  instala Hyperion sobre OpenELEC:

curl -L --output install_hyperion.sh --get [url]https://raw.githubusercontent.com/tvdzwan/hyperion/master/bin/install_hyperion.sh[/url]
chmod +x install_hyperion.sh
sh ./install_hyperion.sh

 

Opcion rápida

En este post  vamos a usar la versión de  Openelec más actualizada de las disponibles en la web de Lightberry (actualmente, la versión 6.0.3). No suele ser la versión de Openelec más reciente, pero en contrapartida ya  trae Hyperion preinstalado, el driver para la capturadora   y  por tanto  casi todo esta hecho.
En el caso de  disponer de una Raspberry Pi 2 o 3 descargaremos   OpenELEC 7 beta3 for RPi2 / RPi3

lightberry

Una vez descargada descomprimiremos el zip  recuperando la imagen que debería tener el formato   8gbsmallnew0518v2.img.   
Descargaremos e instalaremos  ( en caso de no tener instalado) el sw  SDFormatter con objeto de formatear a bajo nivel la tarjeta microsd.
sdfor
Asimismo, necesitamos  también la utilidad Win 32 Disk Imager que nos va a  permitir grabar de forma sencilla cualquier imagen en la tarjeta microSD:
win32
Tanto en el primer programa, como en este, es obvio que tendremos que cuidar en extremo  la unidad o  drive  /destino  que seleccionemos ,pues podríamos borrar el contenido de nuestra unidad flash usb , un disco externo, etc  , así que como recomendación, al ejecutar estas aplicaciones lo mejor  es extraer de forma segura todas las unidades removibles antes de usar ambos programas.
Una vez terminada de  generar la imagen extraeremos la SD de nuestro PC  y la introduciremos en nuestra Raspberry Pi .
Una vez arrancada la Raspberry   lo primero es configurar Kodi para que se muestre en español. Para ello debe acceder a
SYSTEM > Settings > Appearance >International > Language , configurar el idioma en español de España y de esta forma ya veremos todos los textos y ayudas en español

Tambien se pueden configurar add-ons, los skins, etc pero sobre todo puede ser interesante conocer  la direccion IP de la Raspberry Pi para conectarnos a esta  via ssh ,para lo cual nos iremos a Sistema–>Información del sistema  y tomaremos nota de la dirección IP ( por ejemplo la ip 192.168.1.54 ). Esta no servirá  para  conectarnos rro ssh ( por ejemplo con el programa putty)    con los siguientes datos:

Una vez que ya hayamos configurado Kodi a nuestro gusto y comprobado que accedemos sin problemas a nuestros contenidos multimedia vía red o directamente conectados a uno de los puertos USB de la Pi, pasaremos a personalizar la configuración del Hyperion para  introducir la configuración de LEDS de nuestra instalación de Lightberry.
Para ello tenemos varias opciones,pero la más sencilla y rápida es, con la  Raspberry conectada a internet,  desplazarnos hacia el menú PROGRAMS/PROGRAMAS y ejecutaremos  la aplicación pre-instalada, Hyperion Config Creator  la cual nos permitirá configurar paso a paso la instalación de nuestra  Lightberry en nuestra TV   donde iremos definiendo:
  • Tipo de tira de leds: en nuestro casi   podemos elegir  Lightberry HD for Rasperry pi (ws2801)
  • Numero de leds horizontales ( deben ser idéntico numero de leds  en ambos lados)
  • Numero de leds  verticales   ( deben ser idéntico numero de leds  en ambos lados)
  • Donde comienza el primer led (Right/button corner and goes up)
  • Confirmación  de  que tenemos un capturadora de TV conectada

Una vez terminado el asistente de hyperion confi creator deberíamos ver el arco iris  asi como la prueba de colores  , con lo  que deberiamos  haber  terminado de  configurar nuestra instalación , pero ¿como comprobamos si esta funcionando la capturadora?  
Pues usaremos simplemente el segundo menú disponible en  PROGRAMS/PROGRAMAS y ejecutaremos  la aplicación pre-instalada Hyperion  Grabber Screenshot.
Al ejecutar  esta  appp ,  simplemente nos preguntara sobre el tipo de señal de video (en nuestro caso PAL) y en el caso de que tengamos conectada sobre la entrada de video de la capturadora cualquier señal de video ( por ejemplo procedente de un descodificador de imagenio ) entones  si la imagen presentada no es negra  , es indicativo que esta funcionando la capturadora ,  con lo cual  en cuanto reinicie el servicio Hyperion    ya debería ver como cambian las luces en función de la imagen de la fuente de video  externa  ( en nuestro caso desde un descodificador )  ,

 

 

CAPTURADORA

En el mercado existen multitud de capturadoras USB, siendo en general conocidas bajo la marca o  denominación de Easycap. A día de hoy, sólo dos tipos de chipsets son compatibles con el ambilight, por eso es importante seleccionar una capturadora de este tipo que internamente use uno de los siguientes chipsets:
  • STK1160 (el más antiguo)
  • USBTV007 (el más reciente).Se recomiendo adquirir el USBTV007 (también reconocido por Fushicai) porque funciona muchísimo mejor que el obsoleto STK1160.
Las últimas imágenes de OpenELEC son compatibles con ambos chipsets, pero deberemos certificarnos que efectivamente la imagen que tenemos en la Pi soporta el chipset de la capturadora conectada.
easycap.png
Acertar en la compra de la capturadora es el quid del éxito. Hay multitud de variantes, todas ellas conocidas genéricamente por EasyCap, pero no todas nos van a servir. La opción de ir por lo seguro es por ejemplo  adquirir la capturadora en la propia tienda de Lightberry (acertará al 100% porque ellos ya han seleccionado las que efectivamente valen para el ambilight , de hecho actualmente solo comercializan las USBTV007).
Analizando con detalle la información de algunos vendedores, es posible comprar en eBay,Aliexpress y sitios similares capturadoras que, en principio, funcionarán, y a precios generalmente más asequibles.No podemos confiar al 100% en lo que el vendedor publicita. Muchas veces el vendedor no sabe/no entiende de lo que vende, y otras muchas te dirá que sí, que tiene exactamente lo que Ambilight
En este punto es importante hacer un inciso:el consumo de corriente de este tipo de capturadoras por lo que deberemos dimensionar adecuadamente la fuente que alimente al conjunto ( y ademas podría superar la capacidad del puerto USB de la RB Pi en el caso de que usase os primeros modelos de RB Pi).
Hyperion APP

Para terminar  para la plataforma  Android existe una app que  permite controlar los leds que tengamos instalados  estableciendo un color  fijo   o  incluso aplicando efectos bastante vistosos. La puede descargar aquí: https://play.google.com/store/apps/details?id=nl.hyperion.hyperionfree&hl=es

hype.png

Fuentes:

https://github.com/tvdzwan/hyperion/wiki

http://lightberry.eu/

Anuncio publicitario

Renacer del mitico ZX Spectrum


El Sinclair ZX Spectrum  fabricado por la compañía británica Sinclair Research y lanzado al mercado el 23 de abril de 1982 fue  uno de los primeros  ordenadores más populares de los años 80  gracias  a su optimizado y compacto diseño que hizo las delicias de miles de aficionados a la informática y los videojuegos.

Su CPU  no podía ser mas modesta pues albergaba  un procesador de 8 bits basado en el microprocesador : el Zilog Z80A, con dos configuraciones de RAM con 16 kB ó 48 kB  y 16 kB de ROM  (así, la memoria total de ambos modelos era realmente de 32 y 64 kB estando esta ultima en el límite del direccionamiento de 16 bits en 64 kB) un sistema de almacenamiento en cinta casete de audio común , salida de video compuesto  y un Teclado de caucho integrado en el propio ordenador .

En los sorprendentes 16 kB de ROM se incluían un intérprete del lenguaje BASIC SINCLAIR desarrollado por la compañía Nine Tiles Ltd. para Sinclair y que era una evolución del que ya desarrollaran para dos anteriores máquinas comerciales de la marca, el ZX80 y el ZX81, de las que el  ZX  Spectrum era su evolución. En la misma zona de memoria también estaba el juego de caracteres ASCII que utilizaba la máquina por defecto (aunque se podía apuntar a otras zonas de memoria y definir caracteres alternativos) y una zona reservada justo antes de la memoria de pantalla, ideal para EPROMs que se podían conectar en el slot trasero.

En Europa, el Sinclair ZX Spectrum fue uno de los microordenadores domésticos  tanto es así que aún hoy perduran miles de fans del Spectrum que siguen jugando a sus juegos (con emuladores que cargan sus ficheros volcados de cintas) y compartiendo  en sitios especializados como Speccy.org, que es uno de los grupos de fans del Spectrum en español, y a World of Spectrum, el sitio del Spectrum. Además hay un mercado de coleccionismo tanto de cintas de juegos originales como de los propios Spectrum.

La nostalgia de este mítico ordenador  de no tiene  paragón   y coincidiendo que ha cumplido recientemente los 35años  desde que inundo esta maquina en todos los hogares ha surgido en kickstarter   una campaña par volverlo a fabricar asegurando la compatibilidad  100% con la version original pero obviamente actualizado a los nuevos tiempos

Sus especificaciones técnicas son en algunos aspectos bastante distintas  por ejemplo en el teclado de mas calida ,salida de vídeo VGA o HDMI y conectores para joystick y ratón –tradicionales, no USB–(incluso puede llevar wifi de forma opcional) pero la esencia perdurar pues el procesador sigue siendo un Z80 que puede correr a 3,5 o 7 MHz e incluyendo  512 KB de RAM (ampliables 1 o 2 MB más).

 

Usted puede jugar cualquier juegos, demos, usar hardware original, lo que sea. Y también funciona el nuevo software creado más recientemente para hacer uso del hardware ampliado, incluyendo nuevos modos gráficos y velocidades de procesador más rápidos.

El nuevo spectrun  viene completamente implementada  tecnología FPGA, asegurando poderse actualizado y mejorar  permaneciendo verdaderamente compatible con el hardware original mediante el uso de chips de memoria especial y diseño inteligente.

Este es el detalle de hardware  que integra  la nueva máquina:

  • Procesador: Z80 Mhz 3,5 y 7Mhz modos
  • Memoria: 512Kb RAM (expandible a 1.5MB internamente y externamente de 2,5 Mb)
  • Video: Sprites del Hardware, modo de 256 colores, modo de Timex 8 x 1 etcetera.
  • Salida de vídeo: RGB, VGA, HDMI
  • Almacenamiento: Ranura tarjeta SD, con protocolo compatible con DivMMC
  • Audio: 3 x AY-3-8912 chips de audio con salida estéreo + sonido FM
  • Joystick: DB9 compatible con Cursor y Kempston 2 interfaz de protocolos (seleccionables)
  • Puerto PS/2: ratón con Kempston modo emulación y un teclado externo
  • Especial: Funcionalidad Multiface para acceso a memoria, partidas guardadas, trucos etcetera.
  • Soporte de cinta: puertos Mic y Ear para la cinta de carga y ahorro
  • Expansión: Puerto de expansión de bus externa Original y puerto de expansión de acelerador
  • Tablero de acelerador (opcional): GPU / CPU de 1Ghz / 512Mb RAM
  • Red (opcional): módulo de Wi Fi
  • Extras: reloj de tiempo Real (opcional), altavoz interno (opcional)

Esta versión  está dirigida a cualquier Retrogamer y entusiastas de Spectrum que prefieres sus juegos, demos y aplicaciones en emuladores de hardware en lugar de software, pero quieren una experiencia sencilla y sin problemas dentro de un diseño increíble.

Esta maquina  es mucho más que un viaje renovado : hay un mundo de nuevos software que requiere actualizar hardware para ejecutar, desde juegos de música y reproductores de vídeo, desde sistemas operativos hasta demos ultra–cosas que ha hecho específico ampliaron hardware que la mayoría de los amantes de la ZX Spectrum nunca probados antes y pueden ser bastante difícil de encontrar o instalar.

Demos and games captured as they run on the Next
Demos y juegos capturados mientras corren en la siguiente

También puede convertirse en el nuevo estándar para el desarrollo de la ZX Spectrum, permitiendo a los desarrolladores crear contenido sabiendo donde será experimentado. Y esto hace toda la diferencia: es un nuevo futuro para el Speccy!

Y mientras que estamos mirando el futuro con esta nueva versión , no olvida sus raíces: tiene pleno apoyo a la clásica cinta de carga con audio incluido (¿quiere escuchar ese juego como cargar?), funcionando  con viejos monitores CRT y VGA (manteniendo también una moderna salida HDMI) y es compatible con expansiones de hardware original.

 

De momento lleva buen ritmo porque ya ha superado la meta de financiación que se había planteado en Kickstarter 306.960 £de la meta de 250.000 £ con 1.395

patrocinadores  y ya hay una fecha aproximada de entrega : julio de 2018,

TOP 100 de proyectos con Raspberry pi


Raspberry Pi  es una placa  barata, del tamaño de una tarjeta de crédito , que puede hacer casi cualquier cosa que pueda hacer un ordenador de sobremesa. Ha sido desarrollada por la Fundación Raspberry Pi para explorar la computación y ayudar  a aprender a programar en lenguajes como cero y Python para personas de todas las edades.

Con Raspberry Pi, podemos ver videos, navegar por Internet, aprender a programar, hackear  e incluso se puede integrar con  proyectos de electrónica. Hasta de junio de 2015 ya se habían vendido más de 6 millones de Raspberry  Pi en todo el mundo, lo que  la hace con diferencia la placa multipropósito mas vendida de la historia. Si le interesa saber cuales son sus aplicaciones , en este post exploramos   algunas ideas

Raspberry Pi 3  es una de las tendencias y objeto de la demanda en el campo de la informática y la electrónica. También se trata de una placa muy polivalente  de un costo relativamente bajo (el último modelo cuesta solamente 38€), ofreciendo alta capacidad de computo en un  tamaño muy pequeño   incluyendo ademas diferentes opciones de conectividad donde ademas no debemos olvidar que en todas las versiones se incluye  un puerto GPIO de 40 pines de fines generales de la entrada-salida .

Raspberry Pi 3 está construida alrededor del nuevo procesador de 64bits con 1,2GHz de velocidad, mucho más rápido y con mayor capacidad de procesamiento que sus antecesores. Ademas  integra un chip que la dota con conectividad Wifi y Bluetooth 4.1 de bajo consumo y cuenta con administración de energía mejorada que permite trabajar con más dispositivos USB externos.

Respecto al consumo energético  esta ultima versión suministra  más energía a los puertos USB pudiendo  conectar más dispositivos a los puertos USB sin necesidad de usar hubs USB alimentados ( ademas al no necesitar usar adaptadores WiFi por USB, tendrá más energía disponible en los puertos).

Si aun se pregunta que se  puede hacer con una placa Raspberry Pi  la pregunta seria mas bien ¿que no  se puede hacer con una Raspberry pi?

En este post hemos preparado  una  lista de proyectos para estudiantes de electrónica  que incluyen  electrónica y programación  computadora (con Python), espero que esto le ayuda.

Mejorar la calidad de objetos impresos en 3d


La calidad de las impresoras 3D ha aumentado considerablemente en los últimos tiempos pero debido a su propio funcionamiento FDM (modelado por deposición fundida), se siguen apreciando las marcas de cada capa en las piezas ( incluso usando   un cabezal muy fino)

Una de las soluciones a eso son los baños con vapor de acetona.

En este vídeo podemos ver cómo tratar las piezas impresas en 3D con un baño de vapor de acetona para hacer impresiones impresionantes con calidad de molde de inyección. ¡y el resultado es fantástico!

 

Las impresiones en 3D se hicieron con la famosa impresora 3D de bajo  costo Desktop 3D impresora Reprap Prusa i3 Kit  (unos 300€ en Amazon)

La impresora del escritorio 3D   que viene en kit   incluye la cama caliente, soporte  del carrete, instrucciones detalladas, ayuda de cliente y garantía libre del reemplazo de 3 meses.Apoya la impresión multicolor  pues el filamento -3D se puede cambiar durante la impresión para imprimir el objeto en diversos colores.

Esta impresora como se puede ver en el video incluye  una pantalla LCD con una perilla para controlar la impresora 3D con una función especial para pausar fácilmente la impresión y controlar la velocidad de impresión.

La boquilla de la impresora 3D es de 0,3 mm, lo que hace que la impresión sea más elaborada . Molde las piezas para el eje Z y tres bloques de la diapositiva para la extrusora para hacer la impresora más estable. También se incluye 1 rollo de cinta de Kapton para proteger la cama caliente y para que sea más fácil de quitar la impresión de la cama caliente.

La fuente de alimentación de la impresora Alunar 3D es de 110 V-220 e  incluye  un interruptor de seguridad para encender y apagar fácilmente la impresora 3D.

Y aquí algunos links  donde obtener algunos Acetona: http://amzn.to/2i9RA86 p o  el  filamento del ABS de la buena calidad: http://e3d-online.com

Se puede descargar ademas el modelos que aparecen en el video del  búho  impreso en  http://www.thingiverse.com/thing:18218

 

 

Con éste sistema, se consigue suavizar bastante las capas y dejando un resultado muy próximo a los sistemas de inyección de plástico sin perder demasiados detalles.

Construya su propia cámara de videogilancia usando Raspberry Pi


Gracias a un sencillo kit de carcasa +lente de ojo de pez  junto el software deMotionPie en efecto  es bastante sencillo transformar una Raspberry Pi con cámara en un sistema de seguridad altamente personaliza ble  como vamos a ver en este post

Hardware

Los elementos que necesitamos  para este montaje son  los siguientes:

  • Raspberry Pi3  o en su defecto una Rasberry Pi 2
  • Camara para Raspberry Pi  de 5MP Webcam Video 1080p 720p, (la del enlace es una de las mas económicas )
  • Fuente de  5v  de almenos 700mA
  • Lente ojo de pez magnética ( puede servir un mirilla de las típicas que se usan en las puertas )
  • Carcasa para albergar el conjunto .Existe este paquete  que incluye un mate negro especialmente diseñado para esta función incluyendo ademas  la lente y la caja de montaje en pared.Compatible con ambos los V1 y V2 frambuesa Pi cámara módulos originales y recién actualizado para ser compatible con la frambuesa Pi 3!

 

Pasos a seguir

La cámara Haiword  es una de las mas económicas para la Raspberry Pi(unos 15€ en Amazon) .El sensor de resolución nativo es de 5 megapíxeles capaz de 2592 x 1944 píxeles de imágenes estáticas.Soporta vídeo 1080p30, 720p60 y 640x480p60 / 90. La cámara es compatible con la última versión de Raspbian, el sistema operativo preferido de Raspberry Pi
El bus CSI es capaz de velocidades de datos extremadamente altas, y lleva exclusivamente datos de píxeles razón por la que esta cámara  utiliza la interfaz dedicada de CSI, que fue diseñada especialmente para la interfaz a las cámaras .

Para empezar a usar la cámara simplemente conectaremos el cable de cinta de la cámara al interfaz CSI de nuestra Rasberry Pi. Debemos tener mucho cuidado de enrasar muy bien el cable antes de fijarlo al conector  y después bajarle el tope para que no se suelte

 

La cámara de la Raspberry Pi ofrece caja de la cuenta, que puede mejorarse mediante la adición de lentes intercambiables. La lente ojo de pez le dará la cámara de la  Pi una vista panorámica de sus alrededores, ideal para vigilancia, seguridad y escenarios de monitoreo general.

Una vez conectada la cámara ,toca meter el conjunto en una caja que debe tener el agujero para la cámara. Obviamente con un poco de maña podemos utilizar cualquiera de las cajas que haya en el mercado fijar  la cámara por fuera y luego acoplarle la lente .

Un  opción interesante es optar por un kit de caja a medida  pues la flexibilidad de esos diseño suelen ser ideales para usar un Raspberry Pi sobre todo por la integración del módulo de cámara ademas  de complementarse con una lente de gran angular ojo de pez.

El cuadro de ModMyPi Pi cámara está diseñado para albergar un ordenador Raspberry Pi (modelo A o B) y un módulo de cámara de Pi en un gabinete compacto y versátil. Esta integrado todo el diseño para que no dañe el cable de cinta frágil de la cámara expuestos durante la operación. Este caso puede acomodar una lente de cámara magnética opcional, que abre nuevas posibilidades más allá de la excepcional calidad óptica del módulo cámara de Pi. El estuche negro mate es opaco, asegurándose que el led rojo montado en el módulo Pi cámara no afectará la luz ambiental captada por la cámara. La parte posterior de la ‘caja de cámara Pi’ puede aceptar un soporte de montaje en pared opcional para instalaciones permanentes.

Para aprovechar al máximo de él, la caja de la cámara de Pi debe montarse firmemente a una pared o un techo y debe orientarse correctamente. Este soporte permite inclinar y girar el dispositivo. Sólo apriete los tornillos cuando hayas encontrado la posición correcta y listo.

 

La caja de la cámara de Pi está diseñada ademas  para recibir el pequeño aro metálico necesario para atar la lente de ojo de pez magnetizada a la caja.

 

Software de la cámara

Esta es la parte que puede parece mas difícil si no fuera por el paquete  MotionPie. Esta aplicación inteligente viene como una imagen que simplemente escribir en una tarjeta SD y poner directamente en su Pi – sin código, ni enfangarse en infinidad de comandos linux.Puede que  parezca que hacemos  «trampa», pero funciona muy bien y nos evitara muchos problemas pues es muy  fácil de usar.

Descargar la imagen

Para instalar MotionPie necesita una tarjeta SD en blanco y la MotionPie imagen disponible aquí (golpee el botón de descarga verde grande). Puede utilizar una tarjeta SD de 4 Gb pero puede que desee algo más grande si desea utilizar las funciones de grabación de MotionPie.

Piense en una imagen como sistema operativo, como Windows. Esta imagen es una imagen dedicada para MotionPie, que hace muy fácil de instalar.

Una vez que haya descargado el archivo, descomprima los archivos en una carpeta y mover al siguiente paso.

Escribir la imagen en una tarjeta SD

Pop tu tarjeta SD en tu PC (utilizando un adaptador de tarjeta SD si es necesario) y abrir su imagen favorita de software de escritura – usar Win32DiskImager para Windows.

Abrir Win32DiskImager, debería ver la letra de unidad para la tarjeta SD en la sección superior derecha ‘dispositivo’. Asegúrese de que esto es justo antes de continuar.

A continuación necesitamos decirle a la aplicación que archivo de imagen que queremos  ‘quemar’ a la tarjeta SD. Haga clic en el icono de carpeta pequeño y vaya a la carpeta que extrajo los archivos de MotionPie. Haga clic en el archivo MotionPie.img y haga clic en ‘Abrir’

La ruta del archivo debe verse ahora en la sección de ‘Archivo de imagen’.

Ahora haga clic en ‘Escribir’ para  quemar la imagen en la tarjeta SD. Se mostrará una advertencia indicándole que puede dañar el dispositivo. No se preocupe, es un mensaje estándar. Haga clic en ‘Sí’ para continuar:

Nota: La opción ‘leer’ es para hacerlo al revés – lectura de la tarjeta SD y hacer un archivo – ideal para realizar copias de seguridad

Esta advertencia siempre se muestra  !no se  suste !.Una barra de progreso le dará una indicación del progreso pero  eta imagen no es muy grande por lo que sólo debe tomar unos pocos minutos:

Una vez completado, aparecerá un mensaje. Haga clic en ‘Aceptar’:

¡No retire la tarjeta SD todavía!  Ahora estamos listos para quitar la SD no te olvides de ‘expulsar’ el dispositivo de forma segura mediante el icono en la barra de tareas, hay una posibilidad que podría corromper la tarjeta SD ,aso que expulse la tarjeta de forma controlada !la Tarjeta SD está lista ahora, así que conectela ahora a su Pi

Programa de instalación

Tenemos que conectar el MotionPie a una conexión a internet por cable para el arranque inicial (ethernet), pues tenemos que ser capaces de recuperar una dirección IP. No podemos hacer nada de esto a través de una pantalla HDMI pues MotionPie no tiene una salida de vídeo (sólo verá una pantalla colorida).

Una vez que haya conectado todo, conecte su fuente de alimentación micro-USB para el Pi y encienda la Pi. Tenemos que dar al menos unos minutos para dejar la configuración inicial de instalación , así que espere pacientemente.

Dirección IP

Ahora necesita encontrar la dirección IP de su MotionPie para poder iniciar sesión en él. Usted podría iniciar sesión en su ruter  para encontrar las direcciones IP de los dispositivos conectados, pero hoy en dia es muy interesante  la app de Android ‘Fing‘ en Android, ya que es rápida y fácil y nos dara todo lo que haya conectado a nuestra red (incluyendo la raspberry Pi).

Abra Fing, haga una exploración en su red y busque su MotionPie junto con el número de serie (el número de serie es la parte después de’ MP’):

!Fing es grande para tomar direcciones IP!

Inicio de sesión

Esta parte es la fácil pues usando un portátil/tablet/teléfono conectado a la misma red que su MotionPie, simplemente escriba la dirección IP y pulsar intro (igual debería escribir en una dirección web). En el ejemplo anterior, estoy usando 192.168.1.9.

Debe cargar la interfaz de MotionPie En algún momento se le pedirá  un registro, que es simplemente ‘admin’ y sin contraseña. Para acceso remoto como SSH, el nombre de usuario es ‘root‘ y la contraseña es el número de serie de Pi (que se puede ver por encima cuando la dirección IP).

Utilizar SSH para configurar el adaptador de WiFi para que esta cámara no tenga que depender de una conexión ethernet por cable.

Aquí es lo que MotionPie parece en un teléfono Android .

La parte superior del icono izquierda  lleva al menú de configuración, donde puede ajustar todo tipo de cosas como el framerate, resolución, brillo, contraste, rotación, ubicaciones de almacenamiento y cargas más.  Luego tienes los iconos de la derecha que lleva a la cámara y captura de vídeo, modo de pantalla completa y más opciones. Para utilizar la misma interfaz en un PC o un tablet, es el mismo proceso. Simplemente introduzca la dirección IP y debería poder  ver la imagen captada por la camara de la Pi.

Actualmente no un comando de apagado en la interfaz pero parece una mejora que pronto vendrá . Puede ejecutar más de una cámara de Pi en MotionPie, de modo que se puede  crear una interfaz de seguridad completo:

¿Se anima  a usar su raspberry pi como sistema de seguridad?

Un adelanto de lo que esta por venir para las personas con movilidad reducida


Mientras terminan por hacerse accesibles los exoesqueletos  cuya implantación a gran escala seguro va suponer una revolución  en la vida de muchas personas , surgen ideas con tecnologia mas sencillas,   que buscan mejorar la vida de muchas personas

El dispositivo de movilización robótica Tek no es una alternativa para sillas de ruedas, sino una nueva plataforma de movilidad que reimagina completamente la forma en que las personas con paraplejía y otras discapacidades para caminar son capaces de moverse en el mundo.

La capacidad de sentarse independientemente y de manera segura, de estar de pie y moverse  por entornos que antes eran inaccesibles, ahora es posible, segura y disponible eso si se se dispone  de la cantidad de 15.000$  que es el precio que han puesto al sistema TEK RMD

Uno de los puntos  destacables es el sistema empleado para que una persona pueda situarse en el vehículo de forma autónoma  sin requerir una fuerza extraordinaria en los brazos  contando ademas  con un mando a distancia que permite mover a Tek RMD por la habitación para situarlo en la posición más adecuada.

Como vemos en el vídeo esta a medio camino entre una pequeña grúa y un segway pero desde luego con un resultado bastante sorprendente y muy prometedor

Datos técnicos Perfil de usuario recomendado:

  • Velocidad máxima 4.6km / h
  • Capacidad de la batería DC 24V (2x12V) 22Ah
  • Capacidad de Carga 120kg
  • Grado Máximo de Subida 3%
  • Radio de giro  60cm
  • Peso (vacío)  110kg
  • Cargador 24V 5A
  • Distancia   6km
  • Fuerza de la mano y del brazo requerida para el auto-montaje; Joystick para la conducción.
  • Altura perosona  – 1.40m a 1.90m
  • Peso persona (40kg a 120kg)

Aparte del elevado precio  , uno de los problemas que muchas personas ven es a la hora de subir escalones donde su fabricante no especifica el proceder (parece que  en este caso una silla de ruedas daría mayores garantías).

Aunque se  nos asemeja  una solucion provisional ,en todo caso sea bien venida cualquier ingenio qeu puede ayudar a mejorar la calidad de vida de las personas

Ya se puede reservar  en su web (http://www.matiarobotics.com/)  en Europa, a un precio de 15.000 dólares.

Como conectar inalambricamente su autoradio o viejo equipo wifi por menos de 10€


Hoy en día la verdad es que la tecnología ofrece posibilidades que hace unos años eran inimaginables. Algo muy evidente son los equipos nuevos, que ofrecen un sinfín de posibilidades,  donde, como no,  tenemos que incluir la conectividad,   pero ,incluso con una inversión relativamente pequeña , por muy poco  dinero,  es  también posible añadir características extra  a dispositivos que por su antigüedad o por su diseño no disponían de esa facilidad.

Una de las formas mas  sencillas de añadir conectividad inalámbrica   a un viejo dispositivo ( o nuevo que no disponga de esta conexión),  es usar a un sencillo  adaptador inalambrico , los cuales han dejado ser voluminosos y costosos dispositivos, para ser dispositivos bastante ligeros y económicos (unos 10€ en amazon)

Actualmente el estándar inalámbrico de transmisión de audio  de bajo consumo para la señal de bluetooth es  la versión Bluetooth 4.1  y lo ideal es que integre la tecnología  A2DP .

Prácticamente todos los  smartphones actuales disponen de conexión por bluetooth  , lo cual  lo hace ideal para conectar sin cables a cualquier equipo de audio , que claro cuente con conexión bluetooth , pero si no dispone también es posible con un dongle   , siempre que ese equipo cuente con entrada de audio analógica, pues el dongle hará de receptor bluettoth inyectando la señal de audio por el jack hacia el equipo de audio.

Respecto al uso de este tipo de  dongle es  muy sencillo: en primer lugar hay que hacer el emparejamiento  pulsando el botón de encendido (play) durante unos segundos y se activa el modo de emparejamiento. Se busca desde en el terminal con el que lo va a  emparejar ,y ya lo tiene listo para usar . Es importante resaltar que esta operación no habrá que realizarla mas veces , a no ser que cambiemos de terminal.

Una vez sincronizado el terminal con el dongle, ademas con los botones manejamos prácticamente todo, se pueden contestar llamadas, subir o bajar el volumen, reproducir o pausar la música o  manejar el salto de canciones:

  • Presionado el botón central, puede responder/finalizar/rechazar/volver a marcar una llamada y reproducir/pausar la música.
  • Pulse en unos segundos el botón «+»/ «-«, se puede subir el volumen/bajar el volumen.
  • Pulse botón «+»/ «-«, se puede convertir a la siguiente canción/canción anterior.

La carga por usb suele ser muy rápida gracias al bajo consumo  de este tipo de dispositivos , aunque también interviene  el modo ahorro de energía que muchos implementan ( como el Mpow ,que es uno de los dongle mas famosos)  permitiendo la desconexión automática en caso de ausencia de señal. En el caso del Mpow, éste  proporciona hasta 8 horas de tiempo de reproducción y sólo necesita 1,5 horas en cargarse completamente. Algo muy util del Mpow  es que se puede cargar y usar  a la vez (característica que otros dispositivos no soportan).

Algunas de las ideas para usar  este tipo de dongle:

  • Para usar con un teléfono al que se le haya estropeado el puerto jack de los auriculares (suele costar  más la reparación que este aparato y al final resulta muy útil).
  • Cualquier auricular con cable lo transforma en inalambrico, aparte de para radio de coche y equipos sin bluetooth, lo enchufas y listo…. para el precio que tiene es muy bueno.
  • Pera eliminar   el engorroso  cable auxiliar que tenga  en el coche,permitiendo ademas  la sincronización del movil con las llamadas, por lo que se tiene un manos libres baratísimo, !ya no es excusa para no tener un cacharro de estos!
  • En el caso que falle el  lector de cd’s del autoradio
  • En el caso de averia del conector usb de la radio cd
  • Para conectar de forma inalambrica  nuestro  viejo equipo HIFI analógico  a nuestro  smatphone
  • etc

Particularmente  otra característica que nos gusta del Mpow .la cual por cierto  no suelen implementar muchos receptores bluettooth incluso «profesionales»,  es el enlace doble  del receptor Bluetooth portátil , el cual   permite conectar dos dispositivos Bluetooth al mismo tiempo, carasteritica  que  puede ser muy util para el acompañante del conductor por ejemplo o para otra persona que viaje en el vehículo ( conecta con muchísima facilidad incluso  también con dos móviles y no cuesta reconectarlo en siguientes ocasiones siendo  muy rápido).

Referente al Mpow ,este ofrece un sonido de calidad muy alta pues  gracias  a que  cuenta con la tecnología A2DP para transmitir audio de alta calidad siendo la calidad del sonido  buenísimo y no tiene interferencias ni cosas raras. Incluso en las llamadas de WhatsApp se  oye con bastante calida , quitando el típico retardo de la app claro.

Obviamente la calidad no sera  tan buena según  la calidad de las canciones, por ejemplo si la baja de YouTube se escuchara  deficiente pero si utilizas Apple Music o Spotify la calidad sera  muy buena.

Por ultimo hablando del Mpow este ofrece una compatibilidad muy amplia: funciona con iPhone, iPod, iPad, teléfonos inteligentes Android, tabletas y otros dispositivos compatibles con Bluetooth ,etc. !y además, se puede conectar con dos dispositivos Bluetooth al mismo tiempo!!!

Si le interesa este dongle Mpow, que es por cierto uno de los mas vendidos y mejor valorados,  en Amazon se pude conseguir por unos 10€

Cómo acceder a sus archivos de Android y no morir en el intento


Uno de los accesorios imprescindibles que suele ofrecer todo smartphone en su caja es un cable USB a microusb  ,el cual  no  es solo sirve para cargarlo  sino tambien para transferir  archivos entre nuestro  PC y el terminal ,para lo cual lo primero que tiene que hacer es conectar al ordenador a través de dicho cable USB. Cuando el PC reconozca el móvil, los drivers se instalarán automáticamente y a continuación, deberia ver  un aviso en la barra de notificaciones del smartphone

Si accede a esa notificación en su terminal le debería  ofrecer tres opciones para conectar el smartphone:

  • Dispositivo multimedia (MTP) este es el método por defecto y el que todo el mundo suele optar
  • Cámara (PTP) para transferir fotos o para ordenadores que no acepten el MTP.
  • Sólo USB, para versiones antiguas de Windows

En caso de problemas ,si no tiene ningún aviso, también puede acceder a las conexiones USB a través de Ajustes > Almacenamiento, pulsar sobre los tres puntos para acceder al menú y pulsar sobre ‘Conexión USB a ordenador’.En la pantalla del PC deberá recibir una notificación indicando que el ordenador ha detectado el dispositivo y allí puede elegir que hacer (lo más normal es abrir la memoria del dispositivo en una ventana del explorador de archivos)…¿pero y  y si a pesar de todo no conseguimos ver el contenido de nuestro terminal en nuestro ordenador? Pues existen soluciones efectivas y rápidas para   transferir nuestros archivos desde el ordenador al smartphone bien mediante un servicio de almacenamiento en nube o  bien mediante un sinfín de aplicaciones  para ello como vamos a ver a continuación:

 

Servicios de almacenamiento en Cloud

El almacenamiento en la nube se está haciendo cada vez más popular  por lo que seguramente sea el método escogido por muchas  personas para almacenar sus archivos,  así  que en el caso de que no tenga a mano un cable USB o no le funcione  la sincronización, esta quizás sera  la alternativa mas sencilla para transferir archivos al ordenador siempre  que haya conectividad entre ambos  dispositivos, por ejemplo por wifi , eso si suponiendo que ambos equipos están conectados a la misma red wifi

Actualmente algunos de los servicios en la nube más populares son One Dive de Microsoft,   Google Drive ,Dropbox o  Amazon Cloud Drive  por citar algunos.Cada cada uno de ellos tiene su aplicación  tanto a nivel de terminal móvil como para ordenador  para  gestionar ese espacio de almacenamiento en la nube que nos ofrece (tanto gratuito como de pago).

One Drive es  la solución rebautizada de Microsoft , siendo de las mas populares  gracias a los 15GB de espacio gratis en la nube, espacio que se puede aumentar hasta 20 mediante referidos (500 MB por cada referido) e incluso podría llegar hasta un total de 35 GB  si crea una copia de seguridad del álbum de su cámara .

Microsoft OneDrive  ofrece muchas posibilidades permitiendo acceder a  documentos, fotos y otros archivos, y compártirlos desde su dispositivo Android, equipo (PC o Mac) o cualquier otro dispositivo.

Una  de sus puntos fuertes es la integración con Offiice pues permite usar las aplicaciones móviles de Office para mantener su productividad y trabajar en equipo sin importar donde esté.La suite online de Office pues la complementa a la perfección pudiendo crear, compartir y trabajar con cualquier documento office directamente desde su dispositivo y de forma gratuita.

La aplicación OneDrive para Android  permite trabajar fácilmente con archivos personales y del trabajo en cualquier lugar,pero ! ojo ! , Microsoft distingue entre One Dive empresarial  y particular de modo que para poder iniciar sesión en OneDrive para la Empresa, su organización o empresa  necesita  disponer de un plan de suscripción válido para empresas de SharePoint Online u Office 365 (es decir no es posible iniciar sesión con una cuenta de un directorio local).

Algunas de sus funcionalidades mas destacadas;

• Abrir y guardar rápidamente archivos de OneDrive en aplicaciones de Office como Word, Excel, PowerPoint y OneNote.
• Encontrar fácilmente las fotos gracias al etiquetado automático.
Recibir una notificación siempre que se edite un documento.
• Compartir álbumes de tus fotos y vídeos favoritos.
• Acceder a los archivos más importantes incluso sin conexión.

 

Google Drive

Como no podía ser de otra forma, Google también cuenta con su propio servicio de almacenamiento en la nube. A través de Google Drive puede invitar a otros usuarios a que vean, editen o dejen comentarios en cualquiera de sus documentos o carpetas y trabajar sobre ellos en tiempo real.

Recordándonos  claramente a su directo competidor  Microsoft One Drive , también permite 15 GB de almacenamiento gratuito en la nube

Permite guardar archivos de varios formatos  y obviamente uno de sus puntos fuertes es que es totalmente compatible con la experiencia Google y Android y todas sus apps.

Su uso es bastante sencillo pues simplemente entramos en la aplicación  Android y pulsamos sobre el símbolo de ‘+’,.Alli  aparecerá un pequeño menú en el podemos elegir ‘Subir’. Busque el archivo que quiera pasar al ordenador y espere que se suba. Una vez subido el archivo al Cloud de Google solo tiene que acceder en el ordenador o bien al cliente de escritorio del servicio en concreto

También puede acceder a sus archivos desde la interfaz  web de google drive estando validado con su cuenta de google  y por supuesto descargarlos a su ordenador.

 

Dropbox

Dropbox fue uno de los pioneros en  usar servicios de almacenamiento en la nube permitiendo mantener sus archivos y su equipo sincronizados pudiendo acceder fácilmente a lo que guarde en Dropbox desde todos sus dispositivos.

Un punto fuerte es poder enviar archivos grandes pues lo hace muy sencillo, incluso a personas que no tengan una cuenta de Dropbox. Además, también resulta muy sencillo colaborar con otros, gracias a funciones como el escáner de documentos, las carpetas compartidas o el acceso sin conexión.

Su limitación sin duda es lo escaso del espacio gratuito :sólo dos escasísimos  2GB (ampliables bajo pago)

Algunas de sus funciones:

  • Permite trabajar en archivos con otras personas mediante carpetas compartidas
  • Util escáner de documentos para convertir recibos, pizarras y notas en archivos PDF
  • Permite añadir comentarios en los archivos para compartir su opinión con el equipo
  •  Sincroniza, comparte y edita archivos Word, Excel y PowerPoint

Respecto a su uso es bastante sencillo, pero si le queda alguna duda he aquí un buen tutorial sobre su uso:

Amazon Cloud Drive

Amazon Drive  permite acceder fácilmente a los documentos, hojas de cálculo, música, fotos y vídeos que has almacenado allí.De ese modo se pueden guardar  archivos importantes en Amazon Drive y protégerlos aunque  los pierda o se estropee su  dispositivo Android. Se puede cargar su contenido en Amazon Drive desde cualquier ordenador y obtener  una vista preliminar de él, compártirlo  y disfrútar de este en todos los dispositivos.

El espacio ofrecido es escaso :sólo  5 GB de almacenamiento gratuito en la nube permitiendo administrar, editar, renombrar, borrar y descargar archivos de forma sencilla pero  una de sus bazas es ofrecer  almacenamiento ilimitado para fotos para los  usuarios suscritos a Amazon Premium ( desde Amazon Drive dispone de aplicaciones móviles gratuitas para cargar sus fotos y acceder a ellas, además de acceso seguro desde cualquier equipo).

Por cierto un punto fuerte es que no  tiene limitaciones de transferencia en cuanto al tamaño o tipo de ficheros

 

 

 

Aunque hemos citado algunos de los mas importante    hay muchos otros proveedores  que ofrecen  aun  mas   espacio  de forma  gratuita  para aumentar su atractivo e intentar capturar  a todo tipo de usuarios que quieran usar  sus servicios: por ejemplo,  estos son algunos

 

Aplicaciones para transferencia de ficheros por Wifi

Aparte de los servicios de almacenamiento  de ficheros en la nube  ya comentados , gracias a la conectividad también es posible mediante aplicaciones de gestión transferir archivos desde o hacia nuestros dispositivos móviles . Para permitir tal transferencia es importante destacar que  los dispositivos tienen que estar conectados a la misma red Wi-Fi, la cual puede ser la propia  red Wi-Fi del hogar  pero también puede ser una red wifi publica

Es interesante destacar  que también es posible crear una red Wi-Fi desde cualquier  smartphone Android  creando una zona wifi  al que conectaremos  nuestro ordenador  :tan sólo tenemos que ir a Ajustes > Conexiones inalámbricas y redes > Anclaje a red y Zona Wi-Fi

Algunas de las aplicaciones Android de  transferencia entre un dispositivo Android   y un ordenador   mas famosas son las siguientes:

 

WiFi File Transfer

WiFi File Transfer es una de  las utilidades mas interesantes que  permite subir y descargar  archivos desde/hacia su terminal Android a través de una conexión wifi mediante una interfaz web.

El funcionamiento es bastante sencillo pues una vez en marcha el servicio lanzado desde la propia  aplicación , solo necesitar ir a su ordenador  ,abrir  un  navegador e introducir la dirección que indica la aplicación: entonces se abrirá una página web desde la que puede descargar todo lo que necesite que tenga en su smartphone hacia su ordenador.

Si quiere hacer la operación inversa ( es decir copiar  archivos de su ordenador hacia  su smartphone ) ,  a la derecha en el interfaz gráfico  tiene la opción de subir archivos al directorio raíz de la memoria de su smarphone a  su pc. Esta opción es  cierto que es limitada porque no  se tiene un control total hacia  dónde guardar y copiar archivos, ya que funciona a través del protocolo HTTP, pero esta limitación queda sobradamente solucionada accediendo a través del protocolo  FTP ( deberemos tener instalado un cliente FTP como por ejemplo  FileZilla.)

Asimismo también esta disponible  la opción para activar el cifrado del tránsito de datos a través de SSH aumentando la seguridad en caso de que alguien rastree el tráfico dentro de la red Wi-Fi  (opción muy interesante  si se encuentra conectado a una red pública)

 

ES Explorador de Archivos

En realidad  hablamos de una potente suite pues   podríamos hablar de un «tres en uno» , ya que esta  app es  un administrador de archivos (permite a instalar aplicaciones, y chequear archivos comprimidos), explorador Multimedia (haciendo  clic para reproducir música / videos, chequear imágenes y /o documentos)  y un gestor de almacenamiento en la nube pues respalda a Dropbox, Box.net, SugarSync, Google Drive, Onedrive (SkyDrive), Amazon S3, Yandex y a otras plataformas en la nube.

Acceso al PC de mesa: a través de su smartphone vía WiFi con SMB

Para conectar  dos dispositivos primero abriremos la aplicación en el smartphone y en el menú que aparece por la izquierda bajaremos hasta el apartado de ‘Red’ y seleccionaremos ‘Remoto’. Para activarlo pulsaremos sobre ‘Encender’ y nos mostrará una dirección que comienza con ftp seguido de la dirección IP y después de los dos puntos el puerto al que debemos conectar.

En el cliente FTP del ordenador deberemos introducir la dirección IP donde pone ‘Host’ y el puerto al que conectar donde pone ‘Port’, el resto se puede quedar vacío. Una vez rellenos los campos pulsamos sobre QuickConnect y en los cuadros de abajo de FileZilla tendremos a la derecha las carpetas de nuestro smartphone y a la izquierda las de nuestro ordenador. Por supuesto al igual que antes los dos dispositivos deben estar conectados a la misma red Wi-Fi( como otras aplicaciones similares) .

Asimismo incluye funciones para clientes de FTP y WebDAV  permitiendo administre archivos en servidores FTP, FTPS, SFTP, WebDAV tal y como administra archivos en su tarjeta SD

 

 

 

Algunas otros rasgos  del ES Explorador de Archivos (Administrador de archivos):

  •  Administrador de archivos: Gestione sus archivos tal y como lo hace en su ordenador de sobremesa o en su portátil, empleando Seleccionar todo, Cortar/Copiar/Pegar, Mover, Crear, Eliminar, Renombrar, Buscar, Compartir, Enviar, Ocultar, Crear Acceso Directo, y Marcadores. Todas las operaciones se pueden realizar en archivos locales ( en su dispositivo Android) o incluso de forma remota (desde su ordenador conectándose a una red)
  • Administrador de Aplicaciones: Clasificar, desinstalar, hacer una copia de seguridad, y crear accesos directos para sus aplicaciones.
  • Administrador de archivos remotos: Cuando se activa esta función, puede administrar archivos de su móvil desde su ordenador.
  • Asistente para archivos ZIP y RAR: Le permite comprimir y descomprimir archivos ZIP, descargar archivos RAR y crear archivos ZIP cifrados(AES 256 bits).
  • Integrado en programas de vista previa y reproductores para diferentes archivos: Incluye fotos, música y vídeos; además, respalda terceras aplicaciones, tales como Quick Office, para mejorar la productividad. Ademas muestra las miniaturas para archivos APK e imágenes.
  • Buscador de archivos Bluetooth: Puede copiar y pegar archivos entre dispositivos conectados al Bluetooth. ES Explorador de Archivos (Administrador de Archivos) es compatible con OBEX FTP para navegar por los dispositivos y transferir archivos Bluetooth
  • Suprime tareas con un solo clic, aumenta la memoria y la velocidad de su dispositivo: Incluye un widget simple que permanece en la pantalla principal para hacerle saber el estado actual de su memoria RAM y suprimir tareas de forma automática, con una lista que le permita ignorar las aplicaciones que desee mantener abiertas. Para esta función se requiere el módulo de Administrador de tareas.
  • Administrador de Cache Cleaner y Auto-start: Eliminar archivos basura que ocupan gran espacio del almacenamiento y ralentizan el funcionamiento. Para esta función se requiere el módulo de Administrador de tareas.
  • Root Explorer: La última gama de herramientas de gestión de archivos para usuarios root.

Airdroid

Nuevamente hablamos de  una solución completa para controlar su smartphone desde el ordenador y entre  sus miles de funciones también permite  permite transferir archivos por wifi  siempre  que  los dos dispositivos  estén conectados a la misma red Wi-Fi para poder compartir información. Está app  no solo esta disponible en Google Play para nuestro smartphone : ttambién los esta  para  ordenador( e  incluso una solución web) .

Una utilidad de este potente aplicación es reflejar en nuestro ordenador la pantalla de nuestro smartphone, lo cual ,como vamos a ver abre un abanico inmenso de  utilidades: presentaciones remotas, envio de sms, gestion de mensajería , etc

AirDroid  pues permite acceder y manejar su teléfono o tableta Android desde Windows, Mac o la web, sin cables, y de forma gratuita. Las llamadas, los SMS y las notificaciones de aplicaciones que haya aceptado se verán en la gran pantalla del ordenador en el que esté centrando tu atención.

 

Obviamente puede controlar su Android desde el ordenador  escribiendo con un teclado físico y usando el control del ratón y ,por supuesto, usar cualquier aplicación en su ordenador que tenga  instalada en su terminal , como WhatsApp, WeChat o Line. (NO requiere “root”).

Otras características interesantes:

  •  Muestra notificaciones:Visualiza las notificaciones de aplicaciones permitidas de su teléfono en su ordenador. Permite contesta a mensajes de móvil (WhatsApp, Facebook Messenger, Telegram y Kik) desde clientes de escritorio.(Solo cliente de escritorio)
  • Copia de seguridad y sincronización:Guarda una copia de sus fotos y vídeos de tu teléfono a su ordenador.(Solo cliente de escritorio)
  • Compartir el portapapeles entre el teléfono y el ordenador.
  •  SMS & Gestión de contactos:Manda y recibe SMS, y gestiona los contactos del teléfono desde el escritorio.
  •  AirIME Use el teclado de escritorio para escribir en tu teléfono.(Solo cliente de escritorio)
  • Capturas de pantalla:guardar capturas de pantalla del teléfono con un clic, no requiere root. (Android 5.0+)
  • Aumenta la velocidad: Limpia la memoria y aumenta la velocidad del teléfono.
  • Buscar teléfono: localiza tu teléfono cuando lo haya perdido.
  • Cámara remota: obtenga  la imagen de ambas cámaras, delantera y trasera.
  • Aplicaciones y biblioteca: accede a sus fotos, tonos y vídeos, carga, instala y exporta apks.

 

En el contexto de transferir archivos entre terminal y ordenador ,basta con ejecutar la aplicación e introducir la URL que nos muestra , en nuestro navegador favorito de nuestro ordenador. Deberemos aceptar la conexión en nuestro terminal y tendremos acceso entonces desde el ordenador a los archivos del dispositivo, pero no solo a sus archivos !también a las aplicaciones, a los mensajes, llamadas, etc !.

Si tiene alguna duda este interesante vídeo nos enseña el proceso tan sencillo de manejo:

 

Este gran  suite  pues  puede constituir   una de la soluciones mas completas  para poder controlar nuestro terminal desde el ordenador, ya que como vemos podemos controlar el dispositivo a distancia  pudiendo acceder  a todos  sus recursos ( y no solo los archivos ) con la comodidad de la gran pantalla ,el teclado y ratón que ofrece nuestro ordenador  .No obstante   si lo que busca es solo transferir ficheros  entre ambos dispositivos quizás wifi File Transfer sea mas que suficiente para ese cometido( tenga en cuenta que no necesita instalar nada en el ordenador)

 

CNC basado en Raspberry Pi


Si está buscando un proyecto que utilice Raspberry P , podría estar interesado en este impresionante grabador CNC Laser controlado por una Raspberry Pi y por algunos elementos reciclados de dos viejas grabadoras de DVD  y construido por Xiang Zhai.

El grabador láser Raspberry Pi ha sido construido en efecto utilizando dos unidades de DVD rescatadas de viejos ordenadores de sobremesa  y con menos de $ 10 en partes adicionales compradas en eBay, todo ello controlado por la Raspberry Pi. Si le interesa el concepto no lo dude pues la idea es bastante extensible a otros campos porque abre la via  para utilizar el sistema para otros usos.

 

En la mayoría de los proyectos de este tipo  los  grabadores láser se fabrican utilizando placas Arduino   programando  directamente la placa Arduino,pero es esta nueva versión construida por  Xiang Zhai ,   con una  Raspberry Pi es capaz de proporcionar más potencia. Su creador explica que la razón por la que elijio una  Raspberry Pi es porque es un dispositivo mucho más potente que Arduino , compatible con un sistema operativo completo y los pines GPIO pueden ser controlados por python (un lenguaje más intuitivo y más sencillo que C aunque la desventaja de python sea la velocidad lenta).Ademas  no hay  que comprar un controlador independiente para este proyecto   pues se puede controlar todo con un único Raspberry Pi pues este puede hacer muchas cosas diferentes sin recargar el firmware.

Además, hay personas de proyectos que ejecutan LinuxCNC en Raspberry Pi y utilizan una placa PIC 32 externa para controlar CNC. Es una gran idea, pero el autor aun queria o minimizar el costo. En su lugar, escribío  su propio intérprete python para ejecutar código G directamente. El grabador láser 2D CNC, es realmente muy fácil de controlar y no requiere demasiadas técnicas de programa.»

 

 

IMPORTANTE

Es muy importante tener en cuenta que el láser utilizado en este proyecto podría quemar la retina del ojo humano en menos de  un milisegundo antes de que el globo ocular sea capaz de reaccionar. Incluso un haz de reflexión aleatorio durante el grabado podría ser> 50 mW (para la comparación, un puntero láser regular es de 1 mW), y hacer daño permanente a los ojos, los ojos de los niños, o los ojos de los animales domésticos.  Debe s iempre usar gafas de seguridad Láser  cuando esté cerca del grabador de trabajo. Una adecuada para láser de 650 nm debe ser de color verde.

Instrucciones paso a paso

Componentes necesarios:

  1. Una Raspeberrry  pi (corriendo Raspbian o algun otro SO  que  soporte GPIO)
  2.  Dos unidades  regrabadoras de DVD recicladas.
  3. Para poder grabar, usted necesita el diodo del laser 200mW de un grabador  de DVD. Un diodo reciclado de un lector de DVD R o CD R no hará nada. Un diodo procedente de  un grabador de CD puede estar bien en términos de potencia (~ 100mW), pero el diodo láser de un grabador de CD es de infrarrojos, lo cual  puede ser muy peligroso pues no se puede ver.
  4.   Una caja de láser TO-18 5.6mm (Como este http://www.ebay.com/itm/251316903193?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649)Asegúrese de obtener un 5.6mm uno. Hay otro tipo 9mm.
  5.   Dos puentes H de doble canal. El puente AH es un circuito que contiene cuatro interruptores (efectivos) que pueden aplicar una tensión a través de una carga (motor de corriente continua o una bobina de un motor paso a paso) en cualquier dirección.
  6. Dos motores paso a paso  reciclados de los DVD  pues son motores paso a paso bipolares bifásicos de 4 hilos. Requieren voltaje verdaderamente reversible en cada pares del alambre. Se necesitan dos puentes H para cada motor paso a paso. Así que el total de cuatro puentes H para dos motores strepper. Algunos controladores de motor paso a paso famosos como ULN2003 son para los motores paso a paso de 5 alambres, por lo que no se pueden utilizar para controlar los motores paso a paso de DVD. Puede crear sus propios puentes H usando 4 transistores NPN y 4 PNP y probablemente convertidores TTL (el pin GPIO de RPi es 3.3V para que se requieran chips TTL lógicos). O simplemente puede comprarlos. Hay una gran cantidad de circuitos H puente integrados disponibles en el mercado, como L298. Los utilizados  son L9110s Dual H Bridge comprado en Ebay. Son de bajo costo (~ $ 2 cada uno), compactos (.8 «x1») y son suficientemente potentes (~ 800mA).  L9110s también se conoce a veces como HG7881.En cuanto al puente H, es necesario asegurarse de que el límite de corriente continua del circuito es superior a 500mA. Por lo general, el motor paso a paso en una unidad de DVD está clasificado en 5V y cada bobina tiene una resistencia de 10ohm. Así que la corriente a través de cada bobina sería 500mA! Una corriente muy grande!
  7. Un regulador LM317, un transistor bipolar de NPN de energía (como E3055, debería ser capaz de manejar continuo 200mA al menos), algunas resistencias, condensadores y un paquete de puentes. El LM317 es para el controlador láser. La energía NPN es para hacer un interruptor para el láser. Si no desea soldar un conductor por su cuenta, seguramente puede comprar un controlador de láser para <$ 5. El controlador láser debe ser capaz de salida de al menos 200mA a 2V y tienen la función de habilitar / deshabilitar. De hecho, será una mejor idea reemplazar el NPN bipolar con un transistor MOSFET. Hay muchos de ellos disponibles en el mercado y son muy baratos. Sólo asegúrese de que la corriente continua soportada por el MOSFET está por encima de 200mA.
  8.   Un soldador, destornillador y algunos accesorios de ferretería .

PASO 1 : Desensamble las unidades de DVD (escritores)

Hay un montón de video tutoriales  para este paso, así que lo veremos rápidamente en imágenes

Se parte de dos DVD reciclados


Es importante que al menos una unidad o sea regrabable

Todo lo que necesita del DVD son dos cosas:
  • El  motor paso a paso con la corredera (parte inferior derecha en la imagen de abajo)

Desmontando  un DVD
  • Los diodos láser (ver imagen abajo). Tenga mucho cuidado pues  los diodos láser en el DVD son muy frágiles. Asegúrese de no romperlos.

Dos diodos láser de 5.6mm (infrarrojos y 650nm rojo) comparado con un conector USB.

Motor paso a paso (derecha) y deslizante lineal. Soldar cuatro cables en el motor paso a paso.

Nota :Hay otras cosas buenas que puede salvar de la unidad de DVD y mantener para proyectos futuros, como un motor de 9 V cc cerca de la puerta, un motor sin escobillas que gira los DVD, algunos reductores de choque y algunas piezas de lente y óptica en miniatura. También puede encontrar cuatro imanes fuertes cerca del diodo láser. No los tire. Resultarán útiles más tarde.

PASO 2: Ensamblaje de los diodos láser

Ahora tiene dos diodos láser. Uno es el infrarrojo que no necesitamos. El otro es el diodo rojo 650nm (por lo general tiene una letra «R» en él) y es el que necesitamos. El diodo normalmente tiene tres pines que forman un triángulo (uno de los pines   es NC). Usted necesita un multímetro para averiguar qué dos clavijas son cátodo y ánodo. El voltaje delantero a través del ánodo y del cátodo debe ser alrededor 1.4V y la resistencia delantera debe ser 20-40k ohmios. Si la resistencia delantera es demasiado alta, entonces el diodo láser es usado excesivamente.

La carcasa del diodo láser

Diodo láser (centro izquierdo) y alojamiento láser
 
Empujar el diodo en la cabeza de la carcasa
Diodo láser en la cabeza de la carcasa
Soldar dos cables en el diodo
Utilice un poco de contracción de calor para aumentar la fuerza
Debe llegar hasta aqui:

¡Hecho!Ponga cuidadosamente el diodo láser en la cabeza de la carcasa del láser. Puede utilizar el cuerpo de la carcasa del láser para ayudar a golpear contra el diodo y empujar el diodo en la cabeza de la carcasa. El diodo debe encajar perfectamente en la cabeza. Asegúrese de que los pines estén bien. Entonces suelde dos cables a los terminales  y ensamble la cubierta al conjunto.

 

PASO 3 : Unidad láser LM317

Un diodo láser es como un fotodiodo pero equipado con una cavidad resonante. El diodo láser es un enorme sumidero de corriente. Una vez que el diodo conduce, genera mucho calor, y el calor disminuye más lejos la impedancia del diodo. Por lo tanto, es un sistema de retroalimentación positiva inestable. Si simplemente pone una batería de 1,5 V a través del diodo,  quemará el diodo o agotara la batería de inmediato. Necesitamos un controlador láser que pueda emitir una corriente constante al diodo.

Hay muchas formas de hacerlo,pero u na de las formas más populares y menos frustrantes es utilizar un regulador de corriente continua como por ejemplo usando   un  LM317   Mediante la adición de una resistencia través del pasador de ajuste y del pasador de salida, el LM317 puede generar una corriente constante de ~ 1,25 V / R.

[De hecho, LM317 se utiliza principalmente como un regulador de voltaje. Mantiene un 1.25V a través del perno de la salida (perno 2) y del perno del adj (perno 1). Mientras tanto, controla la salida de corriente desde el pin adj que es muy baja (usualmente <100 uA). Por lo tanto, añadiendo una resistencia R a través del pasador 2 y 3, podemos tener salida de corriente de 1,25V / R desde el pasador 2 al pasador 1. A continuación, agregamos el diodo láser a través del pasador 1 y GND. Dado que el pin 1 está prohibido hundir corriente, toda la corriente de 1,25V / R emitida por el pin 2 fluirá a través de R y diodo láser a GND. La hoja de datos oficial de LM317 se puede descargar aquí.

Aquí hay un buen circuito LM317 láser circuito que encontrado en  LM317 Laser Driver :
En esta  implementacion se sustituyen las dos resistencias paralelas de 10 ohmios por dos resistencias de  0.5 vatios de 12 ohmios pues l a corriente máxima que va  a pasar a través del diodo es 200mA.
Asegúrese de no estropear el pasador de ajuste y el pasador de salida.  Se necesita por razones obvias u n disipador de calor para el l LM317.

También necesita un conmutador que pueda ser controlado por RPi  por ejemplo  usando  un transistor de la energía NPN E3055. Usted puede elegir lo que cada uno quiere, sólo asegúrese de que el transistor puede soportar corriente continua CE> 300mA    ( también tendra qeu poner un disipador de calor en él).

Esquemas del controlador láser y el interruptor.El láser está encendido sólo cuando el puerto «Switch láser» es lógico alto (> 3V).Asegúrese de no estropear la orden de pin de LM317

LM317 driver láser

 

Controlador láser (superior) y la alimentación E3055 NPN (inferior)

NOTA: Los diodos láser son dispositivos muy delicados y s on extremadamente vulnerables a la condición aplicada en ellos. Una tensión o corriente inestable, una corriente / tensión excesiva (incluso durante un tiempo muy corto) podrían dañarlos permanentemente. Así que siempre descargue usted mismo antes de tener el diodo, y siempre use un controlador de corriente constante para alimentarlo .  T ambién podría dañar el diodo conectando primero el controlador a la fuente de alimentación y luego conectar el diodo al controlador. El diodo siempre debe estar conectado al controlador antes de aplicarle cualquier energía.  

 

 

PASO 4 : Ensamblar la máquina

¡Ahora usted tiene dos etapas lineales idénticas y es hora de juntarlas! Hay muchas maneras de hacer esto. Para máquinas CNC de 2 ejes, la mejor manera es la que da Groover @ instructable . En la configuración de Groover, la muestra de grabado se une al eje x, de modo que sólo se mueve en la dirección x. El láser está unido al eje y por lo que sólo se mueve en la dirección y. Esta configuración minimiza el peso en cada uno de los ejes.

Corte una placa de acero de 2 «x2» fuera de la caja de DVD y peguélo a la etapa de eje x como la base de soporte de muestra. Puesto que la caja del DVD se hace del hierro, usted puede utilizar los imanes fuertes rescatados del sistema óptico del laser para ayudarle a estabilizar la muestra del grabado en la base.
El diodo láser generará mucho calor. Y es importante disipar este calor. De lo contrario, el diodo se rom,pera  rápidamente. Corté un disipador de calor de 1 pulgada de cubo de un viejo disipador de calor de la CPU deun pc y  perforé un agujero a pesar de ello. El agujero es perfectamente grande para sostener el láser. Pegue el disipador de calor en las etapas del eje y.
La cuestión más importante es el eje x, el eje y y el cuerpo del láser tienen que ser perpendiculares entre sí.

PASO 5: Conecte el puente H a los motores paso a paso

Cuatro clavijas de conexión en un motor paso a paso de 4 hilos y 2 fases.Por lo general se organizan en el siguiente orden: a1, a2, b1, b2.(A1 y a2 son los dos conductores de la bobina a; b1 y b2 son los dos conductores de la bobina b).El uso de un multímetro ayudará a verificar esto.El motor paso a paso en DVD es un motor bipolar bifásico de 4 hilos. Hay dos bobinas independientes dentro. Cada bobina tiene una resistencia de 10 ohmios. Por lo general, los motores paso a paso DVD se clasifican en 5V. ¡Por lo tanto la corriente nominal a través de cada bobina es 500mA! Las clavijas RPi GPIO sólo pueden emitir menos de 20mA para que RPi no pueda controlar un paso directamente. H se requieren puentes.

 

En los escritos de la mayoría de las personas, definen la bobina 1 y la bobina 2 y el nombre 1a, 1b como los dos conductores de la bobina 1, y 2a, 2b como los dos conductores de la bobina 2. No importa, siempre y cuando sepamos qué nosotros estamos haciendo. Al menos en este post se  mantiene la terminología coherente.

La hilera central del motor paso a paso bipolar se puede considerar como un imán de barra (en realidad es circular). Obviamente, a partir de la figura anterior, si conducimos sucesivamente la corriente en la bobina a1, b2, a2 ​​y b1, la hiladora girará en la secuencia deseada. Para hacer esto, podemos aplicar una secuencia de voltaje a a1, b2, a2, b1 como: 1) alto, bajo, bajo, bajo. Por lo tanto, sólo a1 y a2 están activados. Dado que a1 a2 tienen la misma polaridad (o opuesto dependiendo de cómo lo defina), el hilador apunta a a1
2) bajo, alto, bajo, bajo. Por lo tanto, sólo se activan b2 y b1. Spinner está apuntando a b2
3) bajo, bajo, alto, bajo. Por lo tanto, sólo a2 y a2 están activados. Spinner señala a2
4) bajo, bajo, bajo, alto. Spinner apunta a b1.
Vaya a 1).

Denotan alto como 1 y bajo como 0. La secuencia puede escribirse como 1000.0100.0010.0001

La ventaja de esta configuración es que es muy fácil de entender y por lo general el motor paso a paso se mueve con mucha precisión. Sin embargo, puesto que en cada paso sólo se activa un par de bobinas, el par aplicado sobre la hiladora no es muy grande.

Para lograr un par alto, una forma más popular es aplicar la siguiente secuencia: 1100,0110,0011,1001. Y el hilador estará apuntando a medio de a1 y b2, medio de b2 y a2, medio de a2 y b1, medio de b1 y a1 consecuencialmente. Y el par se duplica. Esto se denomina modo de paso completo o modo de par alto o modo de dos fases .. y suele ser el modo utilizado.

Si el par de torsión no será un problema, entonces podemos usar una secuencia de 8 pasos: 1000, 1100, 100, 100, 0010, 0011, 001, 01001. La hilera girará 8 pasos en lugar de 4 pasos para girar el mismo ángulo. Esto duplica la resolución. Y el costo es el par no uniforme aplicado al motor paso a paso. Esto se denomina modo de medio paso.

Por lo general, para DVDs, los deslizadores lineales se mueven alrededor de 0,15 mm cada paso completo del motor paso a paso, lo que corresponde a una resolución de ~ 170dpi. Lo suficientemente bueno para los proyectos caseros. Si se implementa el modo de 8 pasos, entonces la resolución es 0.075mm / paso o 340dp, similar a la impresora normal.

Para el grabador láser, no hay ninguna carga grave en el motor de pasos, así que se elije el modo de medio paso o el modo de 8 pasos.

Como se mencionó, RPi no puede conducir el motor paso a paso directamente debido al límite de corriente. En realidad, además de alimentar los LED de baja potencia, los pines GPIO de un RPi suelen funcionar como conmutadores lógicos. En el modo de salida, son lógico Alto (3V) o bajo lógica (<0.7V). AH bridges es un «traductor» que traduce estas lógicas High o Low en fuentes de energía que tienen alta tensión o baja tensión.

Un esquema conceptual del puente H (de wiki)Arriba se muestra un  a esquema  conceptual del puente H (tiene una forma similar con la letra «H»). Un puente H tiene dos modos de funcionamiento: (S1 S4 cerrar, S2 S3 abierto) y (S2 S3 abierto, S1 S4 cerrar). En el primer modo, la corriente fluye hacia la derecha a través del motor y en el segundo modo, la corriente fluye hacia la izquierda a través del motor. En realidad, este puente H nunca se utiliza. Una manera común es usar el transistor como interruptores eléctricos. Vea la figura abajo.

Arriba vemos un esquema conceptual muy simplificado de NPN  .NUNCA construya un puente H basado en este gráfico .Probablemente quemará los transistores o incluso el Pi.Un puente H práctico requiere resistencias limitadoras de corriente, diodos inversos y chips TTL lógicos.Por favor, consulte más de otras fuentes si desea construir un puente H de trabajo desde cero.

Cuando A es lógico bajo (0V) y B es alto lógico (+ V), entonces el transistor 1 y 4 son conductores mientras que 2 y 3 están abiertos; Cuando A es lógico alto (+ V) y B es lógico bajo (0V), entonces el transistor 1 y 4 son oepn mientras que 2 y 3 son conductores. Cuando tanto A como B son lógicos altos, 2 y 4 son conductores, 1 y 3 están abiertos, el motor se detiene; Cuando tanto A como B son bajos, 1 y 3 son conductores, 2 y 4 están abiertos, el motor se detiene.

Por lo tanto, ajustando A y B alto o bajo, podemos controlar la dirección actual a través de una carga. Para cada motor paso a paso de dos hilos de 2 fases, hay dos bobinas independientes que necesitamos controlar. Así que un total de 4 puentes H se requieren para controlar los dos motores paso a paso.

Hay un montón de H integrado puente disponible en el mercado. Para mi caso, necesito 500mA a través de cada puente de H así que L9110S es suficiente (L9110S puede permitirse 800mA a través de cada puente de H). Cada L9110S contiene dos H puente para que dos de ellos es suficiente. Hay módulo L9110S para <$ 2 cada uno en el mercado. ¡Muy conveniente!  En el mercado puede vernir marcado como  L9110 o  L9110S ..

Además, L9110S tiene diodos internos de sujeción para conducir la corriente inversa generada por la parada repentina de los motores paso a paso. Esto protege el circuito. L9110S es compatible con el nivel de salida TTL / CMOS para que pueda conectarse directamente a RPi.

Dos puentes L9110 duales H (tambiénconocidoscomoHG7881).Son 0.8 «por 1» grande
Cada puente doble controla un motor paso a paso.A la derecha, hay a1, a2, b1, b2 conectores a los motores paso a paso (de arriba a abajo).En el lado izquierdo, hay pines de control lógicos para a1, a2, b1, b2 (en realidad se denominan A-IA, A-IB, B-IA, B-IB) y VCC y GND.

PASO 6: Controlar la máquina usando Raspberry Pi

Ahora esta es la parte clave. Debido a que no se esta utilizando controladores externos de motor paso a paso por lo que tenemoso que incorporar la función de los controladores externos paso a paso en el software ( se usa python para hacer el trabajo).

La gente dice que RPi no es un dispositivo de tiempo real porque tiene un sistema operativo completo en él y python es muy lento. Sin embargo, en mi caso, estos problemas no causaron ningún problema.

El código de python que escribío el autor  incluye las siguientes funciones:
1. Una clase de motor paso a paso bipolar encapsulado . Incluía información como fase y posición. Tiene una función de compilación .move (dirección, pasos) que convierte comandos de movimiento en una secuencia de comandos GPIO.output () que hace girar los motores paso a paso.
2. Intérprete de códigos AG: lea el código G y envíe los comandos correspondientes a los objetos bipolares de motor paso a paso. Para los comandos G02 y G03 (interpolación circular), el intérprete realiza la interpolación y convierte los comandos en una secuencia de movimientos rectos.

La parte más difícil es cómo controlar más de un motor paso a paso simultáneamente. La idea es realmente muy simple y se puede extender a cualquier número de motores. Ya sabemos cómo controlar un motor. Ahora supongamos que tenemos dos motores: MX y MY, y queremos convertir MX 12 pasos y MY 15 pasos simultáneamente en 6 segundos. Primero encuentre el multiplicador menos común (LCM) de 12 y 15, que es 60. Ahora divida 6 segundos por 60 obtenemos dt = 0.1sec. Establecer 60 bucles. Antes del final de cada ciclo, utilizamos los comandos time.sleep (0.1). Así que se tarda 6 segundos para terminar el bucle. Y nos movemos MX un paso cada 5 lazos y mover mi un paso cada 4 bucles. Después de 60 lazos, MX se mueve 60/5 = 12 pasos y MY se mueve 60/4 = 15 pasos. Y tanto MX como MY se movían a velocidades constantes.

00001 00001 00001 00001 00001 00001 00001 00001 00001 00001 00001 00001 (60 dígitos, 12 unidades)
0001 0001 00 01 0001 0001 0001 0001 00 01 0001 0001 0001 0001 00 01 0001 0001 (60 cifras, 15 cifras)

Para más de dos motores paso a paso, solo busque el LCM de todos los pasos (ignore 0).

Usted puede descargar todo el código de python aquí Mi RPi CNC Laser Engraver Código :

Puedes encontrar tres códigos de python:

Proyecto: raspberrypi-cnc-laser-engraver

El proyecto en Python lo componen 6 modulos:

  • Bipolar_Stepper_Motor_Class.py define la clase Bipolar_Stepper_Motor. Por defecto, la línea 5 es comentada y la línea 7 es válida. Esto corresponde a una secuencia de medio ángulo de 8 pasos. Si el par máximo es deseado, puede comentar la línea 7 y descomentar la línea 5 para seleccionar la secuencia de 4 pasos en ángulo completo.
  • Motor_control.py define un conjunto de funciones como LCM (para calcular el lcm de dos enteros) y Motor_Step (para controlar dos motores simultáneamente). Por lo general, no es necesario modificar nada.
  • Gcode_executer.py.  Este es el programa principal. Es necesario modificar la línea 25 (nombre del archivo de código G), la línea 29 (números de pasador del motor paso a paso X), la línea 31 (números de pasador del motor paso a paso Y), la línea 32 (número de pasador del interruptor láser), la línea 35, Resolución de la máquina en unidad de mm / paso) y línea 38 (velocidad de grabado). El código lee e interpreta el código G, y envía comandos correspondientes a las funciones de control del motor.
  • Spiral.nc : Este es un simple código G que traza una pequeña espiral. Puede probar perfectamente si la máquina puede procesar el código G, especialmente la interpolación circular G02 y G03, correctamente.
  • Grid.nc: Un simple código G que traza varias líneas rectas para formar una cuadrícula. Código perfecto para probar la máquina y hacer un sistema de coordenadas!

Actualmente Gcdoe_executer.py sólo acepta un número limitado de comandos G: G90, G20, G21, M05, M03, M02, G01, G02, G03.
El código puede reconocer comandos G1F (velocidad de grabado), pero simplemente ignorarlo. La velocidad de grabado se ajusta por la línea 38 en la unidad de mm / seg.

Como se mencionó al principio de este post, D. Miller hizo algunas mejoras a mi código para que el código pueda trabajar junto con la extensión inkscape GCodeTools y permitir el grabado remoto a través de otro pequeño script de python que escribió.

 

La versión modificada se puede descargar desde https://github.com/iandouglas96/engravR

PASO 7: ¡Grabado!

Después de Groover ( por Groover en instructable ), se usa Inkscape para hacer código G. Inkscape es un editor de gráficos vectoriales de código abierto y soporta varios sistemas operativos (windows, linux, Mac), lo que significa que deberías poder instalarlo en Raspbian! No se intenté. Simplemente puede usarsu pc y envíar su  diseño al RPi.

Necesita una extensión de grabado láser para convertir el gráfico vectorial en códigos G. Hay varios diferentes código de extensión G. El que yo uso puede descargarse aquí Inkscape-Laser-Engraver-Extension

[Nota: Ell autor escribío su intérprete de código G de python basado en el código G generado por esta extensión de Inkscape. Así que el código sólo puede tratar con un número limitado de comandos G, suficiente para el grabado con láser, aunque, afortunadamente. Para los códigos G dados por otro generador, mis códigos podrían no ser capaces de manejar todos los comandos. Es posible que deba modificar el código python por su cuenta.]

Aquí está la instrucción paso a paso sobre cómo generar código G que el código python puede procesarlo.

Paso 7-1: Instalar Inkscape y Inkscape-Laser-Engraver-Extension

Inkscape se puede descargar gratis aquí http://inkscape.org/en/
Se ejecuta en Windows, mac y varios sistemas operativos Linux.  Luego descargue Inkscape-Laser-Engraver-Extension

Para instalar la extensión, simplemente descomprima el archivo y copie todo en la carpeta de instalación de Inkscape. Por ejemplo, en Windows 7, si Inkscape está instalado bajo
C: \ Archivos de programa \ Inkscape
, Luego simplemente copie todo desde Inkscape-Laser-Engraver-Extension a C: \ Archivos de programa \ Inkscape \ share \ extensions
Y luego reinicie Inkscape, la extensión ya debe estar instalada. Para verificar esto, ejecute Inkscape y busque el elemento «Grabador láser» en «Extensión» en la barra de manu.

La extensión Laserengraver se ha instalado correctamente

Nota: Algunas personas informan que la extensión Laserengraver no funciona en Inkscape de la última versión. Si eso te sucede, utiliza Inkscape 0.48. El instalador de Windows se puede encontrar en la parte inferior de esta página.

Paso 7-2: cambiar el tamaño de la página

Abra Inkscape, vaya a «Archivo» => «Propiedades del documento» => «Página», bajo el cuadro «Tamaño personalizado», cambie las «Unidades» a «mm» (milímetro) y luego ponga 36 y 36 en ambos «Ancho «Y» Altura «. A continuación, cierre el cuadro de diálogo.

Verá que la página en blanco se convierte en un pequeño cuadro cuadrado. Zoom en esa caja.

Paso 7-3: trama, texto, crear, un montón de diversión ~

Puede escribir textos, graficar gráficos o incluso pegar png / bmp en el cuadro.

Pulse «Ctrl» y «A» para seleccionar todo lo que se traza, bajo «Path», haga clic en «Object to Path». O simplemente presione «Mayús» + «Ctrl» + «C». Estos pasos son necesarios si tiene texto u otros objetos externos.

Convertir objetos en ruta

Paso 7-4: Generar código G

Va a «Extensiones» => «Laserengraver» y haga clic en «Laser …». Un cuadro de diálogo saltará. Puede seleccionar «Directorio», «Unir» y modificar otra preferencia en «Preferencia». En «Laser», escriba el nombre del archivo (debe adjuntarse a la extensión .nc). A continuación, haga clic en «Aplicar».

Convertir el objeto en código G

Un cuadro de diálogo dirá «láser de trabajo, por favor espere ..».

Si se selecciona «Dibujar gráficos adicionales para depurar la ruta de grabado» en «Preferencias» antes de hacer clic en «Aplicar», Inkscape dibujará muchas flechas en la parte superior del gráfico, mostrando los movimientos dados por el código G generado.

¡El código G se ha generado correctamente!Muchas flechas.

Paso 7-5: Pase el código G a RPi

Si utiliza un ordenador portátil / escritorio para generar el código G, entonces tiene que pasar el código G a RPi usando ssh u otras herramientas. El código G debe colocarse en la misma carpeta junto con las rutinas de python.

Paso 7-6: ¡Haga la modificación necesaria en el código python y grabe!

Por lo menos desea cambiar el nombre del archivo de código G en Gcode_executer.py (línea 25). Algunos otros cambios, digamos, números de pin (línea 29, 31, 32), resolución (línea 35, 36), velocidad de grabado (38), se pueden cambiar si usted los entiende.

Escriba «sudo python Gcode_executer.py» en el terminal para ejecutar las rutinas de python y diviértete!

 

NOTAS

  • Acerca de la capacidad del grabador: Debido al límite de tamaño de las unidades de DVD, la máquina sólo puede grabar en un área de 36 mm por 36 mm .. Por lo que puede hacer pequeñas piezas de madera, cartón de plástico o parte de los casos de iPhone, pero no más grande.
  • El láser utilizado aquí es de 200 mW 650 mm de diodo láser rojo. Corta papel de carta bien. Pero no es lo suficientemente poderoso como para cortar cualquier cosa más gruesa y dura. De hecho, se prefiere que la superficie de trabajo sea de color negro para que pueda absorber la mayor cantidad de potencia láser posible. Para grabar en tablero de plástico transparente, como se muestra arriba en el icono de la moneda icono de la universidad icono, tengo que utilizar un marcador negro para pintar la superficie y limpiar la tinta después del grabado. Sin embargo, creo que para una hoja de espuma negra delgada (<3 mm de espesor), y dado suficiente tiempo de grabado, el láser debe ser capaz de cortar a través, como Groover mostró en instructable.

 

 

 

 

Ha habido muchos ejemplos de personas que usan Arduino para controlar CNCs. Probablemente puede encontrar toneladas de programas en C disponibles que se ejecutan directamente en Arduino para procesar el código G (una famosa es grbl). También hay controladores CNC disponible como MATH3 en el mercado que pueden ser controlado por puertos paralelos o en serie….pero este proyecto llega a un paso mas de simplificación usando solo una placa para todo

Para obtener más información sobre el nuevo grabador láser Raspberry Pi puedes visitar la página web Funofidy para más detalles. .

 

 

Sistema de aviso de accesos y cortes de suministro eléctrico sin coste


En efecto hoy en día ya no es necesario abonarse a un costosísimo sistema de alarma ni tampoco adquirir un nuevo sistema de alarma  pues hoy en día si tiene  un viejo smartphone  que ya no use, gracias a la nueva aplicación Seguricasa free    disponible  gratuitamente para su descarga en Google Play , se  pueden enviar  notificaciones automáticamente por correo electrónico  ( o por SMS en la version premium  )   en el momento que se detecte la apertura o cierre de la puerta gracias al sensor de proximidad que incluye cualquier Smartphone.  Asimismo, también puede enviar notificaciones si se detecta corte de red ya que dejaría de estar alimentado externamente el Smartphone (por el cargador del terminal), circunstancia que puede ser monitorizada y procesada dentro de la aplicación y que fácilmente podemos entender como falta de red de corriente alterna.

Seguricasa es una solución ideal por tanto  para aquellos que no están dispuestos a pagar una cuota por un sistema de alarma, pero les gustaría saber lo que ocurre en sus propiedades.

La solución es única, pues no es necesario adquirir ningún hardware adicional, ya que se basa en un Smartphone con SO Android 4.1 (Yelly Bean) o superior, para gestionar tanto los accesos, como los cortes de red del suministro eléctrico de una vivienda o local.

Basta con insertar una SIM en su viejo Smartphone, instalar la aplicación Seguricasa y   mantener el Smartphone conectado al cargador, para que desde ese momento, en cuanto defina el número del teléfono y las cuentas de correo de origen y de destino, pueda recibir   a voluntad   notificaciones por SMS o por mail, de cualquier anomalía que suceda en el suministro de corriente alterna de su vivienda.

En el caso de que se desee también monitorizar los accesos, tampoco se necesita ningún hardware especial: simplemente tendrá que fijar su viejo Smartphone   cerca de la puerta de acceso mediante un velcro o similar , y colocar un soporte solidario a la puerta que pueda cubrir aproximadamente al menos 1cm la parte superior del Smartphone, para  que en cuanto  abramos la puerta  automáticamente oculte el sensor  y de esta forma ser envíen según se defina,   notificaciones por SMS o por mail de cualquier acceso  ( obviamente si ha definido  el número del teléfono  y las cuentas de correo de origen y de destino dentro de la propia aplicación).

Montaje

Pare este montaje vamos a necesitar  instalar la aplicación “Seguricasa ” en un Smartphone con SO Android 4.1 (Yelly Bean) o superior. También es importante destacar que   si se desea almacenar las notificaciones de SMS o e-mail, el terminal debería contar al menos con 128MB de espacio en la SD externa para almacenamiento de logs.

 

El montaje es muy sencillo, pues solo habrá que descargar versión gratuita de la aplicación  Seguricasa  desde Google Play  aqui  (o bien  la versión premium   que por poco mas de  1€ permite enviar SMS’s en las condiciones que deseemos)

.

seguricasa.png

 

El terminal Android debe tener SO Android 4.1 (Yelly Bean) o superior y no  es fundamental  que tenga  la pantalla  perfecta ( o la batería)  ya que la interacción con el terminal solo sera necesaria para configurar cuales van a ser las notificaciones  y los destinatarios de estas ( es decir este terminal puede ser perfectamente reciclado  o incluso en mal estado ) .

El siguiente paso si vamos a enviar SMS ( versión premium)  o  si vamos a usar la conexión GPRS en caso de corte de la wifi por falta de suministro eléctrico ,  es insertar la SIM  en el terminal si es que vamos  a enviar SMS o emails estando sin suministro eléctrico  , ya que normalmente cuando no haya red eléctrica tampoco solo tenemos tener wifi. Dependiendo de lo que deseemos (sms o emails ) necesitaremos  un plan mas o menos ajustado ,pero ene general con una tarjeta prepago debería ser suficiente .

Ahora  lo siguiente debería ser fijar el terminal  a un extremo de la puerta si es que vamos a usarlo  también para notificar los accesos a la vivienda o local. Un buen sistema por ejemplo puede ser un belcro auto-adhesivo pegado en la parte de atrás del terminal  , aunque en el mercado  obviamente también existen soportes  para  fijar el terminal de forma vertical de una manera muy simple.

IMG_20170316_191402.jpg

Fijado el terminal   ya solo nos quedaría  si lo que deseamos es  controlar el acceso  fijando un cartón   al extremo de la puerta  con cinta  adhesiva de modo que  al abrir la puerta este  tape el sensor de proximidad del terminal tal y como se ve en la fotografía siguiente

Una vez fijados el terminal  y el cartón es hora de conectar  la alimentación  por medio del cargador original  o en su defecto cualquier cargador con salida micro-usb .En este sentido tenga en cuenta que el cargador debe permanecer siempre enchufado de modo que pueda ser motorizado  el estado de la red eléctrica por lo que este  debería ser preferentemente el original  o por lo menos de buena calidad.

Ya tenemos todo preparado , así que arrancaremos  la aplicación   y  podemos  configurar  todos los  parámetros como vamos a ver  a continuación.

Manejo de la aplicación

Para iniciar la aplicación basta con pulsar sobre el icono “Seguricasa”.

Inmediatamente al iniciar la aplicación, aparecerá la pantalla principal de la aplicación donde se muestra la información básica del estado de los sensores, la cual incluso cerrándola queda en segundo plano con objeto de seguir monitorizando la vivienda o inmueble.

v4new.png

La información mostrada por la aplicación en la pantalla principal es la siguiente:

  • Nivel de carga de la batería expresada en tanto por ciento.
  • Temperatura del terminal en grados centígrados.
  • Estado de suministro eléctrico expresado en voltios.
  • Estado del sensor de proximidad.

Bajo el icono del botoncito de la esquina superior derecha se muestra el nivel de batería expresado en tanto por uno

Asimismo, la aplicación cuenta con  tres botones gráficos:

  • Ayuda( ?): pulsando aquí se accede  al menú básico de ayuda en línea
  • Histórico(brujula): se accede al log de envíos de correos o SMS ’s enviados desde la propia aplicación.
  • configuración( caja de herramientas): se accede al menú de configuración de la aplicación

AYUDA EN PANTALLA

Desde la pantalla principal pulsando el menú ayuda, se accede a una pantalla auxiliar donde se explica sucintamente el sentido de esta aplicación.

Para volver a la pantalla principal,   pulsar el botón volver del terminal, o simplemente se puede pulsar el botón cerrar de esta pantalla.

LOG DE EVENTOS

Desde la pantalla principal, pulsando el menú histórico se pueden acceder al log de envíos de correos o SMS ’s enviados desde la propia aplicación.

Siempre que se haya definido un nombre valido de fichero en la pantalla de configuración,   y el terminal cuente con al menos con 128MB de espacio en la SD externa para almacenamiento de logs, se mostrara en cada línea del log la fecha y hora junto el tipo de notificación (SMS o e-mail) y los motivos (corte o vuelta de red y puerta abierta o cerrada).

Para volver a la pantalla principal   pulse el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Es interesante destacar que, en esta pantalla que , en cuanto se supera el tamaño visualizable en la pantalla del terminal, sobre esta se podrá hacer scroll vertical para poder acceder al resto de información.

En caso de no que no interese mantener este fichero de log, el usuario siempre puede acceder al administrador de ficheros y acceder a la raíz de la SD para proceder a mover o eliminar dicho fichero de log.

Obviamente si desea personalizar el nombre del fichero de log, simplemente deberá cambiar el nombre del fichero personalizado de fichero de log en la opción Fichero de Log→Carpeta

También si desea no registrar los eventos, simplemente deberá borrar el nombre del fichero personalizado de fichero de log en la opción Fichero de Log→Carpeta

CONFIGURACÓN DE LA APLICACIÓN

Hay una opción muy importante referida a la configuración de la aplicación, la cual se accede pulsando el botón contextual del terminal   de Android o directamente sobre el botón de la caja de herramientas.

Una vez ahí, pulsando sobre el ítem, se mostrara el submenú de configuración de la aplicación:

La pantalla está divida por seis secciones claramente identificadas:

  • Avisos por SMS.
  • Avisos por email.
  • Números de teléfono para SMS.
  • Correo electrónico destino.
  • Usuario Gmail para envíos.
  • Fichero de log.

Avisos por SMS.

Esta opción esta reservada  para la version premium  disponible en Google Play ( coste aprox 1€).

La conectividad a internet de los terminales de última generación junto con el crecimiento exponencial tanto de las redes sociales como los de servicios de mensajería no han frenado la expansión de los mensajes SMS a nivel comercial.

Está claro que  los nuevos métodos de comunicación han tomado la delantera en lo que se refiere a las comunicaciones personales y grupales  ,pero a cambio han dejado a los mensajes SMS cómo líderes absolutos  de las comunicaciones de empresas como bancos,  empresas de transporte público, empresas de telecomunicaciones , compañías de seguros, hospitales ,otras instituciones públicas y un largo etcétera las cuales han adoptado los mensajes SMS como método para enviar notificaciones, confirmar transacciones, recordar citas, etc.

Precisamente pensando en la gran seguridad, accesibilidad y confianza que ofrecen los SMS’s frente a otros servicios de mensajería, en esta aplicación se ha optado por permitir él envió de mensajes de forma selectiva según las necesidades de los usuarios.

Clicando en cualquiera de las tres opciones de este submenú automáticamente se enviaran   un SMS al número que se defina ante las siguientes circunstancias:

  • Corte de suministro de corriente alterna mediante la el suministro de tensión externa al terminal ( opción “Cortes de electricidad”)
  • Aperturas o  cierres de la puerta   ocultando el sensor de presencia(opción “Aperturas puerta”)
  • Al iniciar por primera vez la aplicación Seguricasa (opción “Al iniciar esta app”).

Avisos por e-mail.

Estar dado de alta en una cuenta de correo electrónico, hoy en día es una realidad pues todos los usuarios de la red disponen de una dirección de correo electrónico y lo utilizan diariamente.

En la actualidad, el uso del correo electrónico, se puede dividir en diferentes ámbitos como académico, laboral y personal, por lo que es muy interesante  también poder avisar  por e-mail ante cualquier evento de acceso  o anomalía en el suministro de corriente alterna desde el Core de esta aplicación.

Los avisos por e-mail en esta aplicación son personalizables mediante esta sección:

Clicando en cualquiera de las tres opciones del submenú de avisos por  e-mail, automáticamente se enviaran   un email a la cuenta de correo electrónico que se defina ante las siguientes circunstancias:

  • Corte de suministro de corriente alterna mediante la el suministro de tensión externa al terminal (opción “Cortes de electricidad”).
  • Aperturas o cierres de la puerta ocultando el sensor de presencia (opción “Aperturas puerta”).
  • Al iniciar por primera vez la aplicación Seguricasa (opción “Al iniciar esta app”).

 

Número de teléfono para envíos SMS

Complementando el submenú de avisos por SMS ’s disponible en la version Premium  se incluye esta sección, donde   se definirá el número de teléfono al que se deseen dirigir los mensajes de texto.

Tenemos que definir sobre todo el número del Teléfono hacia el que quieren dirigirán los SMS ‘s ante los eventos que se deseen auditar chequeados en   el submenú de avisos por sms’s.Opcionalmente,   también se puede asignar una cadena de texto en la opción Usuario que nos permita por ejemplo identificar el número de teléfono que hayamos asignado.

Es interesante destacar que si no informamos del número de teléfono destinatario de los SMS ‘s y clicamos alguna opción de SMS, nos saltara un error de número no definido.Si introducimos el numero o el nombre de usuario en esta sección, para volver a la pantalla principal, pulsar el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Correo electrónico destino

Complementando el submenú de avisos por mail, se incluye esta sección donde   se definirá la cuenta de correo electrónico al que se deseen dirigir los mails.

Tenemos que definir el correo electrónico destino hacia el que quieren dirigirán las e-mail ante los eventos que se deseen auditar chequeados en   el submenú de avisos por e-mail

Clicaremos en la copión E-mail y sobre la caja de texto cumplimentaremos el destinatario donde se dirigirán el e-mail ante los eventos que se deseen auditar chequeados en   el submenú de avisos por e-mail.

Es interesante destacar que si no informamos de la cuenta de correo y clicamos alguna opción de envíos de correos, nos saltara un error de mail no definido.

Para volver a la pantalla, el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Usuario Gmail para envíos

Complementando el submenú de avisos por mail, en esta sección   se definirá la cuenta de correo electrónico de Gmail desde donde se enviaran los mails.

Obviamente se podría haber definido otro tipo de servidor  de correo saliente, pero  por simplicidad dado que los usuarios de Android están obligados a tener una cuenta vinculada a una dirección de correo de Gmail para instalar nuevas aplicaciones en su terminal , este es el  candidato ideal como  servicio de envió de e-mails.

Dada la facilidad de envíos de correos electrónicos ante las circunstancias definidas, tenemos que definir el correo electrónico origen desde donde se dirigirán las e-mail ante los eventos que se deseen auditar chequeados en   el submenú de avisos por e-mail

La cuenta de Gmail pues se cumplimentara en la opción “cuenta” mediante el formato establecido completo (es decir con el formato [email protected]).

Para volver a la pantalla principal, basta pulsar el botón volver del terminal, o simplemente pulsar el botón cerrar de esta pantalla.

Dado que usaremos la cuenta de Gmail, para poder enviar correos desde esta cuenta, necesitamos cumplimentar en el apartado “Clave” la password de la cuenta de Gmail.

Como vemps en la pantalla anterior al cumplimentar la password de la cuenta de Gmail se ocultara su contenido tanto cuando estamos cumplimentándolo como cuando los revisamos pudiéndolo actualizar o eliminar en cualquier momento desde esta opción.

Es interesante destacar que si no informamos de la cuenta de correo y clicamos alguna opción de envíos de correos, nos saltara un error de mail no definido.

Para volver a la pantalla principal   pulsar el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

Fichero de log

Es importante destacar que   si se desea almacenar las notificaciones de SMS o e-mail, el terminal debería contar al menos con 128MB de espacio en la SD externa para almacenamiento de logs.

Si deseamos registrar los logs de aviso por email o por SMS, simplemente necesitamos apuntar en el apartado “Carpeta” el nombre del fichero que deseamos usar para registrar todos estos eventos en el root de la microsd.

Para volver a la pantalla principal   pulsar el botón volver del terminal o simplemente pulsa el botón cerrar de esta pantalla.

En el siguiente vídeo  podemos ver  mas claramente el funcionamiento de todas estas opciones comentadas;

Requisitos

  • Smartphone Android con SO Android 4.1 (Yelly Bean) o superior.
  • Tarjeta SIM (puede ser de Prepago).
  • Cargador original.
  • Es importante destacar que si se desea almacenar las notificaciones de SMS o e-mail, el terminal debería contar al menos con 128MB de espacio en la SD externa para almacenamiento de logs.
  • Opcional: sistema para fijar el smartphone a la pared y soporte solidario a la puerta de acceso que tape parcialmente el sensor de presencia del Smartphone al abrirse.
  • Alguna  de estas aplicaciones : Seguricasa Free  Seguricasa Free  ( envio de emails) o  Seguricasa V4 Seguricasa V4(envio de emails o SMS’S)

Pantalla eink para su raspberry pi


The KindleBerry Pi 

Desde  estudio ponnuki  nos proponen la idea de usar un Kindle como una pantalla, conectando la potencia de procesamiento del Raspberry Pi y ademas utilizando un teclado externo para trabajar mas cómodamente.

En principio  conectar un teclado externo al  Kindle parece imposible pues se  necesita usar la Rasperry Pi a modo de un  ‘hub’  pero usando  KindleBerry Pi como  vamos a ver como esto es posible .

 

Gracias a este hack se puede  crear una plataforma de desarrollo realmente portátil o aAl menos se ha convertido en una prueba de concepto que podría ser utilizada para otros proyectos similares.

!Veamos pues cómo usted puede crear su propio KindleBerry Pi!

Empezando

Qué se necesita hacer este hack:

  • Un Kindle 3 (1 o dos, si termina rompiendo el primero de ellos)
  • Una Raspberry Pi
  • 2 adepatoadores de micro usb a usb  (uno para la energía) y otro para conectar el Kindle a la Raspberry Pi
  • Un teclado conectado a la Raspberry pi
  • Opcional :Un soporte de kindle (puede utilizar una vieja caja de cinta de audio)

Hackear el Kindle

Aviso legal – usted puede dejar  inutilizable su Kindle al hacer este hack, por lo qu aqui se exponen   ideas  no nos podemos responsabilizar  lo que pueda hacer con su  viejo kindle …

La primera parte de conectar el Kindle a la Rspberry Pi es bastante simple:

  • En primer lugar  se necesita hacer el jail break al kindle ,  si es que aun no se lo realizado ( Mas infroamcion en Jail break el Kindle )
  • Debe instalar un emulador de terminal como este
  • Se necesita o instalar UsbNetwork. Asegúrese de que el usbNetwork esta  activado, y conecte por  USB ambos dispositivos
  • Puede hacer desde el kindle  una prueba rápida: ifconfig usb0 192.168.2.1 y deberia , poder  iniciar sesión en la Raspberry Pi desde su kindle  sin ningún problema, utilizando la gran pantalla de la Kindle y el teclado del kindle  pero como vemos  lamentablemente aun tiene  la limitación del teclado.

 

El principal reto ahora es usar el teclado conectado a la Raspberry  Pi en lugar de Kindle. 

Aqui la idea  es  con el teclado conectado a la Raspberry Pi iniciar sesión en la Raspberrypi con el Kindle y entonces compartir la misma sesión de ‘pantalla’ para que usted puede utilizar el teclado conectado en la Raspberry Pi. Como vemos todavía tendrá que utilizar el teclado del Kindle para crear esa primera conexión, pero una vez conectados, usted puede utilizar el teclado externo sin mas problemas.

Red USB para Raspberry Pi

En primer lugar queremos ser capaces de usar UsbNetworking para conectar el Kindle. Cuando el Kindle está ejecutando  usbNetworking, este asigna la ip 192.168.2.2 a su puerto USB.

Como   necesita en   la raspberry Pi asignar el puerto USB la IP 192.168.2.1 y  tiene que ser automático tenemos que  modificar sus interfaces .

Para ello, el primer paso es añadir a sus interfaces , par lo cual debe añadir a /etc/network/interfaces  de  su raspebery Pi  las siguientes sentencias:


allow-hotplug usb0
mapping hotplug
script grep
map usb0
iface usb0 inet static
address 192.168.2.1
netmask 255.255.255.0
broadcast 192.168.2.255
up iptables -I INPUT 1 -s 192.168.2.1 -j ACCEPT

Inicio de sesión automático en la Raspberry Pi

Ahora necesitamos en la raspberry Pi :

  • Hacer que un usuario inicie sesión automáticamente
  • Configurar que el usuario tenga una sesión de pantalla multiusuario iniciada durante el arranque.
  • Utilizar el mismo usuario para el login en el arranque e inicio de sesión con el Kindle.

Para el inicio de sesión automático en el arranque en debian (que es uno de la estructura principal del Raspberry Pi) tiene que ejecutar;

vim /etc/inittab

Obviamente tambien puede  usar cualquier otro editor

Ahora  comente lo siguinte:

 #1:234:respawn:/sbin/getty 3840 tty1 

Agregue ahora las siguientes lineas:
1:2345:respawn:/bin/login -f YOUR_USER_NAME tty1/dev/tty1 2< &#038; 1  
&#91;/prettify&#93;

<i> My code prettifyer adds some #038;  code that you can omit </i>
<strong>EDIT: Some reader have mention that using this code instead work for them:</strong>
[prettify]1:2345:respawn/sbin/agetty -a YOUR_USER_NAME -8 -s 38500 tty1 linux 

Haciendo  este truco vamos a hacer que la pantalla de  Inicio automáticamente arranque  cuando arranque la  Raspberry Pi y cada vez que inicie sesión desde el kindle.

Bashrc

Ahora tenemos que asegurarnos de que el usuario que está logueado automáticamente  inicia una sesión de pantalla.Ademas también tenemos que asegurarnos  cuando inicie sesión con el Kindle, que no inicia otra sesión de pantalla por lo que necesita unirse a la sesión de pantalla  desde el Kindle  para después pasar al teclado externo

Nos recomiendan experimentar con el código, pues  la mayor parte de ella debe estar en el   fichero . bash_profile. Hay probablemente muchas otras maneras de hacerlo (usar el bashrc y bash_profile o tener más de un usuario etc…) pero este es una solución funcional

Aquí está el  fichero. bash_profile:


if [ -z &#8220;$&;STY&#8221; ];  then
    exec screen -xR
fi

Así que una vez que esté todo en su lugar, debe ser capaz de ejecutar  su KindleBerry Pi, una vez que se realiza la secuencia de arranque,  conectando el Kindle en UsbNetwork a través del modo USB, moviéndose en su y ssh en la Raspberry Pi y desde allí se debería ser capaz de utilizar el teclado conectado en la Raspberry Pi y ver el resultado en el Kindle!

 

Por ultimo en el siguiente vídeo podemos ver el montaje en acción que muestra la frecuencia de actualización y el funcionamiento en general de este montaje

 

 

Fuente    aqui aqui 

Curso gratuito sobre Raspberyy Pi


En este blog nos intentamos hacer eco de todos los proyectos interesantes que surgen  respecto a las diferentes placas de IoT  donde a día de hoy sin duda podríamos destacar la placa Raspberry Pi.

Precisamente orientado  a todas aquellas personas que quieran profundizar en esta plataforma ,gracias a la plataforma de Miriadax   tenemos disponibles  en la red   un interesante  curso gratuito  online  sobre la   Rasberry Pi  apoyado  por la UPM  (Universidad Politécnica de Madrid)

El curso esta organizado en formato MOOC, (el acrónimo en inglés de Massive Online Open Courses ) , es decir como  un curso online masivo y abierto donde toda la comunidad   colabora de forma interactiva a través de la plataforma  y el uso de redes sociales.

Los  formadores son  Jorge Artieda, Miguel Hernando y Alberto Brunete   todos profesores de la UPM.

Este curso se  centra en enseñar a usar una Raspberry Pi para monitorear y controlar dispositivos en su ambiente gracias al  uso de  sensores y actuadores para monitorear salas y áreas así como  controlar dispositivos (encender y apagar luces, motores de control, etc.);

Otro de los pilares del curso es la parte de programación , enseñando a desarrollar programas que recojan los datos capturados por la Raspebrry Pi   para que los suba a  una infraestructura Cloud permitiendo que  aplicaciones móviles que usan esos datos interactúen con el usuario.

Por ultimo también , se  intenta proporcionar el  conocimiento necesario para utilizar los sistemas operativos incorporados de Raspberry Pi: Linux, programación en Python, protocolos de comunicaciones y periféricos de entrada y salida.

 

Como referencia  del formato de este curso en este video nos explican a  nivel hardware las diferentes partes que componen  un aRaspberry Pi

 

 

Los módulos previstos son los siguientes:

Es importante tener en cuenta que el curso tiene una faceta evidentemente practica permitiendo  trabajar con dispositivos reales .de modo que al final del curso tendrá un prototipo funcional para integrarse en el mundo de IoT.

Todas la practicas usan La Raspberry Pi 3 pero por su similitud también es posible Usar una raspberry Pi 2 en la mayoría de las practicas

Solo una nota: los vídeos del  curso son en ingles pero  gracias a los subtitulos automáticos  y la traducción simultánea de youtube es posible  mitigar esta controversia  y tal  vez nos ayude a mejorar  nuestro nivel de ingles

 

Por cierto, el curso esta diseñado para hacerlo en  6 semanas (48 horas de duración estimadas) y    empezó  justamente  ayer 3 abril de  2017 por lo que si le interesa no dude en apuntarse cuanto antes..

 

 

Mas información en  https://miriadax.net/web/practical-internet-of-things-lot-with-raspberrypi

Estacion grafica multimedia con Raspberry Pi


En el post de hoy vamos a demostrar gracias a MagdiBlog como hoy en día se pueden hacer interfaces gráficas muy potentes  mostrando información util simplemente usando una Raspberry conectada a un monitor de forma permanente gracias al bajisimo consumo de esta estupenda placa.

En efecto a todos nos gustan las estaciones meteorológicas que muestran una gran cantidad de información,  si es posible ,incluso sensible a la ciudad donde se viva. Ademas si , añade relojes de alta tecnología que hagan de calendario ,muestren  sonido cuando reciba un correo, sirva de marco digital, etcétera..mucho mejor ¿verdad?. Sin embargo, no es fácil encontrar cualquiera de estos dispositivos  (o casi). De hecho,soluciones comerciales  que existen hoy en día son  mucho mas limitadas ,y de todos modos, ,también son  emasiado costosas …

Pues en el proyecto de hoy veremos como gracias a una Raspberry esto es posible añadiendo ademas múltiples funciones tan solo limitadas por la imaginación pues ,por ejemplo el autor ademas de todo lo anterior ,quería tener tener una visión global sobre lo que está pasando en su red de hogar, su ancho de banda, el estado de  servidores y del  NAS, saber quién está conectado a su servidor TeamSpeak o  VPN, etcetera..todo ello ademas mostrando  la fase de la luna y el sol a la tierra durante el día, la hora del amanecer y el atardecer.

Así que este  proyecto relativamente simple (pero muy divertido) aporta una espectacular consola gráfica  que agrupa todos estos datos  de una forma realmente espectacular .

IMG_5393

El equipo necesario

A diferencia de otros proyectos, con una Raspberry Pi y una pantalla son suficientes.. Además, puede utilizar algo que no sea una Pi, incluyendo un viejo eeePC ,un  PC portátil en desuso ,una torre estándar  ,etc.

Simplemente necesita agregar  un soporte de pared para colgar la pantalla en la pared, así como un canal extra plana para ocultar los cables de alimentación (si decide disponer su pantalla por encima de la nevera por ejemplo, ahorrará comprando estos dos accesorios).

Para la pantalla,una opción es  elegir la más barata de tipo LED, pues son pantallas más delgadas,y consumen menos energia  ofreciendo un ángulo más amplio (conveniente cuando caminas en la habitación), así como un mayor brillo.Si quiere colgar  la pantalla  en la pared, debe tener claro el tipo que VESA monta que depende del  del TV monitor qeu vaya a colgar. Tenga en cuenta, sin embargo, que una pantalla de más de 20 – 22″ pantalla se convierte en rápidamente voluminosa… Por ultimo seria recomendable una pantalla de entre 16 y 20, en formato 16: 9 (más estética de 4/3), con un borde fino (siempre por el bien de estética ).

Aquí se  muestra  el detalle del hardware necesario :

  • Un modelo de Raspberyy Pi B 512 MB ( o superior)
  • Una tarjeta de memoria SDHC 8 GB
  • Un adaptador WiFi USB NetGear WNA1000M ( no es necesario con la Raspberry Pi 3)
  • Una pantalla LCD  (por ejemplo una de 8, 5 pulgadas , pero cualquier pantalla puede ser conveniente)
  • Soporte de pared VESA para pantalla
  • Una canaleta de pvc  para esconder los cables

En detalle

Esta es la lista de información que el autor decidió mostrar en la pantalla conectada  a una Raspberry  :

  • Fase de la tierra con el trazado de las nubes en tiempo real
  • Fase de la luna
  • Hora
  • Fecha
  • El tiempo en hoy
  • Previsión del tiempo para 3 días
  • Estado de servidores y NAS
  • TeamSpeak clientes conectados
  • Clientes VPN conectados
  • Ancho de banda de Internet
  • etc

Incluso es posible añadir  alguna  característica pues todavía hay espacio para mostrar la información: lo importante es que sea visible y legible desde cualquier lugar en la sala.

A continuación  el árbol de archivos necesarios para mostrar los diferentes módulos.

  • index.php: página principal que es llamada por el navegador
  • ajax.php: contiene el código que se ejecuta cuando se hacen  peticiones AJAX
  • .inc.php contiene las funciones de PHP
  • javascript.js contiene las funciones de JavaScript
  • hoja de estilo style.css

La estructura es muy fácil como  vemos siendo la página «index.php» la llamada por el navegador.Esta es la encargada de cargar mediante una función JavaScript para ver el contenido de cada módulo en el lugar correcto en la página ,la cual  pide  actualizaciones  automáticamente de la pantalla a intervalos regulares  de 3600s gracias a la sentencia meta incluida en la cabecera :

<Meta http-equiv = "refresh" content = "3600; url = index.php">

 

Nota: Puede descargar todos los archivos en un archivo en el último artículo del proyecto.

index.php

La página de índice se contenta con la posición de laz etiquetas<div>  que se mostrarán en  cada módulo.

En la etiqueta <head>, hay una etiqueta <meta> que tiene como objetivo actualizar la página cada 3600 segundos (cada hora). De este modo, se volverá a cargar la página entera, los contadores de JavaScript de reposición, código actualizadas son tomadas en cuenta, etc …

  <! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN" "http://www.w3.org/TR/html4/loose.dtd">
 <Html>
   <Head>
     <Título> Jarvis </ title>
     <Meta http-equiv = "Content-Type" content = "text / html; charset = UTF-8" />
     <Meta http-equiv = contenido "Content-Language" = "es" />
     <Meta name = "autor" lang = "es" content = "subir" />
     <Meta name = contenido de "derechos de autor" = "subir ©" />
     <Meta http-equiv = "Cache-Control" content = "no-cache">
     <Meta http-equiv = "Pragma" content = "no-cache">
     <Meta http-equiv = "Expires" content = "0">
     <Meta http-equiv = "refresh" content = "3600; url = index.php">
     <Script type = "text / javascript" src = "// ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </ script>
     <Script type = "text / javascript" src = "javascript.js"> </ script>
     <Link rel = "stylesheet" type = "text / css" href = "style.css" />
   </ Head>
   <Body>

     <Div id = "principal">
       ? Jarvis <? Php // fecha de eco ( "Ymd H: i: s') - <div id =" semental ">!?  ?> </ DIV ->
       <Div id = "reloj"> </ div>
       <Div id = "Tiempo"> </ div>
       <Div id = "meteo_black"> </ div>
       <Div id = "TS3"> </ div>
       <Div id = "ping"> </ div>
       <Div id = "análisis"> </ div>
       <Div id = "VPN"> </ div>
       <Div id = "latencia"> </ div>
       <Div id = "tierra"> <img id = "img_earth" src = "PICT / blank.png"> </ div>
       <Div id = "luna"> <img id = "img_moon" src = "PICT / blank.png"> </ div>
       <Div id = "ifstat_oberon_up"> <img id = "img_oberon_up" src = "PICT / blank.png"> </ div>
       <Div id = "ifstat_oberon_down"> <img id = "img_oberon_down" src = "PICT / blank.png"> </ div>
     </ Div>

     <? Php include ( '.inc.php');  analytics de eco ();  ?>

   </ Body>
 </ Html>

Para los módulos que se muestran las imágenes (fases de la tierra y de la luna ancho de banda, gráficos), es apropiado  insertar una imagen en blanco «blank.png» para evitar mostrar un error en la página hasta que el petición AJAX responsable de la visualización de la imagen se ha completado.

ajax.php

Este es el archivo que se llama por peticiones AJAX y es responsable de llamar a la función derecho a ejecutar.

  <? Php

   header ( 'Content-type: text / html; charset = utf-8');
   require_once ( '.inc.php');

   if (isset ($ _ REQUEST [ 'bloque'])) {$ bloque = $ _REQUEST [ 'bloque'];} else {$ bloque = 'none';}

   /////////////////////////////////////////////////
   // LATENCIA
   /////////////////////////////////////////////////

   if ($ == bloque 'latencia') {
     latencia echo ();
   }

   /////////////////////////////////////////////////
   // TS3
   /////////////////////////////////////////////////

   else if ($ == bloque 'TS3') {
     eco TS3 ();
   }

   /////////////////////////////////////////////////
   // TIEMPO
   /////////////////////////////////////////////////

   else if ($ bloque == 'Tiempo') {
     eco de tiempo ();
   }

   /////////////////////////////////////////////////
   // PING
   /////////////////////////////////////////////////

   else if ($ == bloque de 'ping') {
     eco ping ();
   }

   /////////////////////////////////////////////////
   // VPN PGWP
   /////////////////////////////////////////////////

   else if ($ == bloque 'VPN') {
     vpn echo ();
   }

   /////////////////////////////////////////////////
   // ifstat
   /////////////////////////////////////////////////

   else if ($ == bloque 'ifstat') {
     imagickHisto ($ _REQUEST [ 'max'], $ _REQUEST [ 'eth'], $ _REQUEST [ 'UP_DOWN']);
   }

 ?>

Un bloque de código para cada módulo. Dependiendo del bloque de $ variable pasada como parámetro a la consulta AJAX, llamada la función objetivo.

inc.php

Este archivo contiene las funciones llamadas por el archivo ajax.php. Sigue el mismo principio que los anteriores: un bloque de código para cada módulo.

Básicamente, incluye una función por módulo  cuyos  detalles seria complejo explicar .

javascript.js

Este archivo contiene las funciones de JavaScript que pondrá en marcha peticiones AJAX   a un  intervalo regular .

  / * Inicializar las funciones de todos los módulos a cargar la página * /
 $ (Document) ready (function () {
    fonction_nom_du_module_1 ();
    fonction_nom_du_module_2 ();
    ...
 });

 / * Inicializar las variables de tiempo de espera para cada módulo * /
 timeout_nom_du_module_1 var; 
 timeout_nom_du_module_2 var;
 ...

 / * Definición de la función para la nom_du_module_1 módulo * /

 función nom_du_module_1 ()
 {
   $ .ajax ({
     asíncrono: falso,
     del tipo: "GET"
     url: "./ajax.php"
     datos "bloque = nom_du_module_1"
     el éxito: function (html) {
       . $ ( "# Nom_du_module_1") HTML (HTML);
     }
   });

   g = setTimeout ( "nom_du_module_1 ()", 10000);
 }

No se pone  la estructura de archivos aquí gobal para explicar el principio. El expediente completo estará disponible para su descarga en el final del artículo.

style.css

Este archivo contiene la hoja de estilo de página, que es la que contiene todas las opciones  gráficas de formato de elementos de la página (posición, tamaño, colores, etc …).

  / * * Init /

 cuerpo
 {
   background-color: RGBA (0, 0, 50, 1);
   font-family: Verdana "Courier New", "Lucida Console";
   font-size: 14px;
   font-weight: normal;
   padding: 0px;
   margen: 0px;
   overflow: hidden;
 }

 div, tabla, tr, td, TH, h1, h2, h3, a, lapso, p, pre, fieldset, de entrada, área de texto, la forma, img, seleccionar
 {
   font-family: Verdana "Courier New", "Lucida Console";
   font-size: 14px;
   font-weight: normal;
   padding: 0px;
   margen: 0px;
   Color: #FFF;
 }

 / * Inicio * /

 div mano #
 {
   anchura: 1366px;
   altura: 768px;
   position: relative;
   overflow: hidden;
   background-color: RGBA (0, 0, 0, 1);
   Color: #FFF;
 }

El div id cuya mano es el div contiene todos los demás div de cada módulo. Aquí se fija tamaño en píxeles de resolución nativa de la pantalla 1366 x 768 px.

El color de fondo (background-color) está unido al negro, pero se puede elegir lo que le guste

4 – Módulo 1 – Fecha y Hora

Volvamos en el meollo de las cosas con este primer módulo que muestra la fecha y la hora.

reloj1

Este módulo es muy simple, completamente en JavaScript. El módulo se llama: Reloj

index.php

En la página de índice, por lo que este es el <div> con el reloj Identificación del que nos interesa.

  <Div id = "reloj"> </ div>

La etiqueta se queda vacía, y se «llena» por medio de la función de JavaScript.

style.css

Al igual que con todos los módulos, se debe crear un div cuyo id es el nombre del módulo (aquí reloj) que contendrá la información a mostrar y, a continuación, establezer su tamaño y posición en la pantalla.

  / * Reloj * /

 div # reloj
 {
   derecha: 0px;
   top: 0px;
   position: absolute;
   overflow: hidden;
   background-color: RGBA (0, 0, 0, 1);
   Color: #FFF;
   font-weight: bold;
   text-align: center;
 }

 div.horloge_heure
 {
   font-size: 180px;
   background-color: RGBA (0, 0, 0, 1);
 }

 div.horloge_date
 {
   font-size: 50px;
   background-color: RGBA (0, 0, 0, 1);
 }

 span.horloge_grey
 {
   color: # 888;
   font-size: heredar;
 }

javascript.js

Esta función simple se basa en la hora del sistema, y muestra las horas y 24 minutos más o menos, a continuación, justo por debajo del día a día que en el mes, el nombre de mes y año .

 horloge_timeout var;

 function horloge ()
 {
   dows = [ "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"];
   meses = [ "Enero" ,"Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre" "Diciembre"];

now          = new Date;
  heure        = now.getHours();
  min          = now.getMinutes();
  sec          = now.getSeconds();
  jour_semaine = dows[now.getDay()];
  jour         = now.getDate();
  mois         = mois[now.getMonth()];
  annee        = now.getFullYear();

  if (sec < 10){sec0 = "0";}else{sec0 = "";}
  if (min < 10){min0 = "0";}else{min0 = "";}
  if (heure < 10){heure0 = "0";}else{heure0 = "";}

  horloge_heure   = heure + ":" + min0 + min;
  horloge_date    = "<span class='horloge_grey'>" + jour_semaine + "</span> " + jour + " " + mois + " <span class='horloge_grey'>" + annee + "</span>";
  horloge_content = "<div class='horloge_heure'>" + horloge_heure + "</div><div class='horloge_date'>" + horloge_date + "</div>";

  $("#horloge").html(horloge_content);

  horloge_timeout = setTimeout("horloge()", 1000);
  }

Cada 1000 ms, o cada segundo, el contenido del div reloj se actualiza con el contenido de la horloge_content variable. También puede mostrar segundos en la pantalla si lo desea 

Esto en cuanto a este primer módulo muy simple, pero entre los más útiles para visualizar en la pantalla

5 – Módulo 2 – Xplanet

En cuanto a la tierra, se puede ver la posición de las ciudades y una gran cantidad de información, incluyendo el clima. También es posible representar nuestros satélites artificiales con su posición real, órbita, etc …

xplanet

instalación

Xplanet es una aplicación que ha sido … muy larga! Está disponible en los repositorios de Debian, por lo que instalarlo, es simple:

  apt-get install xplanet

los mapas

La base de Xplanet contiene un «mapa» para cada planeta (una imagen que representa la superficie). Se puede, y es recomedable descargar mapas mejor en alta definición. También es interesante  descargar un mapa dedicado a la parte de la superficie de la tierra que no se expone al sol (noche), de lo contrario será simplemente Xplanet el mapa de la jornada.

Aquí se pueden encontrar muchos mapas de la tierra y todos los otros planetas del sistema solar:

Xplanet trabajará para crear una combinación de las dos imágenes para representar la parte soleada de la tierra y la parte en  oscuridad.

La generación de imágenes

Xplanet es en última instancia un generador de imágenes que representa las estrellas en su estado en un momento T y desde cierto punto de vista. Todo sucede en la línea de comandos, y como se puede ver navegando por la página web Xplanet, hay cientos de opciones! Aquí veremos  la configuración que se utiliza para la pantalla.

De hecho,  genera dos imágenes diferentes, una para la tierra y otra para la luna. Aquí está el  archivo de configuración xplanet.conf:

  [Por defecto] # Los valores de esta sección se aplican a todos los cuerpos menos que se modifique a continuación.

 arc_color = white
 arc_thickness = 1
 bump_scale = 3
 cloud_gamma = 1
 cloud_ssec = false
 cloud_threshold = 90
 color = {255,255,255}   # caja de color de reserva en un mapa de imagen no se encuentra
 draw_orbit = false
 grid = false
 grid1 = 6
 Grid2 = 15
 magnify = 1
 marker_color = rojo
 max_radius_for_label = 3
 min_radius_for_label = 0,01
 min_radius_for_markers = 40
 orbit = {-. 5, .5,2}
 orbit_color = {} # 255255255 color para la órbita
 random_origin = true
 random_target = true
 sombreado = 30 # 0 = negro, 100 = Sami tiene dayside
 text_color = {255,0,0} # color del texto (marcadores de etiquetas y Cuerpo)
 twilight = 6 # mezclan las imágenes para el día y la noche
                                 # Dentro de este píxel Muchos grados de
                                 # El terminador

 [sun]
 "Sun"
 color = {255 255 166}
 map = / home / Jarvis / xplanet / img / sunmap.jpg
 max_radius_for_label = 0
 sombra = 100

 [earth]
 "Earth"
 color = {28, 82, 110}
 map = / home / Jarvis / xplanet / img / land_ocean_ice_2048.jpg
 night_map = / home / Jarvis / xplanet / img / noche dark.jpg
 cloud_map = / home / Jarvis / xplanet / img / clouds_2048.jpg
 min_radius_for_label = 0

 [moon]
 "Moon"
 color = {100, 100, 100}
 map = / home / Jarvis / xplanet / img / moonmap2k.jpg

En el [la tierra] por la tierra y [Luna] a la luna,  es  interesante que vea las rutas de acceso a los mapas para el día de «mapa» y «night_map» modo noche.

Las nubes

También vimos el mapa «cloud_map» por la tierra. De hecho, Xplanet permite emular una imagen o mapa de las nubes en la tierra para obtener un resultado muy realiza con la cobertura de nubes visto casi en tiempo real.


Se puede conseguir esta tarjeta nubes o «cloud_map» en diversos sitios. Según las fuentes, que se actualizan entre 1 y 10 veces al día: http://xplanet.sourceforge.net/clouds.php

Debe ser un pequeño script que descarga el último mapa publicado nubes. Una tarea cron se encargará de ejecutar el script a intervalos regulares. Xplanet_cloud.sh es mi guión:

  #! / Bin / sh

 Pat = / home / Jarvis / xplanet / img / # destino de la imagen descargada
 tmp = $ pat nombre de archivo temporal # "tmp_clouds_2048.jpg"
 img = $ pat "clouds_2048.jpg" # nombre del archivo final

 rm $ tmp # borrar el archivo temporal de edad

 $ Wget -O imagen tmp # http://xplanet.sourceforge.net/clouds/clouds_2048.jpg descargado

 if [-f $ tmp];  a continuación, # si el archivo se ha descargado ...
   mogrify -resize 2000x1000 $ tmp # redimenssionne la imagen descargada de manera que sea la misma resolución que el mapa "día"
   $ Mv tmp $ img # sustituye a la antigua imagen con el nuevo
   $ Pat Jarvis chown -R www-data && chmod -R 775 $ pat # cambia los permisos en el archivo
 fi

Recuerde hacer el script ejecutable con chmod 755 xplanet_cloud.sh 

Y eso es tarea CRON asociado que se pueden configurar con el comando crontab -e:

  0 * / 4 * * * /home/jarvis/xplanet/xplanet_cloud.sh

Cada 4 horas, la secuencia de comandos se ejecuta y un nuevo mapa se descargan las nubes 

generar imágenes

El último paso, se inicia xplanet iniciar el sistema para generar imágenes de la tierra y la luna cada N minutos,lo cual se consigue conun pequeño script llamado  Xplanet.sh  que contiene dos controles (uno para la imagen de la tierra y para la imagen de la luna).

Este es el contenido del script:

  #! / Bin / sh

 TIERRA #
 xplanet -conf /home/jarvis/xplanet/xplanet.conf -output /home/jarvis/xplanet/img/xplanet_earth.png -wait 120 tierra -cuerpo -latitud -Longitude 40 10 500x500 y -geometry

 LUNA #
 xplanet -conf /home/jarvis/xplanet/xplanet.conf -output /home/jarvis/xplanet/img/xplanet_moon.png -wait 600 -cuerpo luna -geometry 250x250 y

Veamos al comando xplanet ,el cual soporta los siguientes parámetros:

  • -conf: xplanet.conf el archivo de configuración
  • -output: el archivo de salida
  • -wait: el intervalo de tiempo, en segundos, de espera entre cada uno de generación de imágenes (120 segundos o 2 minutos a la tierra, para poder observar el sol durante todo el día 600 segundos o 10 minutos son. suficiente para la luna, cuya fase varía muy lentamente).
  • -cuerpo: nombre del cuerpo celeste para ver, establecido en el archivo de configuración
  • -geometry: tamaño en píxeles, de la imagen generada
  • -latitud y -Longitude: fija el punto central de la imagen de la tierra. Al elegir la latitud y longitud 40 10, la imagen será más o menos centrado en Italia. No vemos ninguna afinidad particular con este país, es simplemente un ángulo que revela Francia y en Europa, el conjunto de África, gran parte de Rusia, las Américas y el polo norte es bastante! También puede elegir la vista del sol, por ejemplo, para ver siempre el lado soleado de la tierra, que recorrerá un poco y no siempre ver la misma parte del globo 

Entonces sólo tiene que colocar la secuencia de comandos en el directorio /etc/init.d y ejecutar el siguiente comando a ejecutar en cada inicio del sistema:

  update-rc.d xplanet.sh defaults

Hemos hecho la mitad del trabajo  Cada 2 minutos, se genera a partir de la tierra con un mapa nubes actualizados cada 4 horas una nueva imagen (500 x 500 píxeles). Cada 10 minutos, la imagen de la fase de la luna (250 x 250 píxeles) se actualiza.

index.php

En la página de índice, se añaden dos etiquetas <div>, cada uno con una etiqueta <img>, uno para la tierra y otro para la luna.

 <div id="earth"><img id="img_earth" src="pict/blank.png"></div>
  <div id="moon"><img id="img_moon" src="pict/blank.png"></div>

Para evitar mostrar un error al cargar la página se debe inicializar las fuentes de <img> etiquetas con un blank.png imagen en blanco.

style.css

La hoja de estilo para este módulo es muy simple, ya que sólo tiene que definir la posición y el tamaño de la div que contiene las imágenes que se muestran.

/* tierra */

div#earth
{
  width             : 500px;
  height            : 500px;
  left              : 0px;
  top               : 0px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
}

/* luna */

div#moon
{
  width             : 250px;
  height            : 250px;
  left              : 500px;
  top               : 0px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
}

javascript.js

Es simplemente para reemplazar la imagen mostrada por la nueva imagen generada. El problema es que el nombre del archivo no cambia, el navegador tenderá a mostrar la imagen que ya está almacenada en su caché. Para superar este problema vamos a añadir una marca de tiempo (fecha y hora expresada en número de segundos transcurridos desde el primer Janver 1970) en la ruta de la imagen. De esta manera, el navegador va a pensar que se trata de una nueva imagen cada vez.

En aras de la fluidez, también es necesario para precargar las imágenes antes de sustituto en la pantalla. y la imagen se evita cargar cuanto a su pantalla.

  / * * Xplanet /

 xplanet_timeout var;

 function xplanet () {

 var now = new Date ().getTime ();

   / * * Carga previa de imágenes /
 img_earth var = $ ( "<img />").attr("src", "xplanet / img / xplanet_earth.png?" + now);
 img_moon var = $ ( "<img />").attr("src", "xplanet / img / xplanet_moon.png?" + now);

   / * Mostrar nuevas imágenes a la pantalla * /
 . $ ( "# Img_earth") attr ( "src", "xplanet / img / xplanet_earth.png?"+now ;
 $ ( "# Img_moon") attr ( "src", "xplanet / img / xplanet_moon.png?" + now );

 xplanet_timeout = setTimeout ( "xplanet ()", 120000);
 }

La función se ejecuta cada 120000ms (es decir, cada 2 minutos) que en última instancia se desplaza sol de la tierra y de la luna durante todo el día .

6 – Módulo 3 – El Tiempo

jarvis_screenshot_meteoEste módulo es particularmente difícil porque es muy difícil de personalizar. De hecho, es el uso de «widgets» puestos a disposición por los sitios especializados que ofrecen opciones de configuración limitadas.

 

Reproductores

Al menos  tres sitios que ofrecen widgets de tiempo más o menos completa y más o menos bonita: my-meteo.fr , tameteo.com y meteocity.com

Todas las ofertas para personalizar la información que se muestra, el número de días pronosticar, colores de los elementos y estilos de iconos Una vez que las opciones seleccionadas, el sitio genera el código HTML para copiar / pegar en su página.

Aquí se  muestran algunos sites que ofrecen este tipo de servicios:

  • my-meteo.fr
  • tameteo.com
  • meteocity.com

Las opciones propuestas por el widget de meteocity son un poco más amigables  . Aparte de la información sobre la humedad y el viento, el resto  de información es fácil de leer a distancia, pero vamos a tener que utilizar trucos para ocultar la información innecesaria .

index.php

Añadimos a nuestro archivo index.php una simple etiqueta <div> se deja vacío por ahora.

 <divv id = "meteo"> </ div>

Como todos los módulos de este dashscreen es una función de JavaScript que cargará insertar el contenido que se mostrará en el div del módulo.

style.css

Caso particular de este módulo,  no tiene la posibilidad de actuar directamente sobre el código CSS proporcionada por el sitio de tiempo. Así que sólo tenemos que colocar el div que contendrá información sobre el clima.

 / * El tiempo * /

 div # meteo
{
  right             : 0px;
  top               : 300px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
  color             : #FFF;
  font-weight       : bold;
  text-align        : center;
}

javascript.js

La función JavaScript de este módulo es feliz de enviar una petición AJAX e introduzca el resultado de la consulta en el div adecuado.

 / * El tiempo * /

 meteo_timeout var;

 función meteo ()
 {
$.ajax({
    async : false,
    type: "GET",
    url: "./ajax.php",
    data: "block=meteo",
    success: function(html){
      $("#meteo").html(html);
    }
  });
  meteo_timeout = setTimeout ( "Tiempo ()", 3.600.000);  }

la información del tiempo cada hora (cada ms 3600000) es más que suficiente.

inc.php

En este módulo necesitamos una función PHP que devuelve el código generado por el widget. Esto nos da una función muy sencilla en la que simplemente copiar / pegar el código HTML que ha generado el sitio Tiempo

 /////////////////////////////////////////////////
 // tiempo
 /////////////////////////////////////////////////

 function meteo () {
   $ Tiempo = 'pegar aquí el código HTML generado por el sitio de tiempo';
   return $ meteo;
 }

Ocultar información innecesaria

Si desea ocultar cierta información proporcionada por el widget, simplemente añadir un <div> en negro por encima de los elementos que desea ver desaparecer.

Añadir un <div> en el archivo index.php justo por debajo del tiempo div:

 <div id = "Tiempo"> </ div>
 <div id = "meteo_black"> </ div>

A continuación, edite el archivo style.css añadiendo el siguiente código en la sección del tiempo:

 div # meteo_black
{
  right             : 0px;
  top               : 420px;
  width             : 600px;
  height            : 100px;
  position          : absolute;
  z-index           : 9999;
  background-color  : rgba(0, 0, 0, 1);
}

Por supuesto, tendrá que ajustar la posición y el tamaño del div para satisfacer sus necesidades pero el resultado, es muy fácil de leer y  el diseño es muy elegante 

Con estos primeros tres módulos de reloj , xplanet y el tiempo, ya es posible hacer una hermosa pantalla  con todos estos elementos. Esta información puede ser valiosa y útil para todo el mundo todos los días 

Como extra aparte de todos los módulos de hora ,el tiempo y las fases lunares  el diseñador decidió añadir algunas funciones  de «monitoreo», cuya función es supervisar los servidores y redes..

8 – Módulo 5 – TeamSpeak

Si usted no sabe TeamSpeak , se trata de un software de conferencia de audio que permite a varias personas chatear a través de Internet (para más información http://fr.wikipedia.org/wiki/TeamSpeak ). Este módulo se utiliza para mostrar el estado del servidor de TeamSpeak (on / off) y la lista de las personas que están conectados a él.


Para obtener esta información se utiliza TeamSpeak 3 framework PHP que es una descarga gratuita. Esta gran  libreria PHP  proporciona acceso a todas las funciones del servidor de TeamSpeak3.

Sólo tiene que descargar y descomprimir TeamSpeak 3 framework PHP a su directorio web raíz.

index.php

Al igual que con otros módulos, sólo un <div> suficientes. Se empieza a acostumbrarse 

 <div id = "TS3"> </ div>

La etiqueta se queda vacía, y se «llena» de la función de JavaScript …

style.css

Es la hoja de estilo minimalista para este módulo:

 / * * Ts3 /

div#ts3
{
  left              : 340px;
  bottom            : 10px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
  color             : #FFF;
  font-weight       : bold;
  text-align        : center;
}

td.ts3_user
{
  text-align        : left;
  font-size         : 30px;
  padding-left      : 10px;
}

javascript.js

Una vez más, una aplicación AJAX fácil de recuperar información a mostrar.

 / * * TS3 /

 ts3_timeout var;

 función TS3 ()
 {
 $ .ajax ({
 asíncrono: falso,
 del tipo: "GET"
 url: "./ajax.php"
 de datos "de bloque = TS3"
 el éxito: function (html) {
 $ ( "# Ts3") HTML (HTML).
 }
 });

 ts3_timeout = setTimeout ( "TS3 ()", 10000);
 }

El período de actualización se establece en 10 segundos para ver rápidamente los cuales conecta / desconecta el servidor.

ajax.php

Eso habla por sí mismo …

 /////////////////////////////////////////////////
 // TS3
 /////////////////////////////////////////////////
  if($block == 'ts3'){
    echo ts3();
  }

.inc.php

Aquí se utiliza TeamSpeak 3 framework PHP .

Primero se abre un socket en el puerto 30033 (como para el módulo 4 – Servidor de ping ) para verificar que el servidor de TeamSpeak esta funcionando bien. Si es así, entonces se puede mostrar la bandera del servidor (la imagen triton_ts3.png), entonces se usa TeamSpeak 3 Marco de PHP para recuperar la lista y el estado de los usuarios conectados .

 /////////////////////////////////////////////////
 // TS3
 /////////////////////////////////////////////////

 function ts3 () {

    $host_ip    = '10.0.0.1';
    $host_port  = '30033';
    $socket     = 0;
    $socket     = @fsockopen($host_ip, $host_port, $errno, $errstr, 3);
    $html       = '';

    if($socket && !$errno){
      require_once("./TS3_PHP_Framework-1.1.12/libraries/TeamSpeak3/TeamSpeak3.php");
      $ts3_ServerInstance = TeamSpeak3::factory("serverquery://login:[email protected]:10011/");
      $ts3_VirtualServer  = $ts3_ServerInstance->serverGetById(1);

      $html .= '<img width="200px" src="pict/triton_ts3.png" style="margin-bottom : 10px;">';
      $html .= '<table cellspacing="0px" cellpadding="0px">';
      foreach($ts3_VirtualServer->clientList() as $client){
        if($client["client_unique_identifier"] == 'serveradmin'){continue;}
        $html .= '  <tr>';
        $html .= '    <td valign="middle">';
        $html .= '      <img style="width : 20px;" src="./TS3_PHP_Framework-1.1.12/images/viewer/'.$client->getIcon().'.png" alt="">';
        $html .= '    </td>';
        $html .= '    <td valign="middle">';
        $html .= '      '.htmlspecialchars($client);
        $html .= '    </td>';
        $html .= '  </tr>';
      }
      $html .= '</table>';
    }

    return $html;
  }

Este módulo es muy fácil de conseguir con la lib TeamSpeak 3 framework PHP 

7 – Módulo 4 – servidor Ping

Si tiene servidores, NAS, o cualquier otro tipo de máquina que desee conocer el estado (encendido / apagado, o disponible / no disponible), este tipo de módulo, de nuevo es muy simple pero de gran uso 


La idea es mostrar los servidores verdes que responden correctamente al módulo solicitaciones, y en rojo los que no responden. Para enfatizar la naturaleza alarmante de una máquina que no responde, vamos a añadir una animación para resaltar este resultado:

de ping

index.php

Al igual que con otros módulos, sólo un <div> suficientes.

  <div id = "ping"> </ div>

La etiqueta se queda vacía, y se «llena» de la función de JavaScript.

style.css

Para este módulo, la hoja de estilo es un poco más larga:

/* ping */

div#ping
{
  left              : 0px;
  bottom            : 0px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
}

td.ping
{
  font-size         : 30px;
  text-align        : left;
  border-radius     : 10px;
  padding           : 5px 10px;
  font-weight       : bold;
}

td.ping_up
{
  color             : #00DD00;
}

td.ping_down
{
  background-image  : url('pict/warning.gif');
  color             : #DD0000;;
}

Los nombres de la máquina se muestran en una tabla <table> que cada célula <td> puede o bien utilizar el estilo «ping_up» si la máquina cumple o «ping_down» si la máquina no responde. En este último caso, vamos a utilizar una imagen de un gif animado, a modo de  «flash» en un cuadro rojo con el mes,para dar un mayor resalte

javascript.js

Javascript función de este módulo hace sólo una petición AJAX, y muestra el resultado en el index.php div:

/* PING */

var ping_timeout;

function ping ()
{
  $.ajax({
    async : false,
    type: "GET",
    url: "./ajax.php",
    data: "block=ping",
    success: function(html){
      $("#ping").html(html);
    }
  });

  ping_timeout = setTimeout("ping()", 30000);
}

Es importante tener una visión en tiempo real del estado de las máquinas, por lo que estamos estableciendo el tiempo de refresco a 30 segundos. Se puede reducir este tiempo para que se adapte a sus necesidades, pero asegúrese de que sigue siendo mayor que el tiempo que tarda la función de PHP para poner a prueba todas sus máquinas. En promedio, se puede tardar de 4 a 5 segundos para poner a prueba todas las máquinas. Sin embargo, no es raro que se tarde  hasta 20 segundos! Así que si se ajusta a 30 segundos ,esta puede ser una buena opción para el tiempo de espera entre cada actualización del módulo.

ajax.php

Sólo tiene que añadir unas pocas líneas a ajax.php archivo para la función correcta se llama:

  /////////////////////////////////////////////////
   // PING
   /////////////////////////////////////////////////

   if ($block == 'ping') {
     echo ping ();
   }

inc.php

En este archivo vamos a declarar la función de ping () que es responsable del lanzamiento de las aplicaciones en diferentes servidores, y luego construir la tabla HTML que se mostrará.

En general, para supervisar el estado de un servidor, se utiliza el comando ping que simplemente indica si la máquina objetivo satisface las peticiones ICMP. Esto plantea varios problemas. De hecho, es probable que el tráfico ICMP está bloqueado por un servidor cortafuegos por  arriba que distorsione el resultado. Además, si desea supervisar un servidor web, por ejemplo, es muy posible que la máquina responda bien a los pings, pero que el servicio web no está disponible. Haciendo ping por lo tanto tienen poco interés …

La idea es bastante sencilla si los servicios que se ejecutan en nuestras máquinas están disponibles. Para ello, sólo tendremos que abrir un socket con la función de PHP fsockopen () . Si la abertura del pipe no  es posible  eso significara  que el servicio no está disponible 

 /////////////////////////////////////////////////
   // PING
   /////////////////////////////////////////////////

   función ping () {
     $ hosts = array ();
     // Definición de máquinas de prueba
     $ hosts_ip = array (
                     Oberon => array ('10 .0.0.1 '' 22 '), // SSH
                     'Triton' => array ('10 .0.0.2 '' 15915 '), // TeamSpeak
                     'Ananke' => array ('10 .0.0.3 '' 2049 '), // NFS
                     'DS110j' => array ('10 .0.0.4 '' 2049 '), // NFS
                     'DS210j' => array ('10 .0.0.5 '' 2049 '), // NFS
                     'DS212j' => array ('10 .0.0.6 '' 2048 ') // NFS
                 );

     // para cada máquina de abrir un socket se prueba en el puerto especificado
     // almacenamos el resultado 'arriba' o 'abajo' en las variables $ anfitriones
     foreach ($ hosts_ip as $ host => $ host_data) {
       $Host_ip =$host_data [0];
       $Host_port=$ host_data [1];
       $socket= 0;
       [email protected] ($ host_ip, $ host_port, $ errno, $ errstr, 3);
 if($socket && !$errno){$hosts[$hostname] = 'up';}
      else{$hosts[$hostname] = 'down';}
 }  // Construir la tabla HTML  
// para cada máquina probado, que muestra su nombre y el estilo se fija 'ping_up' o 'ping_down' la etiqueta td  
 $html  = '';
    $html .= '<table cellspacing="10px">';
    $c=0;
    foreach($hosts as $hostname => $host_status){
      if($c == 0){$html .= '<tr>';}
      $html .= '<td class="ping ping_'.$host_status.'">'.$hostname.'</td>';
      $c++;
      if($c == 2){$c = 0; $html .= '</tr>';}
    }
    if($c != 0){$html .= '</tr>';}
    $html .= '</table>';

    return $html;
  }

El $ hosts_ip variable contiene la lista de equipos para poner a prueba y la pantalla. El nombre que se muestra, la dirección IP y el puerto TCP servicio a ensayar se almacena allí. Debe adaptar los nombres, direcciones IP y número de puerto para sus necesidades.

Como se puede ver en los comentarios de código, dependiendo de la máquina de prueba, abro un zócalo en servicios tales como SSH, NFS y TeamSpeak. Esto también funciona muy bien en FTP, HTTP, POP3, etc … hasta que el servicio a prueba de escucha en un puerto TCP, que funcionará 

Nota: Es posible optimizar esta función PHP paralelización de sockets abiertos en cada máquina. De hecho, esta función prueba las máquinas de uno en uno, que puede ser largo … En «bifurcan» la tarea con la función pcntl_fork PHP (), es posible ejecutar todas las peticiones a la vez, reduciendo así el tiempo total que se pone la función para devolver la tabla HTML que se vea. Siéntase libre de dejar un comentario si quieres más detalles sobre este procedimiento 

Optimización mediante el fork

El principio es simple: Para cada máquina a ensayar, vamos a crear un proceso a través del hijo función de PHP fork_pcntl () que pondrá en marcha fsockopen (). A medida que el proceso hijo y el proceso padre no puede compartir las variables (por lo menos el uso de técnicas de memoria compartida …), debe almacenar los resultados en una pequeña base de datos SQLite  El proceso padre espera a todos proceso hijo se completa ir a leer el contenido de la base de datos SQLite (que contiene el estado de cada máquina). El resto permanece sin cambios, construimos la tabla HTML para mostrar como en la función inicial de ping () A saber, el fork sólo es posible desde la línea de comandos, será necesario adaptar el archivo ajax.php de esta manera:

  /////////////////////////////////////////////////
   // PING
   /////////////////////////////////////////////////

   if ($block=='ping') {
     eco shell_exec ( 'php5 fork.php');  // fork.php es el archivo en el que se encuentra la función ping_fork ();
   }

Aquí la versión «fork» de la función de ping (), se puede utilizar directamente copiando un archivo fork.php:

 función ping_fork () {

   $ Hosts_ip = array (
                     Oberon => array ('10 .0.0.1 '' 22 '), // SSH
                     'Triton' => array ('10 .0.0.2 '' 15915 '), // TeamSpeak
                     'Ananke' => array ('10 .0.0.3 '' 2049 '), // NFS
                     'DS110j' => array ('10 .0.0.4 '' 2049 '), // NFS
                     'DS210j' => array ('10 .0.0.5 '' 2049 '), // NFS
                     'DS212j' => array ('10 .0.0.6 '' 2048 ') // NFS
                 );

   $ PIDS = array ();

   // Conectar con el SQLite base de datos y la creación de la tabla hosts_status si no existe todavía
   $ Db = new SQLite3 ( 'ifstat / hosts.sqlite');
   $ Db-> exec (CREATE TABLE IF NO EXISTS hosts_status (nomb_sist_pral VARCHAR (10), host_status VARCHAR (5)); ');

   // Para cada máquina, hemos creado un proceso hijo
 foreach($hosts_ip as $host_name => $host){
    $pids[$host_name] = pcntl_fork();
    if(!$pids[$host_name]) {
      $socket = @fsockopen($host[0], $host[1], $errno, $errstr, 3);
      if($socket && !$errno){$status = 'up';}else{$status = 'down';}
 // esperamos hosts_status la tabla ya no está bloqueado por un acceso potencial competidor
 if($db->busyTimeout(5000)){
        $db->exec("INSERT INTO hosts_status VALUES ('$host_name', '$status');");
      }
      exit();
    }
  }
  // el proceso padre debe esperar hasta que todos los procesos se han completado hijo  


foreach($pids as $host_name => $pid){
    pcntl_waitpid($pid, $status, WUNTRACED);
  }

  $results = $db->query('select * from hosts_status;');

  $html  = '';
  $html .= '<table cellspacing="10px">';
  $c=0;
  while($host = $results->fetchArray(SQLITE3_ASSOC)){
    if($c == 0){$html .= '<tr>';}
    $html .= '<td class="ping ping_'.$host['host_status'].'">'.$host['host_name'].'</td>';
    $c++;
    if($c == 2){$c = 0; $html .= '</tr>';}
  }
  if($c != 0){$html .= '</tr>';}
  $html .= '</table>';

  $db->exec("DELETE FROM hosts_status;");

  return $html;
}

echo ping_fork();
 

El tiempo de espera fsockopen () aquí se establece en 3 segundos, lo que significa que uno debe esperar por lo menos tres segundos antes de declarar el equipo de destino como «abajo» (no disponible). En la versión no fork del ping () si un equipo no contesta, tuvo que esperar 3 segundos antes de probar la máquina siguiente, y así sucesivamente. Con mis 6 máquinas, si nadie contesta, él tendría que esperar 6 x 3 = 18 segundos antes de que el resultado final. Con la versión 6 fork solicitudes se envían simultáneamente. Cualquiera que sea el número de máquinas a ensayar, vamos a tener una respuesta dentro de 3 segundos como máximo

9 – Módulo 6 – Gráfico de ancho de banda

Por diversas razones, puede ser interesante tener si nuestro ancho de banda de Internet está saturado o no. Este módulo muestra una historia de unos 5 minutos utilizando el ancho de banda aguas abajo (descarga) y aguas arriba (carga). De esta manera, se puede ver de un vistazo si algo anormal está sucediendo en su red.

Introducción

Este módulo es el más complicado de todo por la borda. Por un lado, tenemos que recuperar el caudal instantáneo utilizado por la interfaz de red de la pasarela que está conectado al router. A continuación, tendrá que pasar estos datos en Pi para ejecutarlos en  el dashscreen. Por último, se creará un gráfico para representar esta información …

De hecho, se   ha optado por no utilizar suave tipo mrtg que se especializan en este tipo de cosas instalando el software mínimo y utilizando algunos comandos básicos. Para hacer algo simple (como el ancho de banda de visualización en el gráfico), sin necesidad de sacar la gran artillería  Y entonces … si no nos complicamos la vida, que sería mucho menos divertido, ¿verdad? 

Ancho de Banda

ifstat es una pequeña herramienta desde la línea de comandos que muestra las estadísticas de uso de una interfaz de red. En un terminal, escriba el siguiente comando:

  ifstat -n -i eth0

Y se obtiene continua, algo en el género:

       eth0       
  KB/s in KB/s out
     0,45  0,06
     0,71  0,39
     2,85  0,76
     0,57  0,06
     1,86  0,19
     0,45  0,06
     0,45  0,06
     0,45  0,06
     0,57  0,06
     0,59  0,13
     0,45  0,06
     0,45  0,06
     0,59  0,26
     0,57  0,06
     1,74  0,13
     ...

Como vemos se obtiene cada segundo el flujo instantáneo (casi) en Kbytes / s, es decir, en KB / s Esto es exactamente lo que necesitamos ahora  debe enviar esta información continuamente a nuestra pantalla.

Transmitir los datos a través de la red Pi

La forma más fácil de transmitir información desde un ordenador a otro es enviarlos en paquetes UDP … El comando netcat es totalmente apropiado para este tipo de operación. En una máquina que hace el papel de servidor de hecho:

  nc -u -l 12345
  • -u: Para utilizar UDP
  • -l: para cambiar al modo de escucha (servidor)
  • 12345: un número de puerto découte

A continuación, en una máquina B que actúa como un cliente, hacer:

  n -p 8888 -u 10.0.0.1 12345
  • -p 8888: un puerto de origen
  • -u: Para utilizar UDP
  • 10.0.0.1 dirección IP de la máquina A (servidor)
  • 12345: Oyente Una máquina (servidor)

Para transmitir los datos devueltos por el comando ifstat través netcat, vamos a utilizar una tubería . Aquí hay dos scripts completos (cliente / servidor) para realizar esta operación:

  • servidor de secuencia de comandos para ejecutar en el nc_ifstat_srv.sh Pi:
  ### COMENZAR INIT INFO 
 # Proporciona: nc_ifstat_srv 
 # Required-Start: 
 # Requerido-Stop: 
 # Default-Start: 2 3 4 5 
 # Default-Stop: 0 1 6 
 # Corto Descripción: ifstat para Jarvis 
 # Descripción: Habilitar el servicio proporcionado por el demonio. 
 ### END INIT INFO

 dst_port = 12345
 dst_dir = /home/Jarvis/ifstat
 dst_file = eth0.log

 nc -u -l $dst_port >> $dst_dir/$dst_file
  • script de cliente para funcionar en su nc_ifstat_clt.sh gateway / router de:
 ### COMENZAR INIT INFO
 # Proporciona: nc_ifstat_clt
 # Required-Start:
 # Requerido-Stop:
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Corto Descripción: ifstat para Jarvis
 # Descripción: Habilitar el servicio proporcionado por el demonio.
 ### END INIT INFO

 src_port = 8888
 dst_port = 12345
 dst_host = 10.0.0.2
 eth = eth0
nc_ifstat()
{
	while [ "true" ]
	do
  		ifstat -n -i $eth | nc -p $src_port -u $dst_host $dst_port
  		sleep 5
	done
}

case "$1" in
        stop)
		echo " Stoping ifstat for Jarvis..."
                killall ifstat
		killall nc
		;;
        start)
		echo " Starting ifstat for Jarvis..."
		nc_ifstat&
		exit 0	
                ;;
        *)
                exit 1
                ;;
esac

exit 0

 Para ejecutar el script en el arranque de la máquina, colocarlo en /etc/init.d continuación, ejecute el comando:
update-rc.d nom_du_script.sh defaults

En este punto, usted debe tener un archivo en el Pi en la que, cada segundo, el ancho de banda instantáneo se anexa al archivo  Sigue siendo para nosotros leer este archivo con un script PHP, y dibujar el gráfico para representar los datos que contiene 

creación gráfico con PHP

Una vez más, se podría haber utilizado una librería gráfica en PHP, JavaScript o cualquier otra cosa. Pero en lugar de  operar asi el autor decidio crear su propia función de gráficos en PHP. Verá que es mucho más simple que se puede imaginar 

Aquí está mi función imagickHisto ():


function imagickHisto ($max, $eth = '', $up_down = 'down') {

  $datas = parseData ("eth0.log", $up_down);

  $width            = 304; // anchura de la gráfica
  $height           = 100; // altura del gráfico
  $padding          = 1;
  $ticks            = 5;
  $background_color = '#000'; // color de fond
  $axes_color       = '#555'; // ejes de color 

  if($up_down == 'down'){
    $data_color       = '#1D1'; // carta de colores para descargar
  }
  else{
    $data_color       = '#D11'; //  gráficos en color para la carga
  }

  $nb_values        = $width - 2*$padding - 2;
  $max_value        = $height - 2*$padding - 4;

  $nb_datas         = sizeof($datas);
  $trim             = $nb_values - $nb_datas;

  if($trim < 0){$trim = 0;}

  $image = new Imagick();
  $image ->newImage( $width, $height, new ImagickPixel($background_color) );
  $draw  = new ImagickDraw();
  $draw->setStrokeColor( new ImagickPixel($axes_color) );

  $xx1    = $padding;
  $xy1    = $height - $padding - 1;
  $xx2    = $width - $padding - 1;
  $xy2    = $xy1;
  $yx1    = $xx1;
  $yy1    = $xy1;
  $yx2    = $yx1;
  $yy2    = $padding;
  $half_y = $height/2;
  $half_x = $width/2;

  $draw->line  ( $xx1, $xy1, $xx2, $xy2 );
  $draw->line  ( $yx1, $yy1, $yx2, $yy2 );

  $draw->line  ( $yx1, $yy2, $yx1+$ticks, $yy2 );
  $draw->line  ( $yx1, $half_y, $yx1+$ticks, $half_y );

  $draw->setStrokeColor( new ImagickPixel($data_color) );

  $first_x = $xx1 + 1 + $trim;
  $last_x  = $xx2 - 1;
  $first_y = $xy1 - 1;
  $last_y  = $yy2 + 1;

  for($i=0;$i<$nb_values;$i++){
    if(isset($datas[$i])){
      $value   = $datas[$i]*$max_value/$max;
      $value_y = $first_y - $value;
      $value_x = $first_x + $i;
      $draw->line  ( $value_x, $first_y, $value_x, $value_y );
    }
  }

  $image->drawImage( $draw );

  $text_draw = new ImagickDraw();
  $text_draw->setFillColor($axes_color);
  $text_draw->setFontSize( 12 );
  $image->annotateImage($text_draw, $half_x-20, $padding+10, 0, "$eth - $up_down");

  $image->setImageFormat( "png" );
  header( "Content-Type: image/png" );
  echo $image;
  exit;
}




En resumen, la función toma tres parámetros:

  • $ Max: máximo (en KB) para limitar el gráfico. Por ejemplo, un rendimiento máximo real alcanza 1.800 KB / s. Así que se ha seleccionado max = $ de 2000.
  • $ ETH: Nombre de la interfaz (por ejemplo, eth0)
  • $ UP_DOWN «arriba» o «abajo» para especificar el color del gráfico y los datos que se mostrará después de ifstat

La función lee una matriz de datos devuelto por la función parseData (), a continuación, se representa el gráfico una barra ancha de 1 píxel por datos. Con un ancho de 300 px, para que puedas ver 5 minutos de datos históricos 

Aquí parseData (), cuya función es la función para leer el archivo que contiene los datos de la orden ifstat:

function parseData ($stat_file, $up_down) {
    $datas = array();
    if(filemtime($stat_file) < time()-10){return $datas;}
    $stats = fopen($stat_file, 'r');
    while (($line = fgets($stats)) !== false) {
      $explode_line = str_word_count($line, 1, "0123456789.");
      if($up_down == 'down') {
        $datas[]  = $explode_line[0];
      }
      else{
        $datas[]  = $explode_line[1];
      }
    }
    fclose($stats);
    $datas = array_slice($datas, -300);
    return $datas;
  }

Esta función tiene dos parámetros:

  • $ Stat_file: analizador de archivos
  • $ UP_DOWN «arriba» o «abajo» para distinguir la carga de datos y descarga,

En lo que sigue, reprensenta el mismo enfoque que para los otros módulos 

index.php

Se necesita un div por gráfico; Así que agregamos dos para el archivo index.php, uno para subir y otro para su descarga.

  <Div id = "ifstat_eth0_up"> <img id = "img_eth0_up" src = "PICT / blank.png"> </ div>
 <Div id = "ifstat_eth0_down"> <img id = "img_eth0_down" src = "PICT / blank.png"> </ div>

En cuanto al módulo de Xplanet , es conveniente iniciar la fuente de las etiquetas de imagen <img> con un blank.png imagen en blanco.

style.css

Basta con colocar nuestros dos <div>:

 / * * Ifstat /
div#ifstat_oberon_up
{
  right             : 20px;
  bottom            : 20px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
}

div#ifstat_oberon_down
{
  right             : 340px;
  bottom            : 20px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
}

javascript.js

Una simple petición AJAX para recuperar la pantalla gráfica.

 / * * Ifstat /
var ifstat_timeout;

function ifstat () {

  var now             = new Date().getTime();

  var url_down = "ajax.php?block=ifstat&eth=wan&up_down=down&max=2000&hour="+now;
  var img_eth0_down = $("<img />").attr("src", url_eth0_down);
  $("#img_eth0_down").attr("src", url_eth0_down);

  var url_up   = "ajax.php?block=ifstat&eth=wan&up_down=up&max=150&hour="+now;
  var img_eth0_up = $("<img />").attr("src", url_eth0_up);
  $("#img_eth0_up").attr("src", url_eth0_up);

  ifstat_timeout = setTimeout("ifstat()", 5000);
}

Igual que para el módulo Xplanet , debe pre-cargar las imágenes y las muestra.En este caso el tiempo de actualización es de 5 segundos, lo cual es suficiente.

ajax.php

El código para agregar este archivo permanece tan elemental para los otros módulos. Sin embargo, no se olvide de tener en cuenta los parámetros de la imagickHisto () Función:

 /////////////////////////////////////////////////
 // ifstat
 /////////////////////////////////////////////////
  if($block == 'ifstat'){
    imagickHisto ($_REQUEST['max'], $_REQUEST['eth'], $_REQUEST['up_down']);
  }

inc.php

En este archivo, simplemente copia y pega el imagickHisto () y parseData () que se describieron anteriormente 

Esta es la representación final de primer plano, cuando el ancho de banda es de alta demanda

10 – Módulo 7 – VPN

Si  usa un pequeño servidor VPN PPTP para sus  amigos para poder   intercambiar fácilmente archivos o jugar juegos en red , es muy fácil de configurar tanto en el lado del servidor mediante la instalación del paquete de pptpd que el lado del cliente, ya que ‘ se forma nativa compatible con Windows.

Este módulo permite mostrar una lista de personas que están conectadas con el servidor PPTP VPN.


No se detalla en este artículo cómo instalar y configurar PGWP. Aquí hay un tutorial para ayudarle a implementar este tipo de VPN https://help.ubuntu.com/community/PPTPServer

El servidor pptpd está instalado en el router , proceda de la misma manera que el módulo de ancho de banda de gráficos para transferir datos utilizando netcat Pi. Lo único nuevo aquí es el comando last  permitiendo recuperar información de conexión de cliente VPN.

Transferir los datos a la Pi

lado Pi (servidor netcat):

 #! / Bin / bash

 ### COMENZAR INIT INFO
 # Proporciona: nc_vpn_srv
 # Requirido-arrancar :
 # Requerido-Stop:
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Corto Descripción: VPN para Jarvis
 # Descripción: Habilitar el servicio proporcionado por el demonio.
 ### END INIT INFO

dst_port=12346
dst_dir=/home/jarvis/vpn
dst_file=vpn_oberon.log

nc_vpn()
{
  while [ "true" ]
  do
    nc -q 1 -u -l 12346 > $dst_dir/$dst_file < /dev/null
    sleep 5
  done
}

case "$1" in
        stop)
                echo " Stoping vpn for Jarvis..."
                killall vpn
                killall nc
                ;;
        start)
                echo " Starting vpn for Jarvis..."
                nc_vpn&
                exit 0
                ;;
        *)
                exit 1
                ;;
esac

exit 0

lado de la  puerta de enlace (cliente netcat):

 #!  / Bin / bash

 ### COMENZAR INIT INFO
 # Proporciona: nc_vpn_clt
 # Required-Start:
 # Requerido-Stop:
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Corto Descripción: VPN para Jarvis
 # Descripción: Habilitar el servicio proporcionado por el demonio.
 ### END INIT INFO

src_port=8889
dst_port=12346
dst_host=10.0.0.1

nc_vpn()
{
        while [ "true" ]
        do
                last | grep ppp | grep "logged in" | nc -q 1 -p $src_port -u $dst_host $dst_port
                sleep 5
        done
}

case "$1" in
        stop)
                echo " Stoping vpn for Jarvis..."
                killall vpn
                killall nc
                ;;
        start)
                echo " Starting vpn for Jarvis..."
                nc_vpn&
                exit 0
                ;;
        *)
                exit 1
                ;;
esac

exit 0

Ejecute  estas secuencias de comandos en el inicio del sistema en la compactación en el directorio /etc/init.d a continuación, ejecutar el siguiente comando:

  update-rc.d nom_du_script.sh defaults

index.php

Un simple <div> Simplemente porque sólo queremos mostrar una lista de usuarios:

 <div id = "vpn"> </ div>

style.css

Un poco de formato de mirar bastante 

 / * * VPN /

div#vpn
{
  left              : 550px;
  bottom            : 10px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
  color : #FFF;
}

td.vpn
{
  text-align        : left;
  font-size         : 30px;
  padding           : 5px;
}

img.vpn
{
  width : 20px;
  height : 20px;
}

javascript.js

Una simple petición AJAX para recuperar los datos a mostrar.

 / * * VPN /

 var vpn_timeout;

function vpn ()
{
  $.ajax({
    async : false,
    type: "GET",
    url: "./ajax.php",
    data: "block=vpn",
    success: function(html){
      $("#vpn").html(html);
    }
  });

  vpn_timeout = setTimeout("vpn()", 5000);
}

ajax.php

Nada específico para este módulo:

 /////////////////////////////////////////////////
   // VPN PGWP
   /////////////////////////////////////////////////
  if($block == 'vpn'){
    echo vpn();
  }

.inc.php

Se requieren dos funciones de este módulo:

  • vpn_parseData (): analizar el archivo enviado a través netcat
  • VPN (): crear una tabla HTML con los nombres de usuarios conectados
 /////////////////////////////////////////////////
   // VPN PGWP
   /////////////////////////////////////////////////
function vpn () {

    $datas = vpn_parseData ("/home/jarvis/vpn/vpn_oberon.log");

    $html  = '';

    if(sizeof($datas) > 0){
      $html .= '<table cellspacing="0px">';
      foreach($datas as $data){
        $html .= '<tr>';
        $html .= '<td valign="middle"><img class="vpn" src="pict/vpn.png"></td><td class="vpn">'.$data[0].'</td>';
        $html .= '</tr>';
      }
      $html .= '</table>';
    }

    return $html;
  }

  function vpn_parseData ($stat_file) {
    $datas = array();
    if(filemtime($stat_file) < time()-10){return $datas;}
    $stats = fopen($stat_file, 'r');
    while (($line = fgets($stats)) !== false) {
      $explode_line = str_word_count($line, 1, "0123456789.");
      $datas[]  = $explode_line;
    }
    fclose($stats);
    return $datas;
  }

Esto en cuanto a este último módulo es muy simple

 

Como vemos el trabajo de MagdiBlog es   impresionante mostrando en una pantalla de forma espectacular  la hora y la  fecha  de una forma fácil de leer  La visualización del tiempo es también información útil todos los días. En cuanto a la tierra y la luna , resulta muy agradable (si eso no es lo suyo, puede reemplazar fácilmente estas imágenes con fotografías, añadir una función de «marco de fotos digital» integrado a los dashscreen ,etc)

Otros módulos como  ping , TeamSpeak , ancho de banda y VPN   pueden ser útiles para controlar lo que está sucediendo en cualquier red y recibir avisos de averías y otros problemas que puedan surgir.

Justo por encima del módulo de gráficos de ancho de banda,el autor  incluso añadió  un gráfico del número de visitas diarias usando GAPI para recuperar las estadísticas de Google Analytics y JSAPI (Gráficos de Google) para crear el gráfico.

Como vemos las posibilidades son inmensas sujetas tan solo a la creatividad de cada persona.  Para los módulos, el principio es siempre el mismo:

  1. un <div> con un ID en el archivo index.php
  2. una hoja de estilo style.css para colocar el div en cuestión y gestionar el formato de los datos que
  3. una función de JavaScript en el archivo javascript.js que se ejecuta una petición AJAX a intervalos regulares
  4. una línea en el archivo para llamar ajax.php buena función de PHP
  5. función de PHP en el archivo .inc.php para generar el código HTML para que se muestren las imágenes

Fuentes de descarga

Puede descargar todas las fuentes aquí: PiHomeDashScreen

Nota: tendrá que adaptar el código a sus necesidades.

Fuente http://www.magdiblog.fr/boa-pi-homedashscreen/3-principe-de-base/