Implementando el almacenamiento periódico de datos del sensor y la transmisión GPRS

2

Configuración de hardware

Estoy utilizando hardware personalizado controlado por un TIVA TM4C (específicamente, TM4C123GXL ) para controlar una microrred con almacenamiento de energía de la batería, paneles solares, cuatro cargas controladas por relé y una SIM900 Módulo GSM GPRS. Los usuarios pueden presionar los botones para alternar los relés, o enviar un SMS para alternar los relés.

Tres ADC registran el voltaje de la batería, la corriente de carga total y la potencia de carga total.

Estoy escribiendo el código C usando Keil u4.

Lo que estoy tratando de hacer

  • Registre los estados de relé y los voltajes ADC en un intervalo regular (¿ una vez por minuto? ), así como cada vez que un usuario alterna manualmente una carga
  • ¿Periódicamente ( ¿una vez por hora? ) envíe los datos acumulados a través de GPRS a un servidor http

Estos datos se pueden usar para asegurarse de que el algoritmo de la micro-red esté funcionando de manera óptima y que maneje adecuadamente la disponibilidad de los recursos solares, el estado de la batería, las entradas del usuario, etc.

Mi pregunta

  1. ¿Estos intervalos de tiempo tienen sentido? ¿Debo registrar más o menos a menudo? ¿Transmite más o menos a menudo?
  2. ¿Debo usar EEPROM para almacenar los valores antes de transmitir, o simplemente guardarlos en la memoria, ya que es un corto intervalo de tiempo?
  3. ¿Cuál es la mejor manera de implementar temporizadores? Tengo varios temporizadores de 32 bits con subtimizadores de 16 bits y varios temporizadores de 64 bits con subtimers de 32 bits. No tengo claro cómo / por qué usar diferentes arreglos de temporizador para diferentes tareas.
pregunta LShaver

1 respuesta

1

¡Es mucho tiempo ahora! No sé si todavía tienes interés en estas preguntas, pero de todos modos.

Creo que las dos primeras preguntas no tienen una respuesta única / objetiva. La respuesta depende en gran medida de su aplicación.

Por ejemplo, con respecto a la primera pregunta: ¿Está cargada la batería de su hardware? En caso afirmativo, debería calcular los intervalos de tiempo teniendo en cuenta el consumo de energía y con qué frecuencia desea cambiar las baterías. Si no está preocupado por el consumo de energía, ¡depende principalmente de lo que quiera lograr! Tal vez debería preguntarse, ¿por qué registra estos datos? ¿Es porque necesita reaccionar a algo (como una sobretensión o una sobrecorriente), en cuyo caso quizás debería hacer una muestra más a menudo o simplemente para mantener el historial? También es una cuestión de la cantidad de memoria que tiene disponible, la frecuencia con la que puede muestrear, etc.

Con respecto a la segunda pregunta, supongo que las preguntas que debe hacerse son si le interesa perder datos muestreados en caso de que se produzca un apagado entre dos transmisiones y si tiene suficiente memoria interna en el procesador para mantener los datos entre dos. transmisiones.

    
respondido por el nickagian

Lea otras preguntas en las etiquetas