Recicle su viejo portatil con Linux


Lubuntu está dirigido a los usuarios de PC y portátiles que se ejecutan en hardware de bajas especificaciones   en los momentos  actuales , es decir un ordenador vamos a decir “anticuado”  de  hace ya algunos años que conserva quizás  otros sistema operativo no  actualizable por lo que no esta  a la altura a efectos de seguridad  o  para ejecutar aplicaciones actuales orientadas a la web. Es triste  pero  esos equipos  funcionales  simplemente no tienen suficientes recursos para todas las ventanas,avisos y notificaciones de las distribuciones corrientes “con todas las funciones”.

Precisamente para dar una segunda oportunidad  a equipos anticuados, los miembros del equipo se encargan de LXDE y otros paquetes que forman parte de Lubuntu.

Ademas es importante que  Lubuntu recibió el reconocimiento oficial como miembro formal de la familia Ubuntu, comenzando con Lubuntu 11.10.

 

 

Lubuntu vs Ubuntu

Ambos Lubuntu y Ubuntu comparten dos grandes cosas importantes:

  • Core System Same
  • Mismas Repositorios

Lubuntu y Ubuntu pertenecen a la misma familia y hablar de ellos como totalmente diferentes sistemas no es correcto, ya que tienen algunas cosas en común. Por lo tanto, utilizan el mismo Foro Zona y comparten muchas páginas Wiki.Las diferencias entre Lubuntu y Ubuntu son:

  • Diferente entorno de escritorio – Lubuntu utiliza LXDE mientras Ubuntu utiliza la Unidad como la DE defecto.
  • Diferentes aplicaciones predeterminadas.Aparte de eso, son la misma. La DE es lo que hace que Lubuntu un sistema operativo ligero, y por supuesto las aplicaciones por defecto también, porque nos aseguramos de usar las aplicaciones más ligeras que no están ávidas de recursos.

 

 

Lubuntu 17.04

Lubuntu Artful Aardvark Alpha 1 (pronto a ser 17.10) ha sido liberada  sustituyendo a la versión 16.04.

También esta versión (además de la habitual LXDE ISO) es una imagen experimental con LXQt en lugar de LXDE.

 

Lubuntu incluye por defecto los siguientes paquetes como aaplicaciones de usuario:

  • Abiword – procesador de textos
  • Audacious – reproductor de música
  • Evince – lector de PDF
  • File-roller – gestor de archivadores
  • Firefox – navegador web
  • Galculator – calculadora
  • GDebi – administrador de paquetes
  • Gnumeric – hoja de cálculo
  • Guvcview – webcam
  • LightDM – gestor de sesiones
  • Light-Locker – bloqueador de pantalla
  • Lubuntu Software Center – gestor de paquete
  • MPlayer – reproductor de vídeo
  • MTPaint – editor de fotografías
  • Pidgin – mensajería instantánea
  • Scrot – capturas de pantalla
  • Simple Scan – escaneo
  • Sylpheed – cliente de correo electrónico
  • Synaptic – gestor de paquetes
  • Transmission – cliente bittorrent
  • Update Manager – gestor de actualizaciones
  • Startup Disk Creator – creador de usbs booteables
  • Wget – gestor de descargas CLI
  • XChat – cliente IRC
  • Xfburn – grabador de CD
  • Xpad – gestor de notas

Ademas, incluye sus propios paquetes  de LXDE

  • GPicView – visor de imágenes
  • Leafpad – editor de texto plano
  • LXAppearance – gestor de temas
  • LXDE Common
  • LXDM –
  • LXLauncher – modo fácil de lanzar aplicaciones
  • LXPanel – Barra de tareas
  • LXRandr – gestor de pantalla
  • LXSession – gestor de sesiones
  • LXSession Edit – editor de LXSession
  • LXShortCut – editor de lanzadores
  • LXTask – gestor de tareas
  • LXTerminal – emulador de terminal
  • Menu-Cache
  • Openbox – window manager
  • PCManFM – gestor de archivos

Lubuntu también puede usar el gestor de paquetes de Ubuntu.

Notas para la instalación

  • El instalador por defecto “Escritorio” requiere 384-800 MB de RAM (dependiendo de las opciones seleccionadas.) Si tiene algún problema, o si se siente cómodo usando una interfaz de teclado, pruebe el instalador alternativo para instalar en equipos con menos memoria RAM o un disco duro más pequeño que 4,3 GB.
  • Compruebe MD5SUM para el ISO descargado – Usted tendrá que comparar su MD5SUM con Ubuntu hashes .
  • Debe Grabar el CD O crear una unidad flash USB de arranque –
  • Comprueb  lso errores del  USB o el  Disco rebotable. Al arrancar el programa de instalación por defecto, verá la opción de “Comprobar disco para los errores”, de lo contrario, comprobar si hay errores de forma manual .

 

Descarga

La ultima version disponible para ordenador PC es la 17.04  aunque mantienen la versión anterior 16.04  para la plataforma Raspberry Pi 2  y 3

Para instalar lubuntu pc , lo primero es descargar la imagen iso para instalarlo en el arranque del equipo teniendo en cuenta eso si la arquitectura de la maquina.

Respecto a  la arquitectura la  versión de 32 bits servirá ara casi todas las PC .Es posible que necesite una ISO de 32 bits, para PCs anteriores a 2007.( elija esta  opción  si no está seguro) .La  versión de 64 bits es para equipos Intel o AMD.

Ademas  existe una versión PowerPC para Apple Macintosh G3 / G4 / G5 e IBM OpenPower (LTS solamente).

 

El link de descarga es el siguiente :   http://lubuntu.me/downloads/

 

 

 

 

Grabación  de imagen Libuntu en DVD

 

Durante mucho tiempo la manera en la que se podía montar imágenes iso en sistemas windows ha sido mediante programas de terceros que lo permitieran( como por ejemplo : Daemon Tools o Virtual CloneDrive,etc )  , pero a partir de Windows 8 en adelante se añadió una nueva  funcionalidad  que permite grabar imagenes ISO directamente con las herramientas que proporcionan el s.o.

Para grabar imágenes ISO en un CD o DVD, podemos hacerlo también de manera nativa  en Windows 10, para lo cual  introducimos en la grabadora CD/DVD un disco virgen.

Muy importante, antes de grabar, hay que fijarse en el tamaño de la ISO, ya que el límite que se puede grabar en un CD es de 700 MB.  Com  en el caso de la version 17.04  ocupa de hecho unos  916MB tendremos que usar un DVD  .

Hacemos clic derecho sobre la imagen ISO y seleccionamos la opción “Grabar imagen de disco”.

Al seleccionar la opción “Grabar imagen de disco”, aparecerá una ventana donde tendremos que seleccionar la unidad en la que vamos a grabar y si queremos o no verificar los datos del  DVD una vez termine la grabación.

Cómo se ver  es muy fácil montar y grabar imágenes ISO en Windows 10 de forma nativa gracias a la inclusión que se ha hecho a partir de Windows 8 de esta funcionalidad, que permite olvidarnos de programas de terceros

NOTA: Es posible que al hacer clic derecho sobre una imagen ISO no le aparezcan las opciones que explicamos más abajo. Eso es debido a que esta usando un programa de terceros por defecto. Si quiere montar o grabar imágenes ISO de manera nativa en Windows 10, debe hacer clic derecho sobre la imagen ISO, seleccionar “Propiedades” y después en la pestaña General hacer clic sobre “Cambiar…” para seleccionar el “Explorador de Windows”.

Creando un USB arrancable de Lubuntu con Etcher

  1. Descargamos Etcher desde este enlace. Podemos instalar la aplicación, pero esto no es necesario en Linux.
  2. Descargamos la versión más reciente de Lubuntu.
  3. A continuación, introducimos un pendrive de como mínimo 2GB en un puerto USB. Hay que tener en cuenta que Etcher eliminará todos los datos del pendrive, por lo que merece la pena copiar sus datos en otra unidad antes de iniciar el proceso.
  4. Ejecutamos Etcher
  5. A continuación, hacemos clic sobre SELECT IMAGE.

Etcher

  1. En el siguiente paso buscamos la imagen que habremos descargado en el paso 2.
  2. Ahora hacemos clic en SELECT DRIVE y elegimos la unidad de nuestro pendrive. Si sólo tenemos uno puesto, la selección será automática, pero no está de más asegurarse.

Etcher

  1. A continuación, hacemos clic en FLASH IMAGE.

Etcher

  1. Por último, esperamos a que finalice el proceso. Veremos una imagen como la siguiente:

Etcher

Nota:   No todos los equipos “antiguos”pueden arrancar un sistema operativo desde una unidad extraible USB  por lo que asegúrese que su equipo soporta el arranque por USB antes de hacer la imagen con Etcher

Anuncios

Conozca la potente herramienta gratuita de edición de estilos con Edge


Gracias  a que Microsoft se asoció con BrowserStack para obtener pruebas en vivo y automatizadas en Microsoft Edge  ,este  navegador  introduce nuevas mejoras en las herramientas de desarrollo de F12, incluyendo algunas de las funciones más solicitadas de UserVoice. Además las nuevas herramientas se construyen en TypeScript y siempre se ejecutan en cualquier instalación de Edge, por lo que no se requiere  instalar nada .OP Otro punto interesante es que  la documentación de las herramientas para desarrolladores de F12 está totalmente disponible en GitHub por lo que los documentos no sólo serán influenciados por sus comentarios, sino que están invitados a contribuir y ayudar a dar forma a la documentación.

Las  hojas de estilo en cascada (o CSS, siglas en inglés de Cascading Stylesheets) son un lenguaje de diseño gráfico para definir y crear la presentación de un documento estructurado escrito en un lenguaje de marcado como puede ser html  por lo que es muy usado para establecer el diseño visual de las páginas web, e interfaces de usuario escritas en HTML o XHTML;o incluso a cualquier documento XML, incluyendo XHTML, SVG, XUL, RSS, etc
Junto con HTML y JavaScript, CSS es una tecnología usada por muchos sitios web para crear páginas visualmente atractivas, interfaces de usuario para aplicaciones web, y GUIs para muchas aplicaciones móviles (como Firefox OS) por lo qeu es muy interesante disponer de alguna herramienta que nos ayude a gestionar,mejorar o modificar las hojas de estilo.

En este contexto Microsoft Edge dispone de siete herramientas distintas que  permiten ver,editar inspeccionar  y alterar tanto código css,html como javascript   cada una con su propia pestaña en la interfaz de las herramientas F12  de modo que vamos  a ver  una imagen de cada herramienta y un resumen rápido de lo que hace, seguido por las listas de sus principales características y tareas típicas.

La herramienta DOM Explorer (CTRL + 1)

La herramienta DOM Explorer muestra la estructura de una página web tal como está siendo representada en el navegador , haciendo posible editar su HTML y estilos en una página en vivo ( obviamente no se cambiara nada en el servidor sólo en la pagina visualizada para ver como quedaría.

Puede hacerlo por tanto  sin tener que editar y volver a cargar sus fuentes, para que pueda solucionar rápidamente problemas de visualización o experimentar con nuevas ideas o mejoras .

Explorador DOM de bordes

Las funciones de la herramienta DOM Explorer incluyen:

  • Sugerencias de autocompletado de IntelliSense al editar atributos HTML y propiedades CSS.
  • Arrastre los nodos DOM para reorganizarlos y editar nodos como HTML.
  • Apoyo para CSS compilado sourcemaps.

Desarrollo y tareas de depuración que hace más fácil:

  • Determinar por qué un elemento no se muestra en el lugar correcto o tamaño correcto.
  • Determinar qué estilos CSS y consultas de medios se están aplicando a un elemento.
  • Prueba de una serie de colores diferentes para un elemento para ver que se ve mejor.

La herramienta Consola (CTRL + 2)

Herramienta de consola de borde

La herramienta Consola proporciona una forma de interactuar con el código en ejecución:

  • Cambie los valores de las variables o inyecte código en un sitio en vivo con la línea de comandos de la consola.
  • Utilice la API de depuración de consola para enviar información de depuración.
  • Consulte los mensajes de error del navegador y los códigos de estado.

Las características de la herramienta Consola incluyen:

  • Abra la consola en la parte inferior de cualquier otra herramienta con el botón de consola o CTRL + ` .
  • Consola Depuración de métodos API para sincronización, recuento, agrupación y más.
  • Las sugerencias de autocompletado de IntelliSense en la línea de comandos aceleran la entrada, reducen errores tipográficos y le ayudan a descubrir aspectos de las API de JavaScript.

Desarrollo y tareas de depuración que hace más fácil:

  • Segmentación de iFrames específicos.
  • Ejecución de código de tiempo hasta la instrucción con nuevos métodos de temporización.
  • Cambiar el valor de una variable en el código en ejecución sin recargar.

 

La herramienta Depurador (CTRL + 3)

Herramienta de depurador de bordes

Puede utilizar la herramienta Depurador para examinar lo que está haciendo su código, cuando lo está haciendo y cómo lo está haciendo. Detenga el código en la mitad de la ejecución, pase a través de él línea por línea y observe el estado de las variables y los objetos en cada paso.

Las características de la herramienta Depurador incluyen:

  • No se actualiza la depuración. Establezca sus puntos de interrupción y vaya sin recargar y perder estado.
  • Interfaz de documentos con pestañas para facilitar la gestión de múltiples secuencias de comandos.
  • Puntos de interrupción en código estándar, respuestas de XHR y eventos.

Desarrollo y tareas de depuración que hace más fácil:

  • Ver lo que llevó a una llamada de función utilizando la pila de llamadas.
  • Hacer que el código comprimido o minificado sea más legible usando mapas de origen.
  • Supervisión de la creación y ejecución de los servidores web.

 

La herramienta de red (CTRL + 4)

Herramienta de red de bordes

La herramienta de red le ofrece los detalles finos de las solicitudes de red relacionadas con la carga y operación de sus páginas web.

Desarrollo y tareas de depuración que hace más fácil:

  • Visualización de la cantidad de ancho de banda que consume su página en los recursos.
  • Depuración de solicitudes AJAX mediante la visualización de los encabezados y los órganos de solicitud y respuesta.
  • Identificar las solicitudes de red que ralentizan la carga de sus páginas web.

 

La herramienta de rendimiento (CTRL + 5)

Herramienta de rendimiento de borde

La herramienta Rendimiento le ayuda a buscar lo que está sucediendo cuando su página se ralentiza. Usarlo para perfilar puntos específicos de lentitud muestra las operaciones que los están causando. En Microsoft Edge, la herramienta Rendimiento combina las herramientas anteriores de Capacidad de respuesta y Profiler deUI para crear una vista de extremo a extremo de su rendimiento de secuencias de comandos y pintura.

Algunas características interesantes son:

  • Identificar las diferentes fuentes de actividad de la CPU que causan lentitud de la UI.
  • Conozca la velocidad de fotogramas de su página web y la cantidad de repintados y reflujos que cuestan.
  • Establecimiento de etiquetas en la línea de tiempo para aislar escenarios de usuario.
  • Desarrollo y tareas de depuración que hace más fácil:  Optimizaciones de código de prueba y Acelerar sus páginas web.

La herramienta de memoria (CTRL + 6)

Herramienta Edge Memory

Cuando una página web comienza rápido y se ralentiza después de usarlo durante un tiempo, el culpable es generalmente una pérdida de memoria. La herramienta de memoria rastrea el uso de la memoria de su página web, ayudándole a identificar dónde crece el uso de la memoria, por qué está creciendo y cómo solucionarlo.

Algunas características interesantes son:

  • Una línea de tiempo para ver los cambios progresivos en el uso de la memoria.
  • Instantáneas para examinar los detalles del uso de memoria en puntos específicos.
  • Comparaciones de instantáneas para identificar puntos específicos de crecimiento.

Desarrollo y tareas de depuración que hace más fácil:

  • Identificar nodos DOM desprendidos.
  • Identificar los puntos de crecimiento de la memoria.
  • Medir el uso de memoria de objetos.

Herramienta de emulación de bordes

La herramienta de emulación le ayuda a probar cómo se ejecutan las páginas web en diferentes tamaños de pantalla y características de hardware y cómo responden a las diferentes cadenas de agente de usuario.

Algunas características interesantes son:

  • Emulando diferentes tamaños de pantalla y resoluciones.
  • Simulación GPS.

Desarrollo y tareas de depuración que hace más fácil:

  • Prueba de diseños sensibles en múltiples tipos de pantallas.
  • Prueba de las funciones de detección de ubicación para un sitio móvil.

 

 

 

Fuente https://docs.microsoft.com/

Alarma con estación meteorológica


También decidió utilizar un servidor MQTT para subir esta información en la web por lo que se puede desde cualquier lugar, tener un vistazo a la información meteorológica captada por este prototipo.

Elementos del montaje:

  1. nodeMCU (regulador Micro,  versión 0.9)
  2. Pantalla LCD – 16 x 2
  3. Botones – 3
  4. Sensor de temperatura DHT11
  5. Timbre o zumbador
  6. Placa de prototipos tamaño  mini
  7. Cables de puente
  8. Resistencia de 1000 Ω – 3
  9. Caja de madera para montar todas las cosas dentro.

Asignación de pines y planificación

Bien, así que vamos a hablar acerca de cómo tenía que distribuir los pasadores entre todos los componentes.

La pantalla LCD

La pantalla LCD,  necesita al menos 6 pines de I/O interfaz con el microcontrolador. Puede darse como sigue: Habilitar, register select, D04, D05, D06 D07.

  • Enable – pin I/O digital 0
  • Seleccione Registro – pin I/O digital 1
  • D04 – pin I/O digital 2
  • D05 – pin I/O digital 3
  • D06 – pin I/O digital 4
  • D07 – pin I/O digital 5

Los botones

Hay tres botones que vamos a usar, por lo queo bviamente  necesitaríamos tres pins de I/O digitales,

  • LeftButton – pin I/O digital 6
  • CenterButton – pin I/O digital 7
  • RightButton – pin I/O digital 8

El zumbador

El puede ser conectado al pin I/O digital 9.

El sensor de temperatura DHT11

Este sensor tiene un pin de salida y sigue para el pin de I/O digital 10

 

Ensamblaje

En una caja de madera ser practican agujeros para el lcd  y lo botones y entonces es hora de montar todo dentro de esa caja.

  1. Creo que tenemos que empezar con los botones. Usé un palito de helado estrecho para hacer una base para los botones.
  2. Luego tomar el nodeMCU y las placa de prototipos y pegarloo a la base de la caja con cinta de doble cara.
  3. Entonces conectar los botones a los pines de I/O digitales apropiados.
  4. En tercer lugar, colocar  la pantalla LCD y luego agarrarla bien a la caja con algunas cintas desde el interior. .
  5. Hacer las conexiones de la pantalla LCD.
  6. Luego conectar el timbre o buzzer en el interior de la caja con cinta de doble cara y conectar su terminal positivo al pin digital 9
  7. El sensor DHT11 tiene tres piness: 5v, gnd y la salida. Por lo tanto el pin de salida irá al pin digital 10 de la nodeMCU . 5v y tierra son obvias dónde deben ir.
  8. También para agregar, DHT11 es lo único que se quedará fuera de la caja para detectar la temperatura exterior. .

 

El código

El código qeu ha escrito Techovator0819      es cerca de 450 líneas de longitud. y cuenta  con  algunas bibliotecas importantes que se necesitan para descargar  asi que lo primero es asegúrarse de tener el IDE de Arduino instalado asi como tener los drivers del  esp8266 instaladas también. Si no lo ha hecho, haga clic aquí.

El primer paso antes de ver  el código, es entender la funcionalidad de nuestro dispositivo y el código en consecuencia:

  • Nestro WB(weather box)  accede a internet y recupera la información de tiempo apropiado a través de una llamada a la API.
  • También  tomara  la temperatura del medio ambiente  con un sensor propio y enviara esa información a un corredor de MQTT.
  • También podría mantener alarmas y temporizadores para usted.
  • También es capaz de mostrar hora y fecha.

Todo , esto significa que necesitamos integrar todas estas funciones bajo un título o código.

¿Cuáles son las bibliotecas que necesitamos?

  1. Librería LiquidCrystal . Como estamos usando una pantalla LCD como la principal interfaz entre usted y el NodeMCU, esta biblioteca es indispensable. Paranuestra comodidad, esta biblioteca, por defecto, es una biblioteca integrada en el IDE de Arduino.
  2. Biblioteca de ESP8266WiFi . Esta biblioteca permite el ESP8266 conectar con el Wifi y tener acceso a internet. Esta librería viene en un paquete que debe descargar durante la instalación del ESP8266 en el administrador de la placa.
  3. Biblioteca de ArduinoJson . Cuando se llama a la API, los datos que usted recibirá estaran en formato JSON (JavaScript Object Notation). Así que si quiere convertirlo a un formato utilizable, necesita analizarlo. Y la biblioteca de ArduinoJson lo hace por nosotros.
  4. Biblioteca para el sensor DHT11.
  5. Biblioteca en tiempo de. Para mantener a nuestro tiempo. Las funciones de biblioteca se enumeran aquí.
  6. Biblioteca de TimeAlarms . Se utiliza para que nos establezcan alarmas y temporizadores. Las funciones de biblioteca se enumeran aquí.

Las dos últimas bibliotecas deben utilizarse juntos. Puede usar la biblioteca en tiempo de forma independiente pero no de la biblioteca de TimeAlarms.


La llamada de API

 

The API Call

 

 

 

 

Lo más importante es una llamada a la API es la API key. Estoy conectando a la página web openweathermap.org para obtener toda la información de tiempo. Así que hay que seguir el procedimiento para abrir una cuenta allí y obtener un API key y es absolutamente gratis. Para llamar a la API key,
El primer paso es conectarse al servidor.

En segundo lugar, usted necesita utilizar su API key en la URL.Usted deberá utilizar el método GET para recuperar los datos de la URL.

Para hacer los datos disponibles en un formato utilizable,necesita para luego almacenar los datos en una cadena.

Los datos que reciba serán en formato JSON. Así que hay que analizarlo.

Y luego, se almacenan la información deseada en algunas variables globales que se pueden utilizar en cualquier lugar en el código.

     El siguiente es un ejemplo de código  para demostrar cómo funciona. Esta parte básicamente declara las bibliotecas utilizadas, crea las variables y objetos de la biblioteca a consultar.

include <ArduinoJson.h>
#include <ESP8266WiFi.h>
String result; 
// la cadena en la que se almacenarán los datos después de la llamada a la API
char servername[]="api.openweathermap.org"; //mombre servidor
String APIKEY = "YOUR_API_KEY"; //el API key
String CityID = "1264527"; //el  ID de la ciudad

//Asignación de sus variables globales para almacenar la información meteorológica recibida
String Description;
String Place;
float Temperature;
float Humidity;
float w;
WiFiClient client; >

Código de configuración básica.

void setup()

{

// Ponga su código de configuración aquí, para ejecutar una vez:
Serial.begin(9600);
WiFi.begin(“your ssid”, “your password”);

//empieza  conexion WIFI
while(WiFi.status() != WL_CONNECTED)

{

// espera hasta que se establezca la conexión
Serial.print(“.”);
delay(500);
}
Serial.println(“Connectado!”);
Serial.println(WiFi.localIP());   //imprime direccion  IP
}<

Código para crear una función que obtiene los datos.

void weatherData(){

if (client.connect(servername, 80)) {

// inicia la conexión del cliente, comprueba la conexión
client.println(“GET /data/2.5/weather?id=”+CityID+”&units=metric&APPID=”+APIKEY);

//// llama a la api usando el método get antes de la URL. Nota: La URL utiliza la clave api.
Serial.println(“Server esta accesible”);
client.println();
}
else { //  si el servidor no esta disponible
Serial.println(“fallo de conexion  “); //mensaje de errorsi no esta conectado el cliente
Serial.println();
}
result = “”;

//Hace que la cadena nula de cualquier dato almacenado previamente para almacenar nuevos datos
while (client.available()) { //connected or data available
char c = client.read(); //gets byte from ethernet buffer
result = result+c;
}
Serial.println(result);
result.replace(“[“, ” “);

//Estoy enfrentando un error. Sólo para evitarlo, tengo que escribir esto
result.replace(“]”, ” “);

//y esto tambien.
client.stop(); //para  cliente
Serial.println(“Recieved”);

//Analiza la cadena llamada resultado

StaticJsonBuffer<1024> jbuff;

JsonObject &root = jbuff.parseObject(result);
if (!root.success())
{
Serial.println(“parseObject() failed”);
}

// almacena toda la información deseada en variables temporales.
String location = root[“name”];
float temperature = root[“main”][“temp”];
float humidity = root[“main”][“humidity”];
String description = root[“weather”][“description”];
float wind = root[“wind”][“speed”];

//Transfiere toda la información de las variables temporales a variables globales a las //que puede acceder en cualquier parte del código.
Place = location;
Temperature = temperature;
Humidity = humidity;
w = wind * 3.6;
Description = description;
}

La función de bucle para mostrar todo lo que te quieren en el monitor serie.

void loop() {

weatherData(); //Llama a la función que hemos discutido anteriormente
Serial.println(Temperature);
Serial.println(Place);
Serial.print(“H: “);
Serial.println(Humidity);
Serial.print(w);
Serial.println(” kmph”);
Serial.println(Description);
delay(8000); //retardo de  8 segundos
}

Como vemos  es un ejemplo básico de una llamada a la API y el análisis de datos JSON.

 

MQTT cliente y agente

 

MQTT Client and Broker

 

 

Como hemos visto en este blog el autor h aoptado  por el frameworl Cayyene de MyDevices para salvar la informacion procedente del sensor DHT11

one.jpg

 

 

two.jpg

 

 

 

 

four.jpg

 

 

five.jpg

 

 

Como vemos va  subiendo nuestros datos de los sensores a un corredor de MQTT en internet por lo que podemos ver desde cualquier lugar.
Pesonalmente pienso que el tablero de instrumentos del Cayenne es el más conveniente así queno me sorprende que el autor lo hay usado
Resumidamente esto son los pasos  para usar el servicio
  • En primer lugar, debe crear una cuenta.
  • Después de haber conectado la placa a Cayena se le dirigirá automáticamente a la consola donde se pueden utilizar los widgets personalizados disponibles.
  • Asegúrese de especificar correctamente el canal y corresponden a ese canal para enviar datos en el código.
  • Después de que hayas hecho eso, cree un nuevo proyecto y arrastrar y soltar widgets como de sus dispositivos.
  • El siguiente es un código de ejemplo para que comprendas cómo Protocolo MQTT. También utilizaremos la biblioteca Cayena-MQTT-ESP8266 para hacer las cosas mucho más fácil para nosotros.
    <#include 
    
    char ssid[] = "ssid";
    char wifiPassword[] = "wifiPassword";
    
    char username[] = "MQTT_USERNAME";
    
    char password[] = "MQTT_PASSWORD";
    char clientID[] = "CLIENT_ID";
    
    void setup() {
    
      Serial.begin(9600);
      Cayenne.begin(username, password, clientID, ssid, wifiPassword);
    }
    
    void loop() {
    
     Cayenne.loop(); //this function must be called regularly to keep the connection stable
      float sensorInfo = analogRead(A0);
      Cayenne.virtualWrite(0, sensorInfo); //virtualWrite(channel, data) is function with two parameters. Channel - you want to send the data to and second parameter is the data itself.
    }
  • Después de eso, usted será capaz de enviar y recibir datos sin problemas. Para este , se ha usado sólo dos widgets icono es decir ‘temperatura’ y ‘humedad’.
  • Después de crear una cuenta, haga clic en ‘Add New’.
  • A continuación, haga clic en ‘Dispositivo/Widget’Haga clic en “Traiga su propia cosa”, que es en la parte inferior.Una nueva página aparecerá indicando su nombre de usuario MQTT, contraseña y el ID de cliente que son únicas para usted. Estos se aplicarán en el código para identificar el dispositivo.

Estructura del código final

La longitud total del código es alrededor de 550 líneas.

El código está dividido en dos secciones. Una PageDisplay y otra DecMaker (abreviatura de decisiones). Cada vez que usted pulsa cualquier botón, basado en que (derecha o izquierda), la pantalla mostrará esa página. Cuando en página y el centerButton, el código se moverá a la DecMaker. Dentro de la función DecMaker y basado en qué página estaba finalmente abierta, ejecutará las acciones correspondientes. Puede recibir datos meteorológicos, sensores, alarmas y temporizadores.

Las páginas se muestran según los modos. Los modos son cuatro. Pueden ser,

  1. Inicio modo: para obtener los datos meteorológicos y visualizarlos. Así como percibir el entorno.
  2. Modo set timer – establecer temporizadores para usted
  3. Modo de programar la alarma – establecer alarmas para que usted
  4. Panel de control – cuando tu no en cualquiera de los modos, prefiere podría quedarse en el tablero de instrumentos.

A continuación, vamos a hablar sobre el sketch principal 

Paso 9: El código principal

El siguiente es el código principal.

Para descargar el código, haga clic aquí.

LiquidCrystal lcd(16, 5, 4, 0, 2, 14);
#define rightButton 13
#define centerButton 15
#define leftButton 12
#define buzz 3
int page = 1;
byte leftArrow[8]
{ B00000,
 B00010,
 B00110,
 B01110,
 B11110,
 B01110,
 B00110,
 B00010
};
byte rightArrow[8]{
 B00000,
 B01000,
 B01100,
 B01110,
 B01111,
 B01110,
 B01100,
 B01000
};
byte line[8]
 { B00110,
 B00110,
 B00110,
 B00110,
 B00110,
 B00110,
 B00110,
 B00110
};
String result;
char servername[]="api.openweathermap.org";
String APIKEY = "Your Api key";
String CityID = "Your city ID";</p><p>String Description;<br>String Place;
float Temperature;
float Humidity;
float w;
WiFiClient client;
dht DHT;#define pin 1
int set=1; // for configuring the alarm
int a, b, c; // used to denote the hour, minute and second while setting an alarm</p>
char username[] = "MQTT_username";<br>char password[] = "MQTT_password";
char clientID[] = "Client ID";

void setup() {
 // put your setup code here, to run once:
 Serial.begin(9600);
 WiFi.begin("ssid", "password");
 lcd.print("Weather box");
 delay(2000);
 lcd.clear();
 if (WiFi.status() == WL_CONNECTED){
 Cayenne.begin(username, password, clientID);
 lcd.print("Connected!");
 delay(3000);
 lcd.clear();
 Serial.println(WiFi.localIP());
 } else {
 lcd.print("Not conn");
 delay(3500);
 }
 lcd.clear();
 lcd.begin(16, 2);
 lcd.createChar(0, leftArrow);
 lcd.createChar(1, rightArrow);
 lcd.createChar(3, line);
 
 pinMode(rightButton, INPUT);
 pinMode(centerButton, INPUT);
 pinMode(leftButton, INPUT);
 pinMode(buzz, OUTPUT);
 digitalWrite(buzz, LOW);
 
 setTime(15, 12, 50, 25, 5, 17);
 delay(1000);
}
int val = 1;
int x,y; //for setting timer minutes and seconds
int trig; //for coniguring the timer
int counter = 0;
void loop() {
 // put your main code here, to run repeatedly:
 while(val == 1){
 if (digitalRead(leftButton)==HIGH)
 { val = 0;}
 lcd.clear();
 lcd.print(hour());
 lcd.print(":");
 lcd.print(minute());
 lcd.write(byte(3));
 lcd.print("WiFi:");
 if (WiFi.status() == WL_CONNECTED){
 lcd.print("conn"); } 
 else {
 lcd.print("Nconn");} 
 lcd.setCursor(0, 1);
 lcd.write(byte(0));
 lcd.print("Menu");
 lcd.write(byte(3));
 
 if (digitalRead(centerButton)){
 DHT.read11(pin);
 lcd.print("T:");
 int a = DHT.temperature; //converting float to int
 lcd.print(a);
 int b = DHT.humidity; // converting float to int
 lcd.print(" H:");
 lcd.print(b);
 delay(3000);
 }else {
 date();
 }
 counter++;
 if (counter == 60){
 if (WiFi.status()==WL_CONNECTED){
 Cayenne.loop(); 
 DHT.read11(pin); 
 Cayenne.virtualWrite(1, DHT.temperature);
 Cayenne.virtualWrite(2, DHT.humidity); 
 } 
 counter = 0;
 }
 delay(50);
 }
 while (val != 1){
 delay(200);
 pageDisplay();
 if (digitalRead(rightButton)){
 if (page == 4){
 page = page;
 } else {
 page++;
 }
 pageDisplay();
 
 } else if (digitalRead(leftButton)){
 if (page == 1){
 page = page;
 } else {
 page--;
 }
 pageDisplay();
 
 } else if (digitalRead(centerButton)== HIGH){
 decMaker();
 }
 }
}
void pageDisplay()
{ switch(page){
 case 1:
 lcd.clear();
 lcd.setCursor(6, 0);
 lcd.print("Home");
 lcd.setCursor(15, 0);
 lcd.write(byte(1));
 break;
 case 2:
 lcd.clear();
 lcd.write(byte(0));
 lcd.setCursor(3, 0);
 lcd.print("Set Timer");
 lcd.setCursor(15, 0);
 lcd.write(byte(1));
 break;
 case 3: 
 lcd.clear();
 lcd.write(byte(0));
 lcd.setCursor(3, 0);
 lcd.print("Set Alarm");
 lcd.setCursor(15, 0);
 lcd.write(byte(1));
 break;
 case 4:
 lcd.clear();
 lcd.write(byte(0));
 lcd.setCursor(3, 0);
 lcd.print("Dash Board");
 break;
 default:
 lcd.clear();
 lcd.print("Error 002");
 break;
 }
}
void date(){
 lcd.print(day());
 lcd.print(" ");
 int a = month();
 switch(a){
 case 1:
 lcd.print("Jan");
 break;
 case 2:
 lcd.print("Feb");
 break;
 case 3:
 lcd.print("Mar");
 break;
 case 4:
 lcd.print("Apr");
 break;
 case 5:
 lcd.print("May");
 break;
 case 6:
 lcd.print("Jun");
 break;
 case 7:
 lcd.print("Jul");
 break;
 case 8:
 lcd.print("Aug");
 break;
 case 9: 
 lcd.print("Sep");
 break;
 case 10:
 lcd.print("Oct");
 break;
 case 11:
 lcd.print("Nov");
 break;
 case 12:
 lcd.print("Dec");
 break;
 default:
 lcd.print("005");
 }
 if (day()<10){
 lcd.print(" ");
 }
 lcd.print(year());
 }
void decMaker(){
 switch(page){
 case 1:
 lcd.clear();
 lcd.print(". . .");
 weatherData(); 
 lcd.clear();
 while (digitalRead(leftButton) == LOW){
 weatherData();
 digitalRead(leftButton);
 lcd.setCursor(6, 0);
 lcd.print("IST:");
 lcd.setCursor(5, 1);
 lcd.print(hour());
 lcd.print(":");
 lcd.print(minute());
 delay(3000);
 lcd.clear();
 lcd.print("Wthr in ");
 lcd.print(Place);
 lcd.setCursor(0, 1);
 lcd.print("T:");
 lcd.print(Temperature);
 lcd.setCursor(9, 1);
 lcd.print("H:");
 lcd.print(Humidity);
 delay(3000);
 lcd.clear();
 digitalRead(leftButton);
 lcd.print("Wind: ");
 lcd.print(w);
 lcd.print("kmph");
 lcd.setCursor(0, 1);
 lcd.print(Description);
 delay(2000);
 lcd.clear();
 DHT.read11(pin);
 lcd.print("Room: ");
 lcd.setCursor(0, 1);
 lcd.print("T:");
 lcd.print(DHT.temperature);
 lcd.setCursor(9, 1);
 lcd.print("H:");
 lcd.print(DHT.humidity);
 delay(2000);
 lcd.clear();
 }
 lcd.begin(16, 2); // In my case the lcd doesn't work without this. But don't know why.
 break;
 case 2:
 setTimer();
 break;
 case 3:
 setAlarm();
 Serial.print("THREE");
 lcd.begin(16, 2);
 break;
 case 4:
 Serial.print("FOUR");
 val = 1;
 break;
 default:
 Serial.print("not a valid entry");
 lcd.clear();
 lcd.print("error 001");
 break;
 }
}
void weatherData()
{ if (client.connect(servername, 80)) 
{ //starts client connection, checks for connection
 client.println("GET /data/2.5/weather?id="+CityID+"&units=metric&APPID="+APIKEY);
 Serial.println("Server is accessable");
 client.println();
 } 
 else {
 Serial.println("connection failed"); //error message if no client connect
 Serial.println();
 }
 result = "";
 while (client.available()) { //connected or data available
 char c = client.read(); //gets byte from ethernet buffer
 result = result+c;
 }
 result.replace("[", " ");
 result.replace("]", " ");
 client.stop(); //stop client
 Serial.println("Recieved");
 
 StaticJsonBuffer<1024> jbuff;
 JsonObject &root = jbuff.parseObject(result);
 if (!root.success())
 {
 Serial.println("parseObject() failed");
 }
String location = root["name"];
 float temperature = root["main"]["temp"];
 float humidity = root["main"]["humidity"];
 String description = root["weather"]["description"];
 float wind = root["wind"]["speed"];
Place = location;
 Temperature = temperature;
 Humidity = humidity;
 w = wind * 3.6;
 Description = description;
}
void alarm()
{ Serial.println("Alarm activated");
 lcd.clear();
 lcd.print("Wake up, Lazy");
 for (int i = 0; i <= 10; i++){
 digitalWrite(buzz, HIGH);
 delay(80);
 digitalWrite(buzz, LOW);
 delay(80);
 digitalWrite(buzz, HIGH);
 delay(80);
 digitalWrite(buzz, LOW);
 delay(800);
 }
 digitalWrite(buzz, LOW);
 set = 0;
}
void setAlarm(){
 set = 1;
 int pos = 1;
 a, b, c = 0;
 repeat:
 //timeDisplay();
 lcd.clear(); 
 lcd.setCursor(0, 0); 
 lcd.print(a); 
 lcd.print(":");
 lcd.print(b); 
 lcd.print(":");
 lcd.print(c); 
 lcd.setCursor(0, 1);
 if (pos == 1){ lcd.print("hours");}
 else if (pos == 2){ lcd.print("minutes");}
 else if (pos == 3){lcd.print("seconds");}
 delay(200);
 if (digitalRead(leftButton)){//leftButton
 if (pos == 3)
 {pos = 1;}
 else 
 {pos++;}
 } else if (digitalRead(rightButton)){
 switch (pos){
 case 1:
 if (a == 23){ a = 0;}
 else {a++;}
 break;
 case 2:
 if (b == 59){ b = 0;}
 else {b++;}
 break;
 case 3:
 if (c == 59){ c = 0;}
 else {c++;}
 break;
 }
 } else if (digitalRead(centerButton)){
 confirmAlarm();
 } 
 if (set == 0){
 goto endIt;
 }
 goto repeat;
 endIt:
 Serial.println("Alarm executed successfully");
}

void confirmAlarm()
{ lcd.clear();
 Alarm.alarmOnce(a, b, c, alarm);
 up:
 lcd.setCursor(1, 0);
 lcd.print("Alarm Running");
 lcd.setCursor(3, 1);
 lcd.print(hour());
 lcd.print(":");
 lcd.print(minute());
 lcd.print(":");
 lcd.print(second());
 Alarm.delay(200);
 delay(1);
 lcd.clear();
 //timeDisplay();
 Serial.println("...");
 if (set == 0||digitalRead(centerButton)){goto down;}
 goto up;
 down:
 set = 0;
}
void setTimer(){
 int cur = 1;
 x, y = 0;
 trig = 1;
 roof:
 lcd.clear();
 lcd.setCursor(2, 0);
 lcd.print("minutes: ");
 lcd.print(x);
 lcd.setCursor(2, 1);
 lcd.print("seconds: ");
 lcd.print(y);
 if (cur == true){lcd.setCursor(0, 0); lcd.write(byte(1));}
 else {lcd.setCursor(0, 1); lcd.write(byte(1));}
 delay(200);
 if (digitalRead(rightButton)){
 switch(cur){
 case 1:
 if (x == 20){x=0;}
 else {x++;}
 break;
 case 2:
 if (y == 59){y = 0;}
 else {y++;}
 break;
 default: 
 lcd.clear();
 lcd.print("ERROR 003");
 }
 } else if (digitalRead(leftButton)){
 if (cur == 2){cur = 1;}
 else {cur++;}
 }
 if (digitalRead(centerButton)){
 confirmTimer();
 } else {
 goto roof;
 }
 trig = 0;
 lcd.setCursor(0, 0);
 lcd.print("Timer successful");
 delay(2000);
 lcd.clear();
}</p><p>void confirmTimer(){<br> int z;
 z = x*60 + y;
 Alarm.timerOnce(z, timer);
 lcd.clear();
 
 sky:
 Serial.println(".");
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("CountDown Timer");
 lcd.setCursor(7, 1);
 lcd.print(z);
 z--;
 Alarm.delay(999);
 delay(1);
 if (trig == 0||digitalRead(centerButton)==HIGH){goto ground;}
 goto sky;
 ground:
 trig = 0;
 lcd.clear();
}
void timer(){
 Serial.println("Boom, timer is on!! :)");
 lcd.clear();
 lcd.setCursor(3, 0);
 lcd.print("Time's Up!");
 for (int i = 0; i<=10; i++){
 for (int j = 0; j<=3; j++){
 digitalWrite(buzz, HIGH);
 delay(70);
 digitalWrite(buzz, LOW);
 delay(70);
 }
 delay(700);
 }
 trig = 0;
}

Mas información en http://www.instructables.com/id/IoT-Weather-Box-with-Custom-Alarms-Timers/

Router home-station como servidor de impresion


Es habitual que al migrar el servicio ADSL  a FTTH  el operador  nos deje como medida de cortesía  , el viejo router de ADSL  en casa del cliente , así que probablemente el  viejo router haya quedado  en el olvido en un cajón sin saber muy bien que hacer con el.

Por otra parte, también hay personas que optan por comprar un router de mayor calidad, por lo que es probable que se mantenga también el de su proveedor de Internet en casa.

En cualquier caso ,sea por el motivo que sea, es relativamente   habitual tener  en casa o la oficina un viejo router inalámbrico que no se está utilizando, sin saber muy bien que hacer con este así que es es el momento de sacarle partido  como por ejemplo  para ampliar la cobertura wifi  o por necesitar mayor numero de puertos ethernet  como vimos en este post ,  o en el caso de que sea un home-station usarlo como nas-server  o un servidor de impresión

Un Servidor de Impresión es un equipo o concentrador, o modernamente  un servidor, que conecta una impresora a la red lan interior , para que cualquier equipo pueda acceder a ella e imprimir trabajos, sin depender de otro ordenador para poder utilizarla, como es el caso de las impresoras compartidas.

Veamos  como convertir un  Home-Station modelo Observa  como servidor de impresión :

En primer lugar entendemos habra  los siguintes pasos comentados en un post anterior
es decir  cambiar  la ip de acceso por defecto ( para que no haya colisiones con la ip del router principal)   y desactivar el DHCP
En el caso de querer implementar una impresora de red , aparte de conectar la toma usb de la impresora a la toma usb del Home-Station , tan solo necesitaremos  ir al menú Advanced ->Network Tools –>Printer   y activar ( check enable )
printer
Observe  que la url( http://192.168.1.100:631/printers/Printer) sera la que necesitaremos para añadir la impresora de red desde nuestro ordenador.
Asimismo es interesante   ,si se desea,  asociar un  nombre  que sugiera el tipo de impresora  a la que  nos conectaremos y finalmente pulsar Apply
cabon

Lo primero obviamente, es conectar la impresora al puerto USB del router y encenderla. En el equipo con Windows nos dirigiremos a Panel de Control – Impresoras y haremos clic en Agregar una impresora.

printer1

 

Seleccionaremos Agregar una impresora de Red y no esperaremos a que intente encontrarla, seleccionaremos directamente la opción La impresora no está en la lista .

En la siguiente pantalla pulsaremos la opción Seleccionar una impresora compartida por nombre  y  justo ahí   introduciremos los datos que configuremos  en el  paso anterior  (en el ejemplo  http://192.168.1.100:631/printers/Canon MG2550)

Después de intentar comunicarse con la impresora mediante la dirección http  que le hemos especificado, si la comunicación es correcta    , pedirá información adicional  de  marca  y  modelo .

Si en el equipo no tiene los drivers de la impresora puede  hacer clic en Usar disco e introducir el CD de la impresora en el equipo o en su defecto descargar los drivers desde la página web del fabricante seleccionando Marca y modelo directamente via windows update.

printercanon

 

Tras la instalación, podremos lanzar una página de prueba y comprobar que imprime correctamente.

 

printerprueba.PNG

 

En el caso de ser una multifunción, no es posible  escanear, sólo es posible imprimir.,pero para eso esta siempre la opción de desenchufar la impresora del Home-Sation  y volverlo conectar al pc para esa eventualidad

 

NOTA: Existen diferentes modelos de router Homestation, por lo que si no funciona de esta manera, recomiendo visitar el foro de Movistar,

Problema de actividad al 100% en Windows 10


Puede    que de repente su ordenador con Windows 10   haya dejado de responder  en un  tiempo razonable a cualquier petición  que se  haga  llegando incluso  a demorarse alrededor de  varios minutos el simple hecho abrir cualquier menú contextual .

Lo extraño es que tras ese comportamiento anómalo  tras un rato  comience a  responder de  forma rápida ( normal)  para  luego volverse a repetir el ciclo de demoras y así sucesivamente

Puede que ante un comportamiento tan anormal   haya tenido la  tentación de reinstalar W10  tal y como tratamos en este post , pero   para ese problema probablemente no   mejorara el comportamiento. Hay personas  que  incluso  optan  por cambiar  el disco o  formatear la unidad  de sistema con el consiguiente  trabajo posterior  de instalación  de todo  el sw original   y configuración,  pero si no quiere hacer todo ese trabajo,  todavía  hay algunas  posibilidades  que podemos explorar ;

 

PASOS PREVIOS

Antes de acudir a acciones  mas contundente   lo primero es actualizar  todos los controladores   y sobre todo hacer una análisis de todo el equipo con Windows Defender.

Asimismo vaciar la papelera de reciclaje o eliminar archivos temporales,puede ayudar ( incluso  hay personas que optan por probar a desactivar el archivo de paginación) .
Si el resultado no ha dado ningún cambio entonces siga los siguientes  pasos:

 

PASO 1: Monitorización de la actividad del disco

Un primer análisis  consistirá en   ir al administrador de  tareas ( control+alt +del )   y habilitar si no lo tiene el apartado de actividad de disco

Si padece de este problema, probablemente en el administrador es fácil   que incluso sin uso ,   el porcentaje de  uso del disco sea permanentemente del 100% , señal inequívoca que  nos explica que el porque de la demora sin duda se debe a una excesiva actividad en el disco principal

Cuando ejecute el administrador de tareas, puede que vea que algunos de estos ejecutables: System.exe, Antimalware Service Executable , Host  del servicio , o Telemetria  y experiencias de usuario conectado)   los cuales  aparentemente hacen este gran gasto de uso de  disco.
IMG_20170528_181300[1].jpg

Una vía  para solucionar sin duda sobre todo es  probar desactivar algunas de esas tareas que están generando esa actividad de disco anormal ( en el ejemplo podria ser  Telemetria  y experiencias de usuario conectado),   quitar  algunas tareas programadas etc,

 

Para deshabilitar  un servicio no critico como por ejemplo  el servicio “Telemetria  y experiencias de usuario conectado”, haga lo siguiente:

  1. Oprime las teclas “Windows” + “R” y en Ejecutar, escribe services.msc y haz clic en Aceptar.
  2. En la lista de servicios, haz clic con el botón secundario del ratón en Telemetria  y experiencias de usuario conectado y a continuación, haz clic en Propiedades.
  3. En la lista Tipo de inicio, selecciona Deshabilitado y después haz clic en Aplicar
  4. Seguido, en la pestaña de Recuperación y en las opciones de Primer, Segundo y siguientes errores, Selecciona No realizar ninguna acción.
  5. Luego, haz clic en Aplicar y por último en Reiniciar.

 

PASO 2:Desactivamos la Optimización programada

Si no hemos resuelto el problema en el paso anterior, seguiremos la siguiente secuencia:

  •   Panel de Control–>
  •          Sistema  y seguridad –>
  •                        Herramientas Administrativas –>
  •                                       Desfragmentar y optimizar unidades

Desactivamos la Optimización programada  de todas las unidades  pinchando en  la parte inferior   de Optimizacion Programada  y deschequeando  el check   “Ejecución programada(recomendado)”

Asimismo nos iremos a las unidades  y pincharemos en cada una en el apartado  “Optimizar”  no cerrando    la ventana de  Optimizar unidades hasta que no haya concluido el proceso para todas la unidades

disocs

En ese momento pude que crea haber solucionado el problema desactivando la optimización automática de su  mi disco por unas horas, hasta que nuevamente retome  el mismo problema, quizás  oscilando entre 98 – 100% e  impidiendo trabajar con  algo de fluidez, si es así puede pasar el siguiente paso .

PASO 3: Deshabilitar  Servicio de transferencia inteligente de segundo plano)

El  Servicio de transferencia inteligente en segundo plano (BITS) transfiere de forma asincrónica archivos que están en primer plano o en segundo plano, controlando el flujo de las transferencias para preservar la capacidad de respuesta de otras aplicaciones de red y reanuda automáticamente las transferencias de archivos si se interrumpe una sesión de transferencia, por ejemplo debido a la desconexión de la red o al reinicio del equipo.

BITS proporciona un nivel de prioridad de primer plano y tres niveles de prioridad de segundo plano que se utilizan para clasificar por orden de prioridad los trabajos de transferencia. Los trabajos con prioridad superior prevalecen sobre los trabajos con prioridad inferior. Los trabajos con el mismo nivel de prioridad comparten el período de transferencia, lo que evita que un trabajo grande bloquee los trabajos pequeños en la cola de transferencias. Los trabajos con prioridad inferior no reciben tiempo de transferencia hasta que todos los trabajos con prioridad superior se han completado o están en estado de error.

BITS utiliza BranchCache de Windows para el almacenamiento en caché del mismo nivel.

Como vemos es un servicio que ayuda al SO a mantenerlo actualizado, pero dado que esta trabajando en segundo plano haciendo un uso alto del disco del sistema podemos probar  de desactivarlo    y comprobar si mejora el rendimiento

Antes de empezar, tenga en cuenta que este servicio ayuda los procesos en segundo plano, por lo que el iniciar, apagar, reiniciar o alguna acción en su equipo, puede tardar un poco.

 

Para deshabilitar el servicio, haga lo siguiente:

  1. Oprima las teclas “Windows” + “R” y en Ejecutar, escribe services.msc y haz clic en Aceptar.
  2. En la lista de servicios, haz clic con el botón secundario del ratón en Servicio de transferencias inteligente en segundo plano (BITTS) y a continuación, haz clic en Propiedades.
  3. En la lista Tipo de inicio, selecciona Deshabilitado y después haz clic en Aplicar.Imagen
  4. Seguido, en la pestaña de Recuperación y en las opciones de Primer, Segundo y siguientes errores, Selecciona No realizar ninguna acción.
    Imagen
  5. Luego, haz clic en Aplicar y por último en Reiniciar.

Quite la selección del servicio (Servicio de transferencia inteligente de segundo plano) y le dan aceptar y luego a reiniciar mas tarde.

 

 

PASO 4: Optimizar unidades

Por ultimo seguiremos la siguiente secuencia:

  •   Panel de Control–>
  •          Sistema  y seguridad –>
  •                        Herramientas Administrativas –>
  •                                       Desfragmentar y optimizar unidades

En esta opción seleccionamos la partición donde esta instalado el sistema operativo en ( lo mas normal es que sea al Disco Local C) y   luego clic en optimizar

Este proceso desfragmentara y optimizara el sistema   durando aproximadamente 1 hora  o menos en función de su sistema  y del tamaño del disco

Una vez terminado el proceso reiniciar y debería  mejorar  el rendimiento del Disco considerablemente.

 

Si lo anterior no funciona es posible que una descarga e instalación de actualizaciones esté consumiendo el 100% del disco duro, lo cual podríamos resolverlo buscando desde Servicios ,es decir  :

  1. Oprima las teclas “Windows” + “R” y en Ejecutar, escribe services.msc y haz clic en Aceptar.
  2. En la lista de servicios, haz clic con el botón secundario del ratón en Windows Update y a continuación, haz clic en Propiedades.
  3. En la lista Tipo de inicio, selecciona Manual y después haz clic en Aplicar.
  4. Seguido, en la pestaña de Recuperación y en las opciones de Primer, Segundo y siguientes errores, Selecciona No realizar ninguna acción.

 

Este proceso  podemos hacerlo también con otros servicios como Windows Search  o Superftech para evitar que ocurran este tipo de problemas.

Por ultimo  buscando Windows Update en Cortana podemos ver si hay una descarga de actualización en proceso, además de seleccionar horas del ordenador en desuso para que las actualizaciones y reinicios no se produzcan mientras estemos trabajando con el ordenador.

Apps Android imprescindibles a bordo


Los nuevos tiempos cambian  y con ella  los instrumentos usados en la navegación sobre todo desde que la electrónica  irrumpió de forma intensiva .

Nos tenemos que remontar  hasta la  aparición de la normativa NMEA,la cual permitía concentrar  información dispersa  en una sola pantalla procedente de cada uno de los componentes de la electrónica de a bordo (corredera, equipo de viento, sonda, radar, posición),sin importar su fabricante o el modelo

Posteriormente la aparición de otros elementos como el AIS(Automatic Identification System),  GPS y plotters de alta definición nos han llevado a recurrir a nuevas herramientas y dispositivos para presentar toda la información de ayuda a la navegación a través de un PC   con programas aplicaciones de cartografía escaneada o vectorizada (como OziExplorer, Navionics o Tsunamis),  que nos mostraban gracias al estándar NMEA, toda la información que teníamos distribuida en los diversos dispositivos electrónicos instalados a bordo.

Actualmente la mayoría de los navegantes han pasado del papel a las cartas leídas en el ordenador (y ,del compás al ratón, y de la corredera al GPS) , pero aun  toca  asimilar el siguiente paso :integrar todas las herramientas de ayuda a la navegación en nuestros dispositivos móviles .

 Hoy en día los sistemas de geolocalización  ayudados de una conexión a  internet han revolucionado el transporte , de modo que  con un smartphone o  tableta podemos tener a nuestro alcance, en un multi-dispositivos  a muy bajo coste, toda la información que hace unos años sólo podíamos obtener usando electrónica bastante  compleja  y costosa de modo  que con la evolución y desarrollo de las tabletas Android, las necesidades de electrónica y su utilidad en las embarcaciones ha supuesto un cambio en cuanto a los hábitos de muchos navegantes, ganando cada vez más importancia la tableta como el elemento principal para contener la información que se necesita para la navegación,

Entre las aplicaciones náuticas del mercado que vamos a ver  algunas requieren una conexión a Internet, pero muchas otras ofrecen la opción de trabajar sin cobertura, usando  señales de posicionamiento GPS o de los sensores internos (acelerómetro o brújula)

 

Veamos una muestra de algunas de las aplicaciones mas usadas :

Seguridad

 La app gratuita de Salvamento Marítimo también es indispensable entre las aplicaciones náuticas.

Salvamento Marítimo. Con esta aplicación móvil obtenemos información y orientación sobre cuestiones relacionadas con la seguridad náutica. Por ejemplo, nos ofrece la posibilidad de realizar una serie de controles para ver si estamos cumpliendo con los puntos de seguridad que necesitamos cumplir antes de salir a navegar. Desde consejos y todo tipo de información para navegantes, hasta listados para controlar los puntos esenciales de seguridad antes de la navegación.

Esta  aplicación  permite a los navegantes de recreo que Salvamento Marítimo monitorice su travesía y que de la alarma en caso de no cumplir con el plan de navegación establecido.

El 50% de las incidencias que atiende Salvamento Marítimo, son de embarcaciones de recreo.

SafeTrx es una aplicación para Smartphone, tanto para dispositivos Android como Apple iOS (iPhone, iPad), que monitoriza los viajes de su embarcación, avisa a los contactos designados por el usuario cuando hay retrasos en el viaje planificado y ofrece una página web para que Salvamento Marítimo pueda consultar con rapidez la derrota realizada por la embarcación y tomar las acciones oportunas.

Esta aplicación complementa al Sistema Mundial de Socorro y Seguridad Marítima.
Web: http://boletinpatron.com/index.php/safetrx-app-salvamento-maritimo/

 

Aplicaciones de AIS

En los últimos años hemos visto cómo han aparecido algunas aplicaciones que nos ayudan a identificar las embarcaciones. Se trata de aplicaciones que usan el AIS (Automatic Identification System). Gracias a este sistema podremos conocer la identidad, el rumbo, la posición y más datos sobre aquellas embarcaciones que estén situadas en la zona próxima a la que nos encontramos nosotros.

Habitualmente esto se había realizado a través de sistemas de radio VHF, pero actualmente gracias a una conexión a internet se puede reemplazar su cometido con  aplicaciones como MarineTrafic,

  • mAIS marine Traffic Ship Position Reporting: Esta App basada en Google Maps,  nos permiten enviar y visualizar información a tiempo real de la señal AIS. Para ello tan solo necesitamos tener acceso a una conexión de internet y gracias al  soporte de Google Maps,  pueden visualizarse los barcos en cualquier lugar del mundo. Para emitir la señal es preciso tener una conexión a Internet, esta emisión de señal hay que pararla al llegar a tierra.
  • Ship Finder – Live vessel tracking: Con esta App también puede obtenerse la información sobre todas las embarcaciones situadas en la zona seleccionada. Hay una versión gratuita y otra más completa de pago.

 

Aplicaciones náuticas meteorológicas

Todos los navegantes están pendientes de la previsión meteorológica. Hoy en día tenemos acceso a datos a tiempo real sobre la evolución de los indicadores básicos en meteorología, así como a los pronósticos. En el universo de las aplicaciones encontramos una gran cantidad de herramientas que nos ayudarán a conocer las condiciones de viento y previsión de lluvia con gran lujo de detalles.

  • WeatherPRO HD es una aplicación realizada por Meteogrup que ofrece un pronóstico a una semana vista, en intervalos de tres horas, en más de dos millones de lugares, con radar en tiempo real e imágenes por satélite. Existen diversas versiones, libres y de pago. En función de lo que queramos pagar, obtendremos un tipo de información u otra.
  •  WinFinderPRO  Para los aficionados a los deportes de vela es una aplicación fundamental. Viento, olas y predicción meteorológica son los principales reclamos de esta app. Su uso es bastante parecido a la WeatherPRO, con la posibilidad de tener nuestra lista de favoritos. Tiene una versión gratuita, pero la versión PRO es muy econmica (1,79€)
  • PocketGrib: Esta app hace posible visualizar todos los datos meteorológicos en una previsión de hasta ocho días, con un elevado nivel de acierto en las previsiones de viento.Basada en su hermano mayor diseñado para PC, uGRib (www.grib.us)  permite ver todos los datos meteorológicos con una previsión de hasta ocho días. Seleccionamos directamente en la pantalla la zona sobre la que queremos obtener la previsión, y nos muestra de forma gráfica las previsiones de viento con una alta precisión y un alto grado de acierto.Coste de unos 6€
  • WindGuru: Se trata de una aplicación muy conocida para los navegantes entre las aplicaciones náuticas, que nos muestra de forma gráfica y muy rápida las previsiones de viento y temperatura en la zona que seleccionemos, con un alto grado de fiabilidad. Coste :gratuito
  • Eltiempo.es: La conocida página de internet de Jose Antonio Maldonado tiene su APP, con una visualización panorámica, hora a hora, de vientos, oleajes y temperaturas en la zona de navegación que se seleccione, con unos datos gráficos de gran exactitud.
  • Rain Alarm: Mediante esta APP, pueden recibirse los avisos correspondientes mediante alertas, de aquellas lluvias que se acercan, con imágenes animadas sobre la meteorología a nivel mundial.

Aplicaciones náuticas de geolocalización

  • Boating, aplicación de Navionics, es la app náutica de cartografía más vendida en el mundo, y ofrece todas las posibilidades de planificar rutas con facilidad y comodidad, y en compatibilidad con Google Earth y otras aplicaciones de meteorología. Existe una versión HD con más funciones. Se puede usar sin conexión a internet, si previamente a descargado las cartas. Esta  versiones es gratuita

 

 

  • Navionics HD: Navionics es el software de cartografía más demandado y vendido en todo el mundo. Ha tenido una gran evolución desde su origen, permitiendo utilizar la tableta como un auténtico ploter, con las ventajas de poder moverlo por todo el barco e incluso planificar rutas o ver la información desde cualquier sitio. La versión HD tiene una precisión impresionante y se integra con Google Earth y con ficheros Grib de meteorología, además de información en tiempo real de servicios cercanos a nuestra ubicación (marinas, mecánicos, restaurantes…). Su uso es muy sencillo y no requiere nada más que instalar la App y comenzar a navegar. Puede trabajar sin conexión a internet, cargando previamente las cartas.

    Con la compra inicial de la licencia(50€) , el usuario tiene derecho a actualizar continuamente las versiones del programa y las cartas náuticas.

  • Google Earth: La aplicación del gigante de las búsquedas en Internet no puede faltar. Con toda precisión se puede visualizar la ruta a seguir, así como fotos precisas del lugar. Algunas de las demás App se integran con Google earth. No puede faltar.

  • Gabenative es otra aplicación náutica que muchos aficionados a la navegación suelen tener instalada, y es realmente útil para ayudarnos a situar en el medio del mar.

Instrumentación 

 

  • Polaris Navegación GPS Convierte un teléfono en un potente sistema de navegación GPS de uso general con Polaris Navigation GPS. Utilizado principalmente como una aplicación de GPS de náutica y rastro, Polaris es un excelente respaldo o reemplazo para su Garmin u otra unidad GPS portátil de navegación por satélite!polarid.png
  •  Antigarreo, una herramienta para ayudarnos en el fondeo,una de las variables que más influye en la serenidad del barco es el garreo. Con esta aplicación, el navegante recibirá las alertas necesarias para que la embarcación no salga de su espacio de borneo.
  • Bearing Pilot: Se trata de una aplicación para evitar las demoras en la navegación, prever rumbos y eliminar el riesgo de colisiones, cálculos de rumbos de viento, mantenimiento de la dirección, etc. Una nueva herramienta dirigida tanto a navegantes principiantes como a los más profesionales, su extremada sencillez nos permitirá tomar marcaciones de forma rápida, mostrándonos en su interfaz gráfica la dirección de la demora que hemos tomado, el ángulo respecto a nuestro rumbo y también nos indicará hacia que banda debemos caer para poner proa a dicha demora.Tiene un coste de 7€mar.png
  • Vaavud: Este app usa un dispositivo de plástico  resistente al agua, polvo y a la arena. Se conecta al jack de sonido para medir la velocidad del viento de una forma precisa en todas las direcciones, promedios, velocidades actuales, etc. Vaavud se compra por internet directamente en la página del fabricante (vaavud.com) por unos 40€. Permite medir de forma muy precisa y fiable la velocidad del viento en cualquier dirección, convirtiendo nuestro dispositivo iPhone o Android en una pequeña estación meteorológica.Además, utilizando la App gratuita de Vaavud, podemos ver las mediciones de la velocidad del viento de otros usuarios registrados en otras ubicaciones.El dispositivo puede medir con precisión la velocidad del viento en un rango de 1 m/s hasta 25 m/s, y ha sido probado y calibrado profesionalmente en un túnel de viento en la Universidad Técnica de Dinamarca.
  • NMEA Remote:  Esta App funciona a través de un módem wifi puerto serie que hay que instalar previamente, y actúa como un repetidor de datos de la embarcación.

 

Otras aplicaciones 

  •  Marinus Ripa: Marinus Ripa aporta el Reglamento Internacional de Prevención de Abordajes, una actualización permanente, y toda la información básica de seguridad que un buen navegante debe conocer. Además, se puede obtener también una versión en iBook para iPad en formato libro de alta definición.
  • MoonPreview: Con esta app es posible conocer el ciclo lunar y el estado de la luna la noche que está planificado el fondeo de la embarcación. Ideal para viajes de recreo y contemplación de la cúpula celeste.
  • Useful knots:  Para cada necesidad hay una variedad de nudo distinta. Esta App nos enseña y recuerda, paso a paso, la correcta forma de realizar hasta cien nudos diferentes, según sus tipos y utilidades. Hay una versión de pago, con alta definición, pero también otra gratuita.

 

Sin duda existen un numero enorme de apps imposibles en numerar en este post,pero si hay alguna app para la plataforma Android que sea interesante y no este en este post nos gustaría compartirla con el resto de la comunidad de soloelectronicos.

 

Como descargar trascripciones de videos de youtube


En YouTube puede encontrar todo tipo de vídeos como películas, series, tutoriales, vídeos musicales, etc donde algunos  tienen subtítulos incrustados que forman parte del mismo vídeo, mientras que otros tienen subtítulos están separados del mismo.

Los subtítulos incrustados no pueden ser descargados de forma directa , pero puede utilizar un servicio en línea, como, para descargar los subtítulos que no están incrustados.

 

En realidad  descargar los subtítulos no incrustados de un vídeo de YouTube con servicos web es muy sencillo

  1. Copie la url del enlace del vídeo de YouTube,
  2. Entre en  http://www.lilsubs.com/                                                                                      
  3. Pegue la URL en el campo correspondiente.
  4. Haga clic en Download y seleccione el idioma en que quiera descargar los subtítulos
  5. Elija la carpeta donde desee almacenar el archivo SRT y haga clic en Guardar.

 

Los archivos srt son ficheros de texto que contienen los subtítulos asociados a un video. Utilizan el formato subrip, en el que se almacena esta información:

  •  Intervalo de tiempo en el que aparece
  • Texto del subtítulo

Al tratarse de archivos de texto hay que tener en cuenta su codificación, que en muchos casos el reproductor no escoge la correcta. Seleccionando la que se ajuste a nuestro idioma se pueden evitar problemas con acentos y símbolos.

• 00:01:02,383 –> 00:01:05,133
• “Campos de Opio, Tíbet”
• 2
• 00:02:21,960 –> 00:02:25,735
• Tú y tus hermanos habéis asesinado a 3 de nuestros hombres.
• 3
• 00:02:25,800 –> 00:02:27,327

 

Es obvio que al ser ficheros de texto podemos manipularlos  eliminando  por ejemplo  todas las cifras   y luego  juntando los textos, pero esto conlleva mucho tiempo  de trabajo que en realidad como vamos a ver  podemos automatizar

A continuación vamos a ver tres herramientas para  gestionar  estos archivos de una forma mas sencillas:

 

 

Usar  una app para convertir un archivo .srt en texto limpio 

Subtitle Edit es una de  las mejores opciones pues vale para todos los archivos y respeta los números.

 

Los  pasos para su uso son muy sencillos

  • Descargue Subtitle Edit
  • Abra un archivo .srt.
  • Pinche en la pestaña ‘Source view’,
  • Vaya al desplegable ‘Format’ escoja ‘Scenarist’ (.txt).

 

  • Así ordenamos por columnas separadas los tiempos y textos. Ahora dale a ‘File > Save as…’ para guardar el archivo .txt.

 

  • Abra el archivo .txt,
  • Copia todo el contenido y péguelo en Excel. Como verás tendrá varias columnas, elimina las primeras (referentes a los tiempos) para quedarse sólo con el contenido.

 

  • Copie el contenido y pégelo en la barra de búsqueda de un navegador para que se ponga el texto de corrido. Cópialo de nuevo y pégalo en un documento para comprobar que está bien.

 

Convertir un archivo .srt en texto limpio directamente con Excel

Este metodo  funciona cuando sólo hay una línea de diálogo por separado.

Puede abrir el .srt con el Bloc de notas, copiar el contenido y pegarlo en Excel, eliminando las filas de información numérica para seleccionarlo todo y pegarlo en un documento aunque es más fácil si  descarga Asap Utilities.

Seleccione las celdas, pinche en este plugin cuando lo instale y dale a ‘Columnas y filas > Selección condicional de fila y columna…’.

En ‘4. Opciones de búsqueda’ elija ‘par filas’ y dele a ‘Aceptar’ para eliminar las filas de los tiempos.

El Excel se quedará como el que se muestra aquí. Selecciona ahora ‘impar filas’ para quitar los números.

Cuando lo haga, dele a ‘Cerrar’. Tendrá ahora sólo el texto pero con muchos saltos de línea. Cópielos y péguelos en la barra de búsqueda de un navegador para que se ponga seguido.

Cópielo de nuevo y péguelo en un documento para comprobar que está bien.

Convertir un archivo .srt en texto limpio con Word

Este método tiene el inconveniente de que se borrarán los números, pero  vale para cualquier .srt.

Abra el archivo captions.srt con Word (o si no te funciona con el Bloc de notas y copies el texto) y deje el puntero al principio del texto.

Vaya a ‘Inicio > Reemplazar’ (o presiona ‘CTRL+B’) y en el desplegable de la lupa escoge ‘Reemplazar’.

Escriba el número 0 en el campo ‘Buscar’, deje vacío el campo ‘Reemplazar’ y presione ‘Remplazar todos’. Luego el número 1 y así hasta el 9. Esto eliminará todos los números.

Copie los símbolos que queden (por ejemplo ::, –> ::,) en ‘Buscar’, deje vacío el campo ‘Reemplazar’ y presione ‘Remplazar todos’. Con esto tendremos sólo letras.

Escriba ^p en ‘Buscar’, deje un espacio en blanco en el campo ‘Reemplazar’ y presione ‘Remplazar todos’. Así sustituirnos los saltos de línea y el texto quedará de corrido.

Si quedan espacios en blanco sustituirlos, copiándolos en ‘Buscar’ y dejando sólo un espacio en ‘Reemplazar’.