{"id":97,"date":"2010-04-30T18:15:05","date_gmt":"2010-04-30T17:15:05","guid":{"rendered":"http:\/\/www.zigbe.net\/?p=97"},"modified":"2010-04-30T18:15:05","modified_gmt":"2010-04-30T17:15:05","slug":"midiendo-la-energia-cuarta-parte-preparando-para-enviarlo-por-zigbee","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=97","title":{"rendered":"Midiendo la energ\u00eda (Cuarta parte: Preparando para enviarlo por Zigbee)"},"content":{"rendered":"<div class=\"mceTemp mceIEcenter\">\n<div class=\"mceTemp mceIEcenter\">\n<div class=\"mceTemp mceIEcenter\" style=\"text-align: justify;\">\u00a0<\/div>\n<\/div>\n<\/div>\n<p>Suponiendo que hayais superado la prueba de las matem\u00e1ticas en este momento tenemos en un microprocesador los valores que buscamos. En la parte de dise\u00f1o electr\u00f3nico nos hemos dejado algunas \u00abcositas\u00bb:<\/p>\n<p style=\"text-align: justify;\">Alimentaci\u00f3n del Arduino-&gt; tenemos un bobinado del transformador sin utilizar, ponemos un puente rectificador y un par de condensadores y lo utilizamos directamente como entrada de tensi\u00f3n del Arduino, en el Arduino ya tenemos el circuito para filtrar y estabilizar la tensi\u00f3n (no perdais la esperanza de que un d\u00eda \u00a0lo amplie)<\/p>\n<div class=\"mceTemp mceIEcenter\">\n<div class=\"mceTemp mceIEcenter\">\u00a0<\/div>\n<dl id=\"attachment_98\" class=\"wp-caption aligncenter\" style=\"width: 251px;\">\n<dt class=\"wp-caption-dt\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/rectificador20puente.jpg\"><img loading=\"lazy\" class=\"size-full wp-image-98\" title=\"rectificador20puente\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/rectificador20puente.jpg\" alt=\"\" width=\"241\" height=\"141\" \/><\/a><\/dt>\n<dd class=\"wp-caption-dd\">Puente rectificador<\/dd>\n<\/dl>\n<\/div>\n<p>Alimentaci\u00f3n del m\u00f3dulo Zigbee -&gt; Utilizamos el m\u00f3dulo de Digi Xbee, funciona a 3,3V, tenemos dos opciones, o a\u00f1adimos un circuito que nos reduzca la tensi\u00f3n y un divisor de tensi\u00f3n para reducirla en la UART o nos compramos un XBee Shield (unos 15\u20ac), que incorpora la alimentaci\u00f3n a 3,3V y la reducci\u00f3n de las se\u00f1ales de la UART<\/p>\n<div class=\"mceTemp mceIEcenter\">\n<div id=\"attachment_99\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Xbee-Shield.jpg\"><img aria-describedby=\"caption-attachment-99\" loading=\"lazy\" class=\"size-medium wp-image-99\" title=\"Xbee Shield\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Xbee-Shield-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Xbee-Shield-300x300.jpg 300w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Xbee-Shield-150x150.jpg 150w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/04\/Xbee-Shield.jpg 600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-99\" class=\"wp-caption-text\">XBee Shield (que foto m\u00e1s buena, evidentemente no es m\u00eda)<\/p><\/div>\n<\/div>\n<p>\u00a0Con la Shield conectada al Arduino, el m\u00f3dulo de Digi en la Shield (configurado para nuestra red) empieza el reto. \u00bfC\u00f3mo le pasamos los valores al coordinador a trav\u00e9s de la red Zigbee?<\/p>\n<p>Los m\u00f3dulos de Digi tienen dos formas de comunicarse, una es mediante comandoa \u00abAT\u00bb, en topolog\u00edas punto a punto o punto multipunto, utilizando este modo tenemos la ventaja de la simplicidad, pero el gran inconveniente de alejarnos del est\u00e1ndar. Yo creo que hay que apuntarse a los est\u00e1ndares, en este momento solo tenemos nuestro sensor, pero en un futuro \u00bfqui\u00e9n sabe?, mejor utilizar otro m\u00e9todo porque eso nos permitir\u00e1 poner en nuestra red \u00abmotes\u00bb de otros fabricantes.<\/p>\n<p>La alternativa al modo AT es el modo API. En el modo API tenemos que decirle al m\u00f3dulo XBee exactamente los bytes que van incluidos en el paquete de datos que se lanza a la red Zigbee. Dicho as\u00ed suena complicado, lo que tenemos que hacer es incluir en el c\u00f3digo de nuestro arduino el Stack de Zigbee.<\/p>\n<p>El stack es una capa de abstracci\u00f3n de la red, en lugar de \u00abmontar\u00bb el paquete de datos byte a byte podemos hacerlo con unas funciones que est\u00e1n mucho m\u00e1s cerca de la forma humana de comunicarse (y est\u00e1n todav\u00eda bastante lejos), la librer\u00eda que contiene el stack ya se preocupar\u00e1 de convertor lo que le digamos en paquetes de datos hexadecimales. La verdad es que con el tema del stack no\u00a0hay muchas opciones, todos los fabricantes suministran una con sus kits de desarrollo, pero nosotros ya hemos comprado un m\u00f3dulo, Digi no tiene ning\u00fan stack de libre distribuci\u00f3n.<\/p>\n<p>En Google code tenemos publicado un <a href=\"http:\/\/code.google.com\/p\/xbee-arduino\/\" target=\"_blank\">estupendo stack de Zigbee para Arduino<\/a>\u00a0 que nos simplificar\u00e1 enormemente la vida. Este stack soporta las siguientes caracter\u00edsticas:<\/p>\n<h4><a name=\"Series_1_and_2\">Series 1 and 2<\/a><\/h4>\n<ul>\n<li>AT_COMMAND_REQUEST 0x8<\/li>\n<li>AT_COMMAND_RESPONSE 0x88<\/li>\n<li>REMOTE_AT_REQUEST 0x17<\/li>\n<li>REMOTE_AT_COMMAND_RESPONSE 0x97<\/li>\n<li>MODEM_STATUS_RESPONSE 0x8a<\/li>\n<\/ul>\n<p><a name=\"Series_1_(802.15.4)\"><strong>Series 1 (802.15.4)<\/strong><\/a><\/p>\n<ul>\n<li>TX_64_REQUEST 0x0<\/li>\n<li>TX_16_REQUEST 0x1<\/li>\n<li>TX_STATUS_RESPONSE 0x89<\/li>\n<li>RX_64_RESPONSE 0x80<\/li>\n<li>RX_16_RESPONSE 0x81<\/li>\n<li>RX_64_IO_RESPONSE 0x82<\/li>\n<li>RX_16_IO_RESPONSE 0x83<\/li>\n<\/ul>\n<p><a name=\"Series_2_(ZB_Pro\/ZNet)\"><strong>Series 2 (ZB Pro\/ZNet)<\/strong><\/a><\/p>\n<ul>\n<li>ZB_TX_REQUEST 0x10<\/li>\n<li>ZB_RX_RESPONSE 0x90<\/li>\n<\/ul>\n<p>En este momento tenemos un buen punto de partida para pasar la info a trav\u00e9s de nuestra red Zigbee&#8230;&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para enviar la informaci\u00f3n que hemos obtenido a trav\u00e9s de la red Zigbee en modo API es necesario incluir un Stack de Zigbee. Conectamos el m\u00f3dulo al micro e incluimos el stoack en el c\u00f3digo de nuestro Arduino.<\/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],"tags":[102,109],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/97"}],"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=97"}],"version-history":[{"count":0,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/97\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=97"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=97"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}