{"id":28,"date":"2010-04-21T23:47:14","date_gmt":"2010-04-21T23:47:14","guid":{"rendered":"http:\/\/www.zigbe.net\/?p=28"},"modified":"2010-04-21T23:47:14","modified_gmt":"2010-04-21T23:47:14","slug":"empezando-por-el-medio-almacenando-los-datos-en-internet","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=28","title":{"rendered":"Empezando por la mitad: Almacenando los datos en Internet"},"content":{"rendered":"<p style=\"text-align: justify;\">Seguramente estar\u00e1s pensando que no tiene demasiado sentido que esta sea una de las primeras entradas. En realidad yo opino lo mismo, no es normal empezar por aqu\u00ed.<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Los motivos son sencillos de explicar, ya hace unos d\u00edas que empezamos, nuestros descubrimientos previos a este momento no est\u00e1n publicados, aunque seguramente ir\u00e1n apareciendo de forma desordenada.<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Cuando hablamos del orden en el que sucende las cosas, hay dos enfoques posibles: en el primero se empieza por un sensor que recoge un dato, lo env\u00eda a trav\u00e9s de una red Zigbee, lo recibe un coordinador, el dato sale de la red Zigbee y se almacena en una base de datos. Posteriormente un cliente lo recupera con una aplicaci\u00f3n, un m\u00f3vil, una p\u00e1gina web, etc. El principio est\u00e1 el sensor, el final es el interfaz.<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">El segundo enfoque es al rev\u00e9s, alguien o algo, a trav\u00e9s de un interfaz activa un actuador, el camino es exactamente el contrario, empieza en el interfaz y acaba en el sensor (actuador en este caso).<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Una de las cosas que nos ha quedado menos clara en todo este proceso es la forma y el formato en el que deb\u00edamos de almacenar el dato, tiene dos dificultades, el sacar el dato de la red Zigbee y el almacenarlo en un servidor externo que contenga una base de datos, de eso precisamente trara esta entrada.<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Un m\u00e9todo claramente v\u00e1lido para hacer esto es utilizar servicios web, precisamente hoy hemos estado haciendo pruebas con este tema. Por simplificar, hemos empezado creando un servicio web en ASP.NET y un consumidor de este servicio, todo bastante sencillo.\u00a0 El servicio web pide un par\u00e1metro y devuelve un xml que\u00a0contiene los campos\u00a0de una tabla existente en un servidor de SQL. El consumidor simplemente ejecuta este servicio.<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">La gran duda surge en el momento en el que quieres escribir la informaci\u00f3n en la base de datos, probablemente el elemento que recoja y env\u00ede la informaci\u00f3n de los sensores est\u00e9 ubicado detr\u00e1s de un Firewall y el servidor que ejecuta los servicios puede estar en Internet, aparentemete la iniciativa de la comunicaci\u00f3n siempre la tiene que tener de nuestro dispositivo.<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Por simplificar de nuevo hemos \u00abpasado\u00bb de nuestro servicio web y hemos creado un feed en <a href=\"http:\/\/www.pachube.com\/\" target=\"_blank\">pachube<\/a>.\u00a0Nuestro objetivo es alimentar este feed\u00a0con los datos de un microprocesador (otro d\u00eda\u00a0veremos como hacer llegar a este micro los datos del Zigbee)<\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">En un link del pachube hemos encontrado una posible soluci\u00f3n:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.dial911anddie.com\/weblog\/2009\/12\/arduino-ethershield-1wire-temperature-sensor-pachube\/\">http:\/\/www.dial911anddie.com\/weblog\/2009\/12\/arduino-ethershield-1wire-temperature-sensor-pachube\/<\/a><\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Con una placa Arduino duemilanove, una Ethernet Shield, un sensor de temperaturas 1whire y algunas librer\u00edas en 5 minutos estaba alimentando mi feed de pachube con los datos de mi sensor de temperatura.<\/p>\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<div class=\"mceTemp mceIEcenter\" style=\"text-align: center;\">\n<dl id=\"attachment_29\" class=\"wp-caption   aligncenter\" style=\"width: 310px;\">\n<dt class=\"wp-caption-dt\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Arduino.jpg\"><img loading=\"lazy\" class=\"size-medium wp-image-29\" title=\"Arduino\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Arduino-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Arduino-300x225.jpg 300w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Arduino.jpg 400w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/dt>\n<dd class=\"wp-caption-dd\">Arduino con Shield Ethernet<\/dd>\n<\/dl>\n<\/div>\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<div class=\"mceTemp mceIEcenter\" style=\"text-align: center;\">\n<dl id=\"attachment_31\" class=\"wp-caption aligncenter\" style=\"width: 310px;\">\n<dt class=\"wp-caption-dt\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/SensorT1.jpg\"><img loading=\"lazy\" class=\"size-medium wp-image-31\" title=\"SensorT\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/SensorT1-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/SensorT1-300x225.jpg 300w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/SensorT1.jpg 400w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/dt>\n<dd class=\"wp-caption-dd\">Sensor de temperatura 1wire<\/dd>\n<\/dl>\n<\/div>\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<div class=\"mceTemp mceIEcenter\" style=\"text-align: center;\">\n<dl id=\"attachment_32\" class=\"wp-caption aligncenter\" style=\"width: 310px;\">\n<dt class=\"wp-caption-dt\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/FeedPachube.jpg\"><img loading=\"lazy\" class=\"size-medium wp-image-32\" title=\"FeedPachube\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/FeedPachube-300x225.jpg\" alt=\"Imagen graficada en la web de pachube\" width=\"300\" height=\"225\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/FeedPachube-300x225.jpg 300w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/FeedPachube.jpg 400w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/dt>\n<dd class=\"wp-caption-dd\">Imagen graficada en la web de pachube<\/dd>\n<\/dl>\n<\/div>\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: center;\">\n<p style=\"text-align: justify;\">El resultado en pachube se puede obtener en xml, con un servicio web o graficado en su misma p\u00e1gina, este es el resultado gr\u00e1fico:<strong>\u00bfqu\u00e9 es lo siguiente?<\/strong><\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Ahora que ya somos capaces de escribir los datos de un sensor en una p\u00e1gina web, lo siguiente es:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Lograr enviar esta informaci\u00f3n por XML (o EEML)<\/li>\n<li>Obtener la informaci\u00f3n de la red Zigbee en lugar de recogerla de un sernsor<\/li>\n<li>Crear nuestro propio servicio web en lugar de utilizar pachube<\/li>\n<li>Hacer un curso avanzado de fotograf\u00eda \ud83d\ude09<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">Volviendo al inicio de este art\u00edculo el orden de los pasos me lo reservo como sorpresa&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como publicamos los datos de los sensores en un servidor<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[16,17,20],"tags":[102,109],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/28"}],"collection":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":0,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/28\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}