Backup automatico gratuito de fotos y videos para su smartphone


En efecto todas aquellas personas que tengan contratado Movistar Fusión y tarifa de contrato 20 Plus pueden usar sin coste adicional de almacenamiento ilimitado  la nube de Movistar Cloud, un servicio de almacenamiento en la nube que permite  guardar seguros todos sus contenidos generados desde su smartphone ( foto, videos,audios , etc )   gracias  a la app  Movistar Cloud disponible tanto para IoS ,como para Android o para pc.

 En caso de no cumplir esas condiciones , la tarifa  es  3€ al mes, pero tenemos que tener en cuenta de que no hay  limite en cuanto al tamaño máximo  disponible.

Por cierto,  no solo es posible visualizar sus contenidos de otras nubes desde la misma aplicación,  sino que también se pueden salvaguardar estos  contenidos también  en  Movistar Cloud ( por ejemplo fotos, audios   y  vídeos de whtasapp o incluso contenidos de gmail)

https://youtu.be/0xpvdFtiurc?list=PLiM4HTmcqpD1Mnq7YgLheEGgeG2rUAnwS

En efecto, gracias  al servicio de Movistar Cloud  podemos salvaguardar todos los contenidos  que generamos en nuestro smartphone ( tanto propios como los del correo o incluso los de redes sociales como Whatsapp ) en un espacio ilimitado sin peligro de perder la información, y lo que mas importante : con criterios muy fuertes de seguridad gracias a  un  alto nivel de encriptación , libres de virus y   mobile connect para las validaciones de usuarios .

La capacidad de almacenamiento ilimitado se suscribe bajo un modelo de suscripción mensual, el cual se renueva automáticamente mes a mes. Como comentábamos ,dependiendo del tipo de contrato que se tenga con Movistar podrá optar al servicio de manera gratuita o pagando una cuota por mes natural.

Estas son todas las posibilidades ;

  • Si el contrato es Fusión o Contrato 20 Plus, tanto si es una línea adicional o no, puede acceder sin ningún coste adicional a Movistar Cloud Ilimitado. Con las tarifas #15 y #25 también es gratuito.
  • Si su tarifa de móvil es Contrato 2, Contrato 5 o Contrato 5 Plus o  otras puedes contratar Movistar Cloud Ilimitado con un coste adicional de 3€/mes por cada línea móvil con el que lo contrates.
  •  Si su tarifa es de Prepago no podrá disfrutar de Movistar Cloud.

Y estos son los requisitos e incompatibilidades:

  • Tener una línea móvil con Movistar, aunque solo podrá disfrutar de una cuenta de Movistar Cloud por cada línea móvil que tenga.Pueden disfrutar de Movistar Cloud todas las líneas de su Fusión o tarifas.
  • Que la línea móvil sea de contrato, no de tarjeta.
  • Si tiene un contrato Fusión podrá acceder a tantas cuentas de Movistar Cloud como líneas moviles tenga  y con salvaguarda de contenido  diferenciado y separado  para que cada miembro de la familia mantenga su privacidad .
  • No hay compromisos de permanencia de modo que se puede solicitar la baja cuando desees, sin penalización en tu factura .!Ojo! , una vez se ejecute la baja se disponen de 20 días para descarga todos los contenidos desde la aplicación web en https://micloud.movistar.es.. Después sí, los contenidos se perderán definitivamente. )

Si se cumplen estos requisitos se puede acceder  al cloud de Movistar con almacenamiento ilimitado ( donde puede guardar sus contenidos en la nube y acceder a ellos desde cualquier dispositivo en cualquier lugar)  simplemente  instalando la app  e   ingresando el numero del móvil asociado al contrato y siguiendo los  pasos que  vamos a   ver a continuación 

Acceso vía  samartphone

La vía natural   de acceder a Movistar Cloud es desde un smartphone o tablet con sistema operativo Android (4.x y superior), iOS (6.x, 7.x, 8.x y superior).

Para disfrutar de Movistar Cloud en un smartphone y/o tablet, tenemos que descargar la aplicación de Movistar Cloud a través de la app store correspondiente:

El aspecto del interfaz , como vemos mas abajo, es muy simular al ofrecido por el que podemos ver en la web( https://micloud.movistar.es/ui/jsp/login.jsp)  , pero lo mas destacado es la  facilidad genial para permitirnos hacer un backup  y posterior borrado  ( si lo deseamos )  de todo el contenido del terminal  sobre la nube  usando una conexión wifi, poniendo a salvo  a si   nuestros preciados datos.

Como podremos  ver el manejo del  interfaz es  fácil e intuitivo      permitiendo enviar y compartir compartir fotos, vídeos o documentos por email, whatsapp o redes sociales sirviendo ademas para visualizar sus fotos y vídeos de las cuentas de Facebook o Instagram, archivos de Dropbox o incluso archivos anexados a sus emails de Gmail de manera inmediata.

Es de destacar   que no solo permite hacer un backup de nuestros contenidos  en la nube  : también permite una vez comprobado que esos contenidos estan salvados   borrarlos del smartphone liberando así un preciado espacio de almacenamiento ( ideal sobretodo si tenemos un dispositivo con pocos recursos y necesitamos liberarlo y no almacenar tantas cosas)

Por cierto,  si tiene problemas , ponen a nuestra disposición un email de contacto para posibles problemas :[email protected], ( hay que indicar nombre y apellidos titular, NIF, nº de línea móvil, modelo dispositivo, versión de sistema operativo y un breve resumen de lo que ocurre).

 

Acceso desde la web

Veamos ahora  los pasos para configurar nuestra cuenta de Movistar Cloud suponiendo que cumplamos todos los requisitos anteriormente comentados:

  1. Accedemos al web de movistar cloud https://micloud.movistar.es/
  2. Pinchamos en Iniciar Sesión
  3. Ahora introducimos el numero móvil asociado al contrato fusión
  4. Muy importante : introducir en el apartado anterior el numero móvil : (NO  el numero fijo )
  5. Ahora en el móvil aceptaremos la conexión con mobile connect
  6. Aceptaremos en el móvil  el acceso para permitir el acceso mediante Mobile connect  .Recibiremos un SMS de confirmación en caso de demorar la validación desde el propio móvil ( por ejemplo si no tenemos instalado mobile connect o la app de Movistar Cloud) 
  7. En caso de primer acceso  desde la pagina donde accedimos nos pedirían un e-mail que nos servirá para el login de acceso  y estaria activado! desde la web de modo que nos volveríamos a ir a la pagina https://micloud.movistar.es/
  8. En caso afirmativo ya podremos disfrutar del servicio Movistar  Cloud desde un navegador

Desde el interfaz  web hay opciones muy interesantes:

  • Realizar un acopia de seguridad  de fotos  y videos que tengamos en nuestro equipo
  • Organizar las fotos en Albunes
  • Ver todo nuestro contenido de  diferentes fuentes  desde un único sitio  usando una linea del tiempo 
  • Eliminar contenido
  • Compartir contenido con familiares  o amigos
  • Buscar contenido
  • Seleccionar  las conexiones  con facebook, Dropbox, Gmail  o Instagram
  • Comprobar el espacio eliminado  y eliminarlo ( Mi plan de Movsitar Cloud->Almacenamiento total)
  • Comprobar los dispositivos con accesos y quitarles el acceso si no procede
  • Descargar la app para ordenador
  • Ver los datos del perfil
  • ETC.

 

 

Los requisitos del ordenador son Windows 7 o superior para pc’s o Mac OS IX o superior y en cuanto a navegadores Mozilla Firefox v25 o posterior, Google Chrome v31 o posterior, o Internet Explorer v9 o posterior.

 

 

Aplicación para ordenador

También se puede instalar la aplicación Movistar Cloud en un  ordenador . Un avez instalada se  puede acceder a ella desde la barra de tareas si su ordenador es un PC o desde el Dock si su ordenador es un Mac y podemos  guardar en su Cloud tus fotos favoritas, videos, música y cualquier otro tipo de archivo así como tus contactos y calendarios de Microsoft Outlook y sincronizarlo con otros dispositivos.

Desde la  app podemos mover a la carpeta Movistar Cloud de su ordenador los archivos (imágenes, vídeos, canciones, y documentos de cualquier tipo) que nosgustaría añadir a su cuenta de Movistar Cloud (su Cloud) y podrá acceder a ellos desde el portal o desde cualquier otro dispositivo conectado a tu Cloud.

Los archivos procedentes de su Cloud (cargados a través del portal o de otros dispositivos) se auto-descargan en la misma carpeta si seleccionas «Contenidos móviles y web» en la opción «Cambiar Preferencias» de la aplicación Movistar Cloud para PC.

En esta aplicación también puede configurar Movistar Cloud para que guarde determinadas carpetas de su ordenador: así cualquier cambio de archivos de esas carpetas se reflejará automáticamente en su Cloud.

Si selecciona la opción de sincronización de contactos y calendario dentro de las preferencias de la aplicación para PC, sus datos de Outlook también se guardarán y estarán disponibles en el portal y en todos sus dispositivos  de modo que cualquier cambio en un sitio se reflejaría automáticamente en los demás dispositivos.

Por cierto la  app ,  la podemos descargar una vez estemos validados  en un navegador desde la propia pestaña de nuestro perfil desde la barra izquierda en Descargar App  o bien pinchando en nuestro usuario  y yendo al apartado de Mis dispositivos  pulsando en Descargar par PC

 

Interaccionar con FireBase desde Arduino


Como  podemos ver en este blog en numerosas  entradas que hablamos de dispositivos de IoT, es  relativamente sencillo construir nuestros  propios dispositivos de IoT con algunos sensores y microcontroladores  como Arduino, NodeMCU, Raspberry  Pi, etcétera , lo cual le permitirán automatizar su hogar apoyándose en estos dispositivos como por ejemplo usando el servicio de Cayenne .

De hecho ,como ejemplo de lo  sencillo  y económico  que puede ser  la construcción de dispositivos   IoT desde un punto de vista más empírico , lo ideal es usar un o NodeMCU ESP-12E para   acceder a Firebase  

 

 NodeMCU ESP-12E  es muy barato (unos 6€)   ,  y al tener  wifi incorporado para conectarse a internet,  ya tenemos los elementos suficientes  para conectarnos a  bases de datos avanzada  en l anube como puede ser Firevase y   gracias a un hardware tan eficiente  (y por supuesto los servicios cloud de Firebase).

Precisamente  FirebaseArduino (abstracción completa de la API REST de Firebase expuesta a través de las llamadas de C ++ de una manera amigable con el cableado.)   es una biblioteca muy útil usada   para simplificar la conexión a la base de datos Firebase desde cualquier cliente Arduino .Esta biblioteca  como podemos imaginar  se encarga de todo el análisis de Json y puede realizar transacciones en tipos C / Arduino puros.

En un post anterior «Primeros pasos con NodeMCU y Firebase»  ya vimos un sencillo ejemplo de como ambos componentes pueden funcionar, Veamos a  a continuación  que podemos hacer c muchas mas cosas con esta famosa librería

 

class FirebaseArduino

Esta es la clase principal para que los clientes de Arduino interactúen con Firebase. Como es habitual con arduino  para referenciarla  y poderla usar necesitamos  introducir  esta libreria con un include  al principio del programa , como por ejemplo

 #include <FirebaseArduino.h>»

Esta implementación está diseñada para seguir las mejores prácticas de Arduino y favorecer la simplicidad sobre todo lo demás. Para casos de uso más complicados y más control, podemos usar la clase Firebase en Firebase.h.

Esta libreria debe ser llamada primero con void begin ( const String y host , const String y auth = «» )  , lo cual inicializa el cliente con el host y las credenciales de base de fuego dados.

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);  //intentamos conectarnos a la base de datos Firebase con nuestras credenciales

Los parámetros son :

  • host : es decir el  host de base de datos de base de datos de Fierbase , normalmente X.firebaseio.com.
  • auth : credenciales  para la db  que pueden ser  una palabra  secreta o token.

 

Lo más sencillo  precisamente para pasar las credenciales de Firebase   a esta clase es usando  variables que  definiremos al principio del programa:

  • FIREBASE_HOST “xxxxxxxxxxxxxxx.firebaseio.com”
  • FIREBASE_AUTH “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”

 

Veamos algunas funciones que podemos usar con esta clase:  pushInt,pushFloat, pushBool,pushString,push,setInt, setFloat,setBool,setString,set ,getInt, getFloat,getBool,getString,get,   las relacionadas con Firebaseobject(get,readevent)  .   asi como remove,stream, available,read ,success, failed,error

 

 

String pushInt ( const String & path , int value )

Anexa el valor entero al nodo en la ruta.Equivalente al POST de la API REST. Debe comprobar  success()  después de llamar. Devuelve la clave única del nuevo nodo hijo.

Los parámetros que usa:

  • path : La ruta del nodo padre.
  • value : valor entero que desea agregar al nodo.

 

String pushFloat(const String &path, float value)

Esta función anexa el valor flotante al nodo en la ruta.  Es equivalente al POST de la API REST. Debe comprobar   success()   después de llamar. Devuelve la clave única del nuevo nodo hijo.

Los parámetros que usa:

  • path : La ruta del nodo padre.
  • value : valor flotante que desea agregar al nodo.

String pushBool(const String &path, bool value)

Esta función anexa el valor booleano al nodo en la ruta.  Es equivalente al POST de la API REST. Debe comprobar el resultado de salida con  success()  después de llamar a a funcion . Devuelve la clave única del nuevo nodo hijo.

Los parámetros que usa:

  • path : La ruta del nodo padre.
  • value : valor Booleano que desea agregar al nodo.

String pushString(const String &pathconst String &value)

Esta función anexa el valor de cadena al nodo en la ruta.Es equivalente al POST de la API REST. Debe comprobar el resultado de salida con  success()  después de llamar a a funcion. Devuelve la clave única del nuevo nodo hijo.

Los parámetros que usa:

  • path : La ruta del nodo padre.
  • value : valor de la  cadena que desea agregar al nodo.

 

String push(const String &pathconst JsonVariant &value)

Esta función anexa los datos JSON al nodo en la ruta.Equivalente al POST de la API REST.   Devuelve la clave única del nuevo nodo hijo.

Parámetros

  • path : La ruta del nodo padre.
  • value : los datos JSON que desea agregar al nodo.

 

void setInt(const String &path, int value)

Escribe el valor entero en el nodo ubicado en la ruta equivalente al PUT de la API REST. Debe comprobar el resultado de salida con  success()  después de llamar a a función

Parámetros que usa

  • path : la ruta dentro de su base de datos al nodo que desea actualizar.
  • value : valor entero que desea escribir.

void setFloat(const String &path, float value

Escribe un  valor en coma flotante en el nodo ubicado en la ruta equivalente al PUT de la API REST.Debe comprobar el resultado de salida con  success()  después de llamar a a función

Parámetros necesarios:

  • path : la ruta dentro de su base de datos al nodo que desea actualizar.
  • value : el valor flotante que desea escribir.

void setBool(const String &path, bool value)

Escribe el valor booleano  en el nodo ubicado en la ruta equivalente al PUT de la API REST.  Debe comprobar el resultado de salida con  success()  después de llamar a a función  

Parámetros que usa

  • path : la ruta dentro de su base de datos al nodo que desea actualizar.
  • value :  valor booleano  que desea escribir.

void setString(const String &pathconst String &value)

Escribe el valor de la cadena en el nodo ubicado en la ruta equivalente a la PUT de la API REST. Debe comprobar el resultado de salida con  success()  después de llamar a a función

Parámetros que requiere:

  • path : la ruta dentro de su base de datos al nodo que desea actualizar.
  • value : valor de la cadena que desea escribir.

 

void set(const String &pathconst JsonVariant &value)

Escribe los datos JSON en el nodo ubicado en la ruta.  Equivalente al PUT de la API REST.  Debe comprobar el resultado de salida con  success()  después de llamar a a función

Parámetros necesarios:

  • path : la ruta dentro de su base de datos al nodo que desea actualizar.
  • value : datos JSON que desea escribir.

 

int getInt(const String &path)

Obtiene el valor entero ubicado en la ruta. Debe comprobar el resultado de salida con  success()  después de llamar a a función   Devuelve el valor entero ubicado en esa ruta. Solo será poblado si  success()   es verdadero. Requiere un único  parámetro path : la ruta al nodo que desea recuperar.

 

float getFloat(const String &path)

Obtiene el valor flotante ubicado en la ruta. Debe comprobar el resultado de salida con  success()  después de llamar a a función. Devuelve  un valor flotante ubicado en ese camino. Solo será poblado si un success()  ) es verdadero.

Requiere un único  parámetropath : la ruta al nodo que desea recuperar.

 

String getString(const String &path)

Obtiene el valor de cadena ubicado en la ruta.Debe comprobar el resultado de salida con  success()  después de llamar a a función.   Devuelve el valor de cadena ubicado en esa ruta. Solo será poblado si el   success()   es verdadero.

Requiere un único  parámetropath : la ruta al nodo que desea recuperar.

 

bool getBool(const String &path)

Obtiene el valor booleano ubicado en la ruta.Debe comprobar el resultado de salida con  success()  después de llamar a a función. Devuelve el  valor booleano ubicado en esa ruta. Solo será poblado si el éxito () es verdadero. Requiere un único  parámetro  path : la ruta al nodo que desea recuperar.

Es muy usado para  activar o desactivar un  nivel  lógico  en los pines binarios  en la placa ,por ejemplo para activar una salida a nivel alto  o bajo 

Ejemplo

      bool isLedOn = Firebase.getBool(“led”); // recuperamos el valor del objeto led de la sesión firebase

 

 

FirebaseObjectget(const String &path)

Obtiene el valor del objeto json ubicado en la ruta.Debe comprobar el resultado de salida con  success()  después de llamar a a función. Devuelve el valor FirebaseObject ubicado en esa ruta. Solo será poblado si el éxito () es verdadero.Requiere un único  parámetro path : la ruta al nodo que desea recuperar.

FirebaseObjectreadEvent()

Lee el siguiente evento en una stream ( secuencia).Esto solo tiene sentido una vez que se ha llamado a  stream() 

A la salida FirebaseObject tendrá [«type»] que describe el tipo de evento, [«path»] que describe la ruta efectuada y [«data»] que se actualizaron.

 

 

 

void remove(const String &path)

Elimina el nodo, y posiblemente el árbol completo, ubicado en la ruta.Debe comprobar el resultado de salida con  success()  después de llamar a a funcion.Requiere un único  parámetro path : la ruta al nodo que desea eliminar, incluidos todos sus hijos.

void stream(const String &path)

Inicia la transmisión de los cambios realizados en el nodo ubicado en la ruta, incluido cualquiera de sus elementos secundarios.

Debe comprobar el resultado de salida con  success()  después de llamar a a funcion Esto cambia el estado de este objeto. Una vez que se llama a esto, puede comenzar a monitorear available () y llamar a readEvent () para obtener nuevos eventos.

Requiere un único  parámetro path : la ruta dentro de su db al nodo que desea monitorear.

bool available()

Comprueba si hay nuevos eventos disponibles.Esto solo tiene sentido una vez que se ha llamado a  stream()  .Devuelve si un nuevo evento está listo.

bool success ( ) 

Devuelve   si el último comando fue exitoso.

bool failed ( ) 

Devuelve si el último comando falló.

 

const String &error()

 Devuelve el  mensaje de error del último comando si  failed() es verdadero.

 

 

 

 

 

class FirebaseObject

 

Representa el valor almacenado en Firebase , puede ser un valor singular (nodo de tipo leaf) o una estructura de árbol.

Las  funciones publicas  definidas para esa clase son las siguientes:

 

FirebaseObject ( const char * data ) 

Construir a partir de json.  Requiere un único  parámetro data : cadena formateada JSON.

 

bool getBool ( const String & path = «» ) const

Devuelve el valor como un booleano. .Requiere un único  parámetro optional : ruta en el objeto JSON.

 

int getInt ( const String & path = «» ) const

 Devuelve el  resultado como un entero.Requiere un único  parámetro optional : ruta en el objeto JSON.

 

float getFloat ( const String & path = «» ) const

Devuelve el valor como un flotador..Requiere un único  parámetro optional : ruta en el objeto JSON.

 

String getString ( const String & path = «» ) const

Devuelve el valor como una cadena.Requiere un único  parámetro optional : ruta en el objeto JSON.

 

JsonVariant getJsonVariant ( const String & path = «» ) const

Devuelve el valor como JsonVariant.Requiere un único  parámetro optional : ruta en el objeto JSON.

bool success ( ) const

Devuelve si hubo un error en la descodificación o el acceso al objeto JSON.bool 

 

failed ( ) const

Devuelve si  hubo un error en la descodificación o el acceso al objeto JSON.const 

 

String & error ( ) const

 Devuelve un mensaje de error si  failed()  es verdadero.

 

 

Mas informacion en  https://firebase-arduino.readthedocs.io/en/latest/