{"id":995,"date":"2011-09-15T01:12:38","date_gmt":"2011-09-15T00:12:38","guid":{"rendered":"http:\/\/www.zigbe.net\/?p=995"},"modified":"2011-09-15T01:12:38","modified_gmt":"2011-09-15T00:12:38","slug":"bmoteseth-3-diseno-del-firmware-para-el-sensor-ethernet-integrable-con-nagios","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=995","title":{"rendered":"bMotesETH: 3 Dise\u00f1o del firmware para el sensor Ethernet integrable con Nagios"},"content":{"rendered":"<p>Despu\u00e9s\u00a0llegar a conclusiones sobre las tecnolog\u00edas a utilizar para este dispositivo (y unas largas y merecidas vacaciones), lo vamos a construir a partir de lo siguiente:<\/p>\n<ul>\n<li>Una placa <a title=\"Placa XBoard\" href=\"http:\/\/www.dfrobot.com\/index.php?route=product\/product&amp;filter_name=Xboard&amp;product_id=494\">Xboard<\/a>\u00a0de DF Robot<\/li>\n<li>Un sensor de humedad y temperatura <a title=\"Sensirion\" href=\"http:\/\/www.sensirion.com\/en\/01_humidity_sensors\/00_humidity_sensors.htm\">Sensirion<\/a><\/li>\n<li>Comunicaci\u00f3n por internet con REST<\/li>\n<li>Firmware basado en la plataforma <a href=\"http:\/\/www.arduino.cc\/\" target=\"_blank\">Arduino<\/a><\/li>\n<li>Servidor web webduino<\/li>\n<\/ul>\n<p>En el dise\u00f1o del firmware me he encontrado varios problemas:<\/p>\n<ul>\n<li>Necesitamos un procedimiento y un interfaz para que el usuario pueda personalizar la configuraci\u00f3n de red del dispositivo sin tener que disponer de un programador y actualizar el firmware.<\/li>\n<\/ul>\n<p>En esta caso la soluci\u00f3n por la que he optado es que el dispositivo incorpore una direcci\u00f3n IP concreta por defecto (y que siempre se pueda resetear manteniendo pulsado un bot\u00f3n de reset mientras se reinicia el equipo. Adem\u00e1s he incorporado una pantalla de setup en el sensor que permite personalizarla y un peque\u00f1o control de errores. Cada vez que se cambia la IP la nueva se graba en la memoria EEPROM de la placa, que es de donde la coge el sketch para configurar la tarjeta de red.<\/p>\n<div id=\"attachment_996\" style=\"width: 768px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Setup.jpg\"><img aria-describedby=\"caption-attachment-996\" loading=\"lazy\" class=\"size-full wp-image-996\" title=\"Setup\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Setup.jpg\" alt=\"\" width=\"758\" height=\"523\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Setup.jpg 758w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Setup-300x207.jpg 300w\" sizes=\"(max-width: 758px) 100vw, 758px\" \/><\/a><p id=\"caption-attachment-996\" class=\"wp-caption-text\">Muestra de la pantalla de Setup<\/p><\/div>\n<p>&nbsp;<\/p>\n<ul>\n<li>\u00a0Necesitamos varios interfaces para sacar los datos del sensor<\/li>\n<\/ul>\n<p>En el directorio raiz he creado un interfaz que sea entendible por los humanos, al acceder a la IP del sensor esta es la pantalla que aparece:<\/p>\n<div id=\"attachment_999\" style=\"width: 766px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Inicial.jpg\"><img aria-describedby=\"caption-attachment-999\" loading=\"lazy\" class=\"size-full wp-image-999\" title=\"Inicial\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Inicial.jpg\" alt=\"\" width=\"756\" height=\"426\" srcset=\"https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Inicial.jpg 756w, https:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/09\/Inicial-300x169.jpg 300w\" sizes=\"(max-width: 756px) 100vw, 756px\" \/><\/a><p id=\"caption-attachment-999\" class=\"wp-caption-text\">Pantalla inicial del sensor<\/p><\/div>\n<p>Adem\u00e1s para la integraci\u00f3n con Nagios y con otros dispositivos hemos previsto varios interfaces adicionales:<\/p>\n<ul>\n<li>Accediendo a http:\/\/XXX\/sensor, obtenemos todos los datos de todos los sensores en formato JSON<\/li>\n<li>Accediendo a\u00a0http:\/\/XXX\/sensor\/temperatura obtenemos los datos de temperatura en formato JSON, lo mismo para el resto de datos individuales<\/li>\n<li>Accediendo a\u00a0http:\/\/XXX\/EM01 obtenemos los datos en un string para tener compatibilidad con el sensor EM01 y la integraci\u00f3n con Nagios.<\/li>\n<\/ul>\n<p>Despu\u00e9s de muchos problemas intentando generar e interpretar el c\u00f3digo HTML a mano descubr\u00ed la librer\u00eda Webduino, funciona como una seda.<\/p>\n<p>En todo caso el dise\u00f1o del sensor est\u00e1 acabado, en el pr\u00f3ximo post la integraci\u00f3n con Nagios y Cacti.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Despu\u00e9s\u00a0llegar a conclusiones sobre las tecnolog\u00edas a utilizar para este dispositivo (y unas largas y merecidas vacaciones), lo vamos a construir a partir de lo siguiente: Una placa Xboard\u00a0de DF Robot Un sensor de humedad y temperatura Sensirion Comunicaci\u00f3n por&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=995\">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":[16,2,20,21,9,10,11],"tags":[35,76,102,109,110,111,112,173,183],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/995"}],"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=995"}],"version-history":[{"count":0,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/995\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}