A pesar de lo que pueda parecer a juzgar por la poca actividad del blog he estado haciendo cosas (siempre dentro de mis posibilidades y disponibilidades de tiempo).
Valoramos los protocolos que podríamos utilizar para integrar el sensor con el Nagios, las placas y los sensores que debemos utilizar….
La placa que queremos utilizar está clara, la de DFRobot, es compacta, barata, etc. el único inconveniente es que no dispone de PoE, pero utilizaremos un inyector pasivo para alimentarla. para el sensor hemos optado por un Sensirión que nos da tres valores, temperatura, humedad relativa y punto de rocío, los tres parámetros muy interesantes a la hora de hacer monitorización ambiental. El sensor es, desde mi punto de vista, un poco caro, pero «matamos varios pájaros de un tiro» porque recogemos todos los valores con un único sensor.
El sensor utiliza 4 pines, dos para la alimentación y dos para la comunicación, data y clock. hay una estupenda librería para Arduino SHTx para trabajar con estos sensores utilizando dos entradas digitales.
El tema más peliagudo es el del protocolo para comunicar con el Nagios. En nuestro prototipo optamos por el Telnet, vimos que había algunas dificultades, Telnet es un protocolo obsoleto que carece de seguridad y que tiende a utilizarse cada vez menos, su sustituto es el SSH, el SSH utiliza formas de encriptación que se manejan con dificultad en una MCU, por la capacidad de cálculo y el espacio de almacenamiento.
La segunda opción que valoramos es el SNMP, es un protocolo específico para esto. Hay un hilo del forun de Arduino que habla de una librería SNMP para Arduino, la he probado y funciona bien, aunque reconozco que tengo que mirarmelo un poco más. Finalmente el ganador parece ser el http utilizando REST, eso nos permite recoger valores y activar o desactivar sensores para un hipotético uso futuro.
La decisión, si no fuera por los inconvenientes técnicos debería de ser claramente el SNMP, además de ser un protocolo específico para este tipo de cosas permite definir los umbrales e incluso enviar traps en los que la iniciativa es del sensor al haber superado alguno de los umbrales. Lamenteblemente la librería para Arduino no está completa, faltan cosas por implementar. Los que siguen este blog ya saben que me gusta llegar al máximo nivel de profundidad, pero en esta ocasión he entendido que leerme los RFC’s y ponerme a trabajar en la librería SNMP se sale un poco del scope. Eso nos obliga a dejar el tema del SNMP para una próxima ocasión (espero que no muy lejana).