{"id":180,"date":"2010-05-07T20:10:21","date_gmt":"2010-05-07T19:10:21","guid":{"rendered":"http:\/\/www.zigbe.net\/?p=180"},"modified":"2010-05-07T20:10:21","modified_gmt":"2010-05-07T19:10:21","slug":"180","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=180","title":{"rendered":"Representando graficamente: Pachube"},"content":{"rendered":"<div class=\"mceTemp mceIEcenter\">\u00a0<\/div>\n<p>Y ahora a graficar????, que persona m\u00e1s desordenada&#8230;&#8230;<\/p>\n<p>En realidad el proceso de investigaci\u00f3n que estoy siguiendo tiene un orden bastante aleatorio. Hay veces que te atascas y otras, que como en este caso, el poder continuar ordenadamente depende de que llegue un componente. En el \u00faltimo post llegamos a la conclusi\u00f3n de que ten\u00edamos que utilizar otro sensor de corriente, as\u00ed que mientras espero os explico otra historia.<\/p>\n<p>Una parte muy importante de la monitorizaci\u00f3n es la representaci\u00f3n gr\u00e1fica. Hay muchos casos en los que el que tiene que recibir el dato es una m\u00e1quina, nos sirve perfectamente el dato num\u00e9rico o el paquete de datos. Cuando el receptor es una\u00a0ser humano\u00a0debemos de escoger un m\u00e9todo de representaci\u00f3n que sea (deseablemente) visual.<\/p>\n<p>En un art\u00edculo anterior ya intentamos sacar la informaci\u00f3n de la red Zigbee hacia <a href=\"http:\/\/www.pachube.com\" target=\"_blank\">Pachube<\/a>. Pachube nos permite recoger, mediante servicios web, los datos que le mandemos a trav\u00e9s de Internet, almacenarlos y representarlos de forma gr\u00e1fica. Evidentemente Pachube no ser\u00e1 el destinatario final de nuestros datos, pero utilizarlo nos permite concentrarnos en la forma de \u00absacarlos\u00bb de Zigbee sin entrar todav\u00eda en programaci\u00f3n de servicios web o en la representaci\u00f3n gr\u00e1fica.<\/p>\n<p>A la hora de escoger un fabricante para comprar nuestros kits de desarrollo escogimos a <a href=\"http:\/\/www.digi.com\" target=\"_blank\">Digi<\/a>. Este fabricante est\u00e1 bastante extendido en el mundo del HW libre, dispone de toda una serie de m\u00f3dulos con pinout compatible y de una gama de gateways\u00a0\u00a0Zigbee relativamente baratos. Incialmente el\u00a0entorno de desarrollo para el HW embebido que estamos utilizando es Arduino, es relativamente f\u00e1cil encontrar shields para conectar un Xbee a un Arduino, lo cual nos facilita las cosas.\u00a0<\/p>\n<div id=\"attachment_188\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/05\/Xbee.jpg\"><img aria-describedby=\"caption-attachment-188\" loading=\"lazy\" class=\"size-full wp-image-188\" title=\"Xbee\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/05\/Xbee.jpg\" alt=\"\" width=\"400\" height=\"400\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/05\/Xbee.jpg 400w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/05\/Xbee-150x150.jpg 150w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/05\/Xbee-300x300.jpg 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><p id=\"caption-attachment-188\" class=\"wp-caption-text\">M\u00f3dulo XBee de Digo<\/p><\/div>\n<p>Los m\u00f3dulos Xbee tienen en su interior\u00a0circuiter\u00eda de <a href=\"http:\/\/www.ember.com\/\" target=\"_blank\">Ember<\/a>, entre los inconvenientes de estos m\u00f3dulos est\u00e1 que su API no es abierta, pero se pueden utilizar como entorno de desarrollo de Ember (los contactos dorados de la parte superior son el header para programarlos).<\/p>\n<p>El coordinador de una red Zigbee de Digi suele ser un gateway, el gateway es un elemento que tiene una \u00abpata\u00bb en una red Zigbee y la otra en una red Ethernet, 3G, etc. Tal como apunt\u00e1ba m\u00e1s arriba el Gateway es el responsable de sacar la info de Zigbee.\u00a0 En el entorno de Digi con la informaci\u00f3n se pueden hacer varias cosas: almacenarla (con unos l\u00edmites) en el Gateway, extraerla bajo demanda con servicios web, almacenarla en una\u00a0<a href=\"http:\/\/www.idigi.com\" target=\"_blank\">p\u00e1gina web espec\u00edfica de\u00a0Digi<\/a>\u00a0o mostrarla en la misma p\u00e1gina. El Gateway permite a\u00f1adir scripts en el lenguaje interpretado <a href=\"http:\/\/www.python.org\" target=\"_blank\">Python<\/a>\u00a0y en la web de Digi se pueden descargar algunos ejemplos de configuraci\u00f3n y de integraci\u00f3n con las webs de idigi.<\/p>\n<p>Modificando los ejemplos suministrados por Digi conseguimos publicar la informaci\u00f3n de los sensores de nuestra red en Pachube (prometemos explicar la manera) y hemos hecho un\u00a0feed de prueba.\u00a0pachube tiene bastantes posibilidades para representar la informaci\u00f3n, aqui van un par de pruebas:<\/p>\n<p>Generando un gr\u00e1fico en tiempo real <a href=\"http:\/\/www.pachube.com\/feeds\/6900\/datastreams\/2\/history.png?w=500&amp;h=300&amp;c=33cc66&amp;b=true&amp;g=true&amp;t=Temperatura%20en%20mi%20laboratorio&amp;l=Temperatura%20(C)&amp;s=4&amp;r=2\" target=\"_blank\">(la temperatura de mi lab)<\/a>. En este caso a partir de una URL se genera el gr\u00e1fico con la informaci\u00f3n de las \u00faltimas 24 horas, insertada a continuaci\u00f3n:<\/p>\n<div style=\"width: 510px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" src=\"http:\/\/www.pachube.com\/feeds\/6900\/datastreams\/2\/history.png?w=500&amp;h=300&amp;c=33cc66&amp;b=true&amp;g=true&amp;t=Temperatura%20en%20mi%20laboratorio&amp;l=Temperatura%20(C)&amp;s=4&amp;r=2\" alt=\"\" width=\"500\" height=\"300\" \/><p class=\"wp-caption-text\">Gr\u00e1fico generado en tiempo real por Pachube<\/p><\/div>\n<p>\u00a0El segundo ejemplo es un c\u00f3digo Java que permite interactuar, a continuaci\u00f3n (paciencia\u00a0se carga de forma as\u00edncrona y\u00a0tarda un poquito):<\/p>\n<p><script src=\"http:\/\/www.google.com\/jsapi\" type=\"text\/javascript\"><\/script><script src=\"http:\/\/apps.pachube.com\/google_viz\/viz.js\" type=\"text\/javascript\"><\/script><script type=\"text\/javascript\">\/\/ < ![CDATA[\n\/\/ < ![CDATA[\ncreateViz(6900,2,500,300,\"FF0066\");\n\/\/ ]]><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 Y ahora a graficar????, que persona m\u00e1s desordenada&#8230;&#8230; En realidad el proceso de investigaci\u00f3n que estoy siguiendo tiene un orden bastante aleatorio. Hay veces que te atascas y otras, que como en este caso, el poder continuar ordenadamente depende&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=180\">Leer m\u00e1s<\/a><\/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":[20,21,11],"tags":[56,62,73,128,164,174,197],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/180"}],"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=180"}],"version-history":[{"count":0,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}