{"id":1057,"date":"2011-11-16T03:02:14","date_gmt":"2011-11-16T02:02:14","guid":{"rendered":"http:\/\/www.zigbe.net\/?p=1057"},"modified":"2016-02-27T17:37:00","modified_gmt":"2016-02-27T16:37:00","slug":"bmoteseth-bmotesltc","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=1057","title":{"rendered":"bMotesETH + bMotesLTC"},"content":{"rendered":"<p>Hola de nuevo, como siempre me excuso, me gustar\u00eda poder escribir m\u00e1s, pero no tengo tiempo&#8230; simplemente tengo que elegir.<\/p>\n<p>\u00daltimamente me cuestionaba porqu\u00e9 este blog se llama <a title=\"http:\/\/www.zigbe.net\/\" href=\"http:\/\/www.zigbe.net\/\" target=\"_blank\">http:\/\/www.zigbe.net\/<\/a> si est\u00e1bamos haciendo sensores basados en Ethernet, entonces me plante\u00e9 a\u00f1adir sensores Zigbee a la soluci\u00f3n que hab\u00edamos construido, con el mismo principio de sencillez, el Nodo analiza y almacena la informaci\u00f3n y el Nagios, o la web la extrae.<\/p>\n<p>Si record\u00e1is est\u00e1bamos utilizando una placa XBoard de DF Robot, que contiene un z\u00f3calo para Xbee, por otro lado tenemos los nodos bMotesLTC construidos, que son capaces de operar el modo sleep y de enviar una lectura de forma peri\u00f3dica a la red. En este caso el reto est\u00e1 en como declarar los sensores para que el proceso de dar de alta no sea complicado y se pueden a\u00f1adir nodos de una forma sencilla. despu\u00e9s de algunos d\u00edas tengo la soluci\u00f3n funcionando, aunque tengo que pulir cosas para conseguir meterlo todo en los 30K del Arduino.<\/p>\n<p>La filosof\u00eda que he utilizado es muy sencilla:<\/p>\n<ul>\n<li>En el bMotesETH ponemos una radio Xbee funcionando como coordinador API y a la que permitimos que se enganche cualquier nodo.<\/li>\n<li>Configuramos los bMotesLTH para que env\u00eden las lecturas de sus puertos de forma peri\u00f3dica a la red y duerman el resto del tiempo.<\/li>\n<li>Hacemos las siguientes \u00abstructs\u00bb en el programa del Arduino: 1.- Tipos,contiene el tipo de sensor, el nomber del parmametro, las unidades y los umbrales; 2.- Nodos contiene la direcci\u00f3n de cada nodo y un nombre configurable; 3.- Canales, contiene el nodo al que corresponde, el tipo al que corresponde y el valor del sensor leido.<\/li>\n<\/ul>\n<p>A partir de este punto el coordinador lee mensajes, si son de los que nos interesan va rellenado las listas, la de los nodos con las direcciones y las de los canales con los valores, a cada canal se asigna un tipo, de esta forma podemos detectar los sensores, los canales y representarlos de forma ordenada con una estructura flexible y econ\u00f3mica en memoria.<\/p>\n<p>Las primeras pruebas funcionan muy bien, enciendes un nodo, e engancha a la red, env\u00eda las lecturas y los sensores van apareciendo m\u00e1gicamente en el interfaz web del bMotesETH,el Nagios los empieza a leer, etc.<\/p>\n<p>Sigo peleando con el espacio de memoria de programa, el programa del Arduino es m\u00e1s pesado, pero hay m\u00e1s cosas que se resuelven con bucles, por lo que espero que al final pueda caber.<\/p>\n<p>lamentablemente son muchas l\u00edneas de c\u00f3digo y no resulta f\u00e1cil depurar con Arduino cuando est\u00e1s cerca del l\u00edmite de memoria, \u00a0a\u00f1adir la librer\u00eda NSS para depurar provoca que se ocupe todav\u00eda m\u00e1s espacio. Una alternativa ser\u00eda utilizar un Arduino Mega, ir depurando el c\u00f3digo sin demasiados problemas de espacio y despu\u00e9s portarlo a un Arduino duemillanove o al XBoard, pero la tarjeta de red que tengo no es compatible con el Mega, una pena.<\/p>\n<p>Os dejo una foto que muestra el caos en el entorno de pruebas&#8230;<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1058\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/11\/P1030475500.jpg\"><img aria-describedby=\"caption-attachment-1058\" loading=\"lazy\" class=\"size-full wp-image-1058\" title=\"P1030475500\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/11\/P1030475500.jpg\" alt=\"\" width=\"500\" height=\"375\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/11\/P1030475500.jpg 500w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/11\/P1030475500-300x225.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><p id=\"caption-attachment-1058\" class=\"wp-caption-text\">El caos<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Un mont\u00f3n de problemas, especialmete para alimentar la Xbee shield cuando tienes una Shield Ethernet. Pero funciona&#8230;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hola de nuevo, como siempre me excuso, me gustar\u00eda poder escribir m\u00e1s, pero no tengo tiempo&#8230; simplemente tengo que elegir. \u00daltimamente me cuestionaba porqu\u00e9 este blog se llama http:\/\/www.zigbe.net\/ si est\u00e1bamos haciendo sensores basados en Ethernet, entonces me plante\u00e9 a\u00f1adir&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=1057\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":1058,"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,2,20,7,9,10],"tags":[35,37,56,79,80,99,109,110,111,112,173,183,197],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/1057"}],"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=1057"}],"version-history":[{"count":1,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions"}],"predecessor-version":[{"id":7593,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions\/7593"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/media\/1058"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}