Acerca de

Simulador de recepción de datos de un grupo electrógeno

Resumen

La memoria que estoy desarrollando consiste en recibir datos de un grupo electrógeno a través del puerto serial, mediante una aplicación que se ejecute en una raspberry pi. Los datos recibidos por la raspberry se transmiten mediante un router wi-fi a una aplicación web que se encuentra en un servidor remoto. Esta aplicación guarda los datos en una base de datos y los muestra a sus dueños. En la etapa de capturar los datos mediante la raspberry pi, las pruebas pueden resultar bastante costosas si uno cablea la raspberry directamente al circuito datalogger (el que envía los datos), ya que uno no puede trabajar en cualquier lugar: depende de tener el circuito en sus manos. La propuesta de este proyecto consiste en escribir un sistema simulador, que se compone de tres partes:

  • Simple recibidor:
  • Recibe los datos del puerto serial y los guarda en un archivo de texto
  • Simulador:
  • Toma como información de entrada los datos almacenados en el archivo de texto, y dependiendo de las necesidades del desarrollador, los grafica o los envia a la página web
  • Comunicador:
  • Este programa se ejecuta como subproceso de Simulador, recibe como argumento de entrada la información que Simulador pretenda que sea importante (a través de las decisiones del usuario) y Comunicador las envía a la página web, mediante el puerto que se haya especificado en su código
La gracia de cada una de estas partes, es que cada una puede funcionar por si sola: Una vez que Simple recibidor haya almacenado la información en un archivo de texto, Simulador la puede procesar para que el desarrollador haga todas sus pruebas de forma local. Además, si uno quiere probar la página web, basta con ejecutar el Simulador en un loop infinito y que periódicamente envie cada uno de los datos del archivo por separado. Además, si uno necesita hacer una prueba muy particular, puede utilizar por si solo el programa Comunicador para enviar un solo dato

Lenguajes de Programación

Para hacer el programa Simple recibidor y Simulador utilizamos el lenguaje Python, debido a que una raspberry pi funciona de forma nativa con Python2, y si bien la librería para utilizar los pines está escrita en C, la raspberry viene con un wrapper que sirve para utilizar esta librería en Python y tiene un nivel de abstacción mayor: utilizando un par de instrucciones simples se puede manipular de forma compleja los pines de la raspberry. Por otro lado, dado que el servidor donde van a parar los datos ocupa el framework Ruby on Rails (y además conocemos el lenguaje ruby), decidimos utilizar el lenguaje ruby para ese programa