La configuración anterior del gateway RAK831 basado en Raspberry Pi 3 presentaba problemas de estabilidad con errores recurrentes que me obligaban a reiniciar la aplicación Resin. Pero el mayor problema era la poca cobertura a pesar de utilizar la antena de onda completa de RAK de 5.8dbi ya que tenía que estar en interior. La caja original no tiene ninguna estanqueidad.
La solución
Me he provisto de una de exterior con certificación IP67, la Nebra de aluminio. Así como de los prensa estopas necesarios para que los cables pasen al interior de la caja sin poner en peligro su estanqueidad.
Es muy importante utilizar un cable de antena lo más corto posible. Por lo que lo más fácil es poner ambas en el mismo mástil.
La antena de GPS queda en el interior con una cobertura reducida. Lo que no es un problema ya que la localización del gateway se configura manualmente.
Para instalar el software he seguido el documento del taller de gateways de TTN Madrid de @AngeLinuX99.
El problema de la temperatura. Monitorización
Me preocupa que la falta de refrigeración activa lleve a la CPU de la Raspberry Pi a quemarse. Lo que no sabré si pasa hasta que lleguen los calores del verano. Preventivamente he reducido consumos innecesarios como la WiFi o el BlueTooth. Lo que se puede hacer fácilmente añadiendo al fichero de configuración /boot/config.txt los parámetros:
dtoverlay=disable-wifi
dtoverlay=disable-bt
Y para conocer saber la temperatura he hecho un pequeño programa en Pyhton que basado en el comando vcgencmd lee el sensor del a CPU:
root@raspberrypi:~# vcgencmd measure_temp
temp=42.8'C
Transmite la medida a un Topic de MQTT y graba el valor en una tabla de una base de datos MySQL.
He completado el programa con medidas de almacenamiento, carga de la CPU y memoria. De manera que tengo una información completa del estado de la Raspberry Pi que puedo mostrar en una aplicación Node-RED con el siguiente flujo:
Finalmente tengo accesible el estado y evolución de estos indicadores en un dashboard de Node-RED que también me enviará alertas por mail y Twitter cuando la aplicación deje de enviar mensajes al topic o la temperatura supere un umbral.
Para ejecutar el programa he preferido hacerlo a través de una entrada en el cron del Raspbian:
# m h dom mon dow command
*/15 * * * * /usr/bin/python /home/pi/system_info_RAK831.py
El resultado
El esfuerzo a dado buenos resultados. De momento he mapeado las zonas de costa con un nodo dado de alta en TTN Mapper con un alcance que ha superado los 10Km.