top of page
Writer's pictureemdertilothuntadod

Leer datos JSON desde App Inventor: Guía práctica y ejemplos



hi,i developed the app through mit app inventor.i created datastream in data sparkfun.com.using phant server i have to connect my android app to hardware part.but i am not getting how to parse json file values from web server.please suggest me.




Leer datos JSON desde App Inventor




Es muy habitual en la actualidad, y lo continuará siendo cada día más, que los sistemas de información trabajen con datos que se almacenan en servidores remotos a los que se accede a través de Internet, lo que se conoce como trabajar con datos en la nube. Estos datos son accesibles a través de peticiones web dirigidas a cierta URL de gestión, lo que permite obtenerlos al instante desde cualquier parte del mundo. El conjunto de peticiones para la gestión de los datos, su sintaxis y su semántica se conoce como una API (Application Programming Interface). Por supuesto, el uso de esta API no debe comprometer la seguridad de los datos ni la de su alojamiento, por lo que será necesario habitualmente un proceso de autenticación y seguridad riguroso para su uso.


Se ha visto que la API OpenData de AEMET utiliza JSON como formato para los datos devueltos. Como el soporte de MIT App Inventor para este formato es muy reducido, la aplicación va a utilizar la extensión JSONTools.aix que se describe en la web JSONTOOLS EXTENSION. Al final de la página está el enlace de descarga; una vez se haya descargado, se añadirá a MIT App Inventor desde la sección Extension, pulsando el enlace Import extension. Tras importarla, aparecerá en esa sección un nuevo elemento JSONTools que se podrá arrastrar a los diseños para trabajar con datos en formato JSON.


Ya se ha visto cómo solicitar datos mediante la API OpenData y el formato en que devuelve los valores. Las peticiones a esta API y en general todas las peticiones web se realizan en MIT App Inventor con el componente Web de la sección Connectivity. Al arrastralo a un diseño se le dota de la posibilidad de acceso web. Todos los accesos se realizan, de forma natural, en dos fases: una vez se envía una petición a cierta URL su respuesta está fuera del control de la aplicación. El servidor podría no estar en línea o estar saturado; la conexión podría ser lenta o incluso perderse temporalmente... Muchas circunstancias indican que no es correcto detener la ejecución de un programa desde que se envía una petición web hasta que se recibe su respuesta. Por esto, MIT App Inventor asocia al componente Web un conjunto de peticiones (tipo GET, POST, PUT, DELETE) que devuelven el control a la aplicación al enviarse, y dos eventos (GotText y GotFile) que se activan cuando se recibe la respuesta.


Se ha comentado en un paso anterior que se comunican los datos climáticos, procesados en cierta medida, entre la pantalla principal y la de representación gráfica. No se usa para ello TinyDB sino el otro mecanismo que ofrece MIT App Inventor para la comunicación entre pantallas: el paso de un valor inicial al abrir una nueva pantalla. En este caso, todos los datos a comunicar se incluyen en una lista que es pasada como valor inicial desde la pantalla principal y recuperada en una variable en la de representación gráfica.


Ahora App Inventor ha decido implementar Firebase de forma experimental en sus aplicaciones, esto nos permite tener una base de datos en la nube, datos que podrán ser leidos o recuperados desde cualquier telefono con conexion a internet.


Ahora nos preguntara que tipo de seguridad queremos para nuestra base de datos. Debemos seleccionar de prueba, de lo contrario solo dejara leer y escribir desde aplicaciones que proporcionen un token de seguridad.


JSON (acrónimo de JavaScript Object Notation) es un formato de texto sencillo para el intercambio de datos con base en el lenguaje Javascript, que desde el 2019 ya se considera lenguaje independiente, siendo una alternativa muy potente a XML dentro del intercambio de datos.


El sistema a desarrollar pretende medir la temperatura ambiente de un espacio cerrado, adicionalmente, controlar el encendido y apagado de 4 dispositivos electrónicos, controlados mediante el módulo de 4 relés, a través de una aplicación móvil de fácil manejo para el usuario a través de Appinventor, en el cual se pueda verificar el valor de la temperatura y el estado (encendido/apagado) de cada dispositivo electrónico conectado a la tarjeta WeMos D1 Mini. La plataforma Thinger.io tendrá la tarea de servir como interfaz de comunicación en la nube entre el hardware y la aplicación móvil con la particularidad de que puedan ser controlados desde cualquier parte del mundo.


El desarrollo de la aplicación en Appinventor tiene como función principal hacer los llamados de GET y POST al API REST de Thinger.io, con el fin de leer y escribir las variables y enviar la información a la tarjeta WeMos D1 mini, para este caso, se consulta la documentación proporcionada por Thinger.io para realizar la función de GET y POST, un ejemplo claro de hacer una petición de GET y POST se muestra a continuación:


El desarrollo de este proyecto logró generar una herramienta IoT de bajo costo de implementación (menor a 20 dólares), en el cual se puede apreciar en la figura 13 el funcionamiento de la aplicación móvil desarrollada en Appinventor, la comunicación en la nube con Thinger.io y la lectura y escritura de datos en la tarjeta WeMos D1 mini con sus respectivos actuadores, en aras de realizar una telemetría y control de datos en diferentes áreas, ya sean de orden académico aplicadas a prácticas de laboratorio o de carácter industrial a baja escala encaminadas a la aplicación de algún proceso productivo.


Actualmente la placa la tengo programada de tal forma que entra en modo servidor y puedo acceder desde cualquier otro dispositivo de la red local a través de la IP a una página web que alojo también en la memoria Spiffs. De esta forma me facilita la interacción con el usuario para poder mostrarle datos e incluso cambiar estados de pins, etc...


En nuestra app nos puede interesar en determinadas circunstancias usar HTTP para enviar/recibir datos a/desde un servidor web. Para conseguir esto con App Inventor podemos utilizar el visor web si sólo queremos obtener una página web, por ejemplo, el resultado de una búsqueda, o el componente Web si queremos, por ejemplo, enviar los datos de un formulario de acceso a un sitio web(login).


Node-RED, por otro lado, es un entorno que dispone de un servidor para el tratamiento de los datos y ofrece un modo de programación visual accesible desde el navegador, basado en el flujo (flow en inglés, palabra importante en Node-RED) de estos datos a través de nodos. Si es necesario también permite programación en javascript mediante un nodo especifico, por ejemplo si no existe un nodo que realice la tarea que queremos.


Aquí introduciremos el App ID y el Access Key de nuestra aplicación. Os recuerdo que estos datos los obtendremos de la pestaña Overview de nuestra aplicación desde la consola TTN. Pulsaremos Add para salir aceptando los datos y luego Done para validar la configuración del nodo.


Facebook tiene todos nuestros datos. Esta es una afirmación que todos tenemos interiorizada desde hace tiempo, pero de cuyas implicaciones nos terminamos de darnos cuenta hasta que surgen escándalos como el de Cambridge Analytica o vemos en primera persona cuales son realmente todos los datos que tiene sobre nosotros.


Descargar una copia de seguridad con todas las fotos y datos que tiene Facebook sobre nosotros es bastante sencillo. De hecho, no podemos decir que haya medidas de seguridad extraordinarias, ya que lo único que se nos pide es una contraseña que tu Chrome seguramente ya tenga guardada para que si alguien accede desde tu ordenador no tenga que pensar demasiado.


Una vez descargado el archivo con la copia de seguridad, sólo queda descomprimirlo para encontrarnos con una carpeta en al que están ordenados todos nuestros mensajes, fotos y vídeos. La mejor manera de empezar es entrando en el archivo index.htm, ya que te lleva a una especie de perfil offline desde el que puedes navegar por todos los datos de la copia de seguridad.


Al abrir la página inicial index.htm vas al perfil offline con todos tus datos. En él tienes en la izquierda una columna con todas las categorías, y automáticamente entrarás en la de Perfil. En ella me he encontrado con todos mis datos personales, desde mi correo electrónico hasta mi número de teléfono, pasando por una lista con la gente a la que he etiquetado como familia o las páginas a las que le he dado Me gusta.


La siguiente opción es la de Fotos, donde puedes ver todos los álbumes que has publicado en Facebook y todas las fotos que hay en cada uno de ellos. Recuerda que todos estos son datos que Facebook tiene en sus servidores. Las fotografías incluyen tanto los comentarios que mis contactos dejaron en ellas como algunos datos sensibles, como la longitud y latitud geográfica, o las direcciones IP desde las que las he subido.


Y lo mejor lo he dejado para lo último, porque en una opción con el gracioso nombre de Seguridad, Facebook almacena los datos de todas las conexiones que has establecido con la red social. Esto incluye todas las sesiones iniciadas, con información como el dispositivo o navegador utilizado, la IP desde la que te has conectado y la hora exacta a la que lo has hecho.


Esta sección también incluye información sobre la ubicación estimada de cada IP desde la que te has conectado, así como una lista completa con todas las IPs utilizadas. Con todos estos datos, Facebook podría reconstruir cada uno de los movimientos que he ido haciendo en los últimos años a través de las localizaciones desde las que me he conectado a su servicio. 2ff7e9595c


0 views0 comments

Recent Posts

See All

Comments


bottom of page