Implementación de almacenamiento periódico de datos de sensores y transmisión GPRS

Configuración de hardware

Estoy usando hardware personalizado impulsado por un TIVA TM4C (específicamente, TM4C123GXL ) para controlar una microrred con almacenamiento de energía de batería, paneles solares, cuatro cargas controladas por relé y un módulo SIM900 GSM GPRS. Los usuarios pueden presionar 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 código C usando Keil u4.

lo que estoy tratando de hacer

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

Estos datos se pueden usar para asegurarse de que el algoritmo de microrred funcione de manera óptima y maneje adecuadamente la disponibilidad de recursos solares, el estado de la batería, las entradas del usuario, etc.

Mi pregunta

  1. ¿Tienen sentido estos intervalos de tiempo? ¿Debo iniciar sesión con más o menos frecuencia? ¿Transmitir con más o menos frecuencia?
  2. ¿Debo usar EEPROM para almacenar los valores antes de transmitir, o simplemente guardarlos en la memoria, ya que es un intervalo de tiempo corto?
  3. ¿Cuál es la mejor manera de implementar temporizadores? Tengo varios temporizadores de 32 bits con subtemporizadores de 16 bits y varios temporizadores de 64 bits con subtemporizadores de 32 bits. No tengo claro cómo/por qué usar diferentes arreglos de temporizador para diferentes tareas.
Con respecto a tu primera pregunta. SIM900 tiene un RTC integrado, también tiene un pin separado para el condensador de respaldo RTC o la batería. patilla 26, VRTC.
@BenceKaulics - ¡gracias! Investigué esto y me di cuenta de que en realidad ya lo estaba usando; solo pensé que era el momento de la red. Resulta que el SIM900 solo usa el tiempo de la red para configurar su RTC.

Respuestas (1)

¡Ya es mucho tiempo! No sé si todavía tienes interés en estas preguntas, pero en fin.

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: ¿su hardware funciona con batería? En caso afirmativo, debe calcular los intervalos de tiempo teniendo en cuenta el consumo de energía y la frecuencia con la que desea cambiar las baterías. Si no le preocupa el consumo de energía, ¡depende principalmente de lo que quiera lograr! Tal vez deberías preguntarte, ¿por qué registras estos datos? ¿Es porque necesita reaccionar a algo (como una sobretensión o una sobrecorriente), en cuyo caso tal vez debería tomar muestras con más frecuencia o simplemente para mantener el historial? También es una cuestión de cuánta memoria tiene disponible, con qué frecuencia puede muestrear, etc.

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