IoT 101

Batería para todos

Nicolas Celedon
Jul 1 · 7 min read

Cuando hemos tenido que desarrollar proyectos en Zembia IoT, normalmente aparecen dentro del listado de requerimientos referencias como “quiero que sea del tamaño de un botón”, “que procesar tantos datos como los servidores de google”. Y sí a lo anterior sumamos “que funcione con batería durante 100 años”, el agua empieza a ponerse un poco más turbia… La verdad es que exageré un poquito, pero entienden el punto.

No es el fin del mundo — claramente por qué eso ya pasó, y pude escribir este artículo que estás leyendo — y luego de un par de conversaciones y divagaciones tenemos una película más clara del problema, y de lo que queremos lograr.

…No obstante lo anterior, la batería sigue siendo un problema, pero ahora tiene solución.

La verdad es que prácticamente siempre la batería va a ser uno de los aspectos relevantes a la hora de tener que diseñar un dispositivo IOT. Es muy probable que no contemos con una fuente de energía eléctrica externa de la cual podamos depender un 100% del tiempo.

Acá van algunos puntos que en Zembia tenemos en consideración a la hora desarrollar un dispositivo IoT.

Microcontrolador

Normalmente trabajamos con microcontroladores a la hora de desplegar un dispositivo IoT, y uno de los aspectos más relevantes es el consumo de energía del microcontrolador cuando está dormido. Lo anterior se debe a que más del 98% del tiempo el dispositivo va a estar durmiendo(puede variar, pero es el promedio de proyectos en los que hemos trabajado). Moraleja, no se dejen engañar por esos 10uA de consumo…parecen poco, pero no lo son.

Así mismo, es importante revisar ante qué evento queremos realizar las mediciones, y verificar que el microcontrolador sea capaz de despertarse ante los eventos requeridos. Normalmente utilizamos un reloj en tiempo real, interno o externo, pero también nos hemos visto en escenarios donde es necesario despertar al microcontrolador en base a una señal externa. Ambos escenarios son bastante comunes y fáciles de abordar. En otros, hemos tenido que tomar opciones un poco más complejas cuando requerimos despertar el dispositivo ante la recepción de un comando serial, por ejemplo, pero son los menos.

Finalmente, es bueno tener en cuenta los voltajes y la frecuencia de operación del microcontrolador. A primera suena bastante mágico el solo hecho de reducir el voltaje de operación para poder reducir el consumo, y lo es xD, pero hay que tener en cuenta el impacto que este tiene en la frecuencia de operación del microcontrolador, donde lo más probable es que tengas que bajarla. En algunos casos puede ser despreciable el cambio, mientras que en otros impactará en los tiempos que requieras para poder comunicarte con los sensores que tengas conectados, teniendo que mantenerlos energizados durante más tiempo.

Alimentación de sensores

Aquí posiblemente estés un poco más atado de manos, y va a depender mucho del mercado al cual estés apuntando con tu dispositivo IOT, y que sensores vas a requerir. No obstante, reglas básicas a tener en cuenta es el voltaje de alimentación de los sensores. La decisión de si vas a trabajar al mismo voltaje que el microcontrolador o vas a elegir otro voltaje, depende de múltiples factores, pero si es bueno tener en cuenta que los voltajes de ambos, microcontrolador y sensor, deben ser compatibles.

A su vez, otro factor importante es el de evaluar la posibilidad de des-energizar estos dispositivos, y entender bien cuándo tiene que estar energizado. Lo ideal es des-energizar los sensores el mayor tiempo posible, pero en algunas situaciones los sensores pueden requerir un tiempo de asentamiento, o deben ser configurados cada vez que son energizados, o quizás el tiempo de inicialización es muy largo. Para poder lograr optimizar en este punto, vale la pena leer minuciosamente la documentación de cada uno de los sensores a utilizar.

Transmisión de datos

El uso extensivo de datos exprime la batería, logrando una duración entre 4 horas y 2 semanas (peor y mejor escenario), y en operación normal podría durar hasta 3 días.

Aquí tenemos alternativas de sobra, y quizás hay muchos aspectos relevantes en este tópico, pero para no desvirtuar el articulo intentaré centrarme en los puntos que creo tienen en común las tecnologías a la hora de reducir el consumo de batería.

Como primero es bastante útil tener una dimensión de la cantidad de datos que quiere transmitir, y es relevante no solo porque con algunas tecnologías hay un costo kiloByte transmitido(3G por ejemplo), si no también por qué por cada segundo adicional que estamos transmitiendo, estamos consumiendo energía. A modo de referencia, en un proyecto logramos extender la duración de la batería en un 20% al reducir el tiempo de transmisión de 80 segundos a 40 segundos. Es bueno ver qué variables vas a transmitir y en qué formato vas a transmitirlas, ya sea binario o como texto.

También otro aspecto que es relevante es establecer el periodo de muestreo de los datos, lo cual va a depender probablemente del proceso, donde puede que sea necesario tomar muestras cada 1 ms, o bien puede bastar con tomar mediciones cada 1 hr. En este punto no hay mucho que hacer en términos de energía, dado que viene más dado por un requerimiento del sistema propuesto más que por un antojo (a menos que de verdad sea algo antojadizo el tomar mediciones cada 1ms, ante lo cual si hay que evaluar de mejor forma).

Donde sí hay que estar atentos es al establecer el periodo de envío de datos, y este sí que puede impactar notablemente el consumo del dispositivo IOT. Aquí hay que tener en cuenta tiempos de conexión, envíos de acknowledge, encabezados de los protocolos de comunicación y tamaño máximo de los paquetes. Cada uno de estos aspectos son relevantes para evaluar si es mejor enviar cada toma de muestra de las variables por separado, o es mejor, por ejemplo, juntar las muestras realizadas durante 1 hora y luego enviarlas.

Vale la pena mencionar también que, dependiendo de la tecnología que se utilice, la velocidad de transmisión va a variar, y por ende el tiempo de transmisión de acuerdo a la tecnología utilizada pasa a ser relevante al momento de dimensionar el consumo. De la misma forma, y en función de la arquitectura del sistema, es muy probable que se utilice un módulo externo al microcontrolador para realizar la transmisión misma, por lo que también hay que tener en cuenta el tiempo de comunicación entre el microcontrolador y el módulo de transmisión, el cual en algunos escenarios podría ser mayor que el tiempo de comunicación del módulo de transmisión con un servidor.

Fuente de alimentación

Un buen integrado para la alimentación nos llevo a una eficiencia sobre el 90% (dormido). Duración de la batería cercana a los 4 años, duplicando el requerimiento base.

Dependiendo de tu sistema, es posible que tengas que utilizar un regulador de voltaje para alimentar tanto los sensores como el microcontrolador. Para ello, es recomendable revisar la corriente que consumirá nuestro sistema estando activo, durmiendo, a qué voltaje estará operando, y cuál es el voltaje de entrada de mi sistema. Con esta información podemos evaluar y dimensionar si se va utilizar o no un regulador, y en caso de utilizarlo, ver si se utilizará un regulador switching o regulador pasivo. El camino correcto solo lo dirán los números, y en este punto es bueno revisar las herramientas que tienen los grandes como texas, analog y maxim. Todos cuentan con buscadores/aplicaciones-web que ayudan bastante en la búsqueda de componentes en función de los requerimientos de voltaje/corriente, facilitando la elección.

Finalmente, vale mencionar que también está la opción de ajustar el nivel de voltaje para reducir aún más el consumo, pero es una opción que va a depender de los componentes que se utilicen. También no está demás resaltar que dependiendo de los sensores que se utilicen y la sensibilidad de estos, puede ser necesario utilizar regulador pasivo y/o un regulador switching que permita un modo de poco ruido durante la medición de los sensores.

Componentes pasivos

No hay mucho que decir acá, más que “no hay que subestimar el consumo de los componentes pasivos”. Cuidado con valores de resistencia muy bajos en donde pueda circular mucha corriente, por qué posiblemente vamos a estar desperdiciando energía.

En la misma linea, si quieres abordar de una forma más radical, y siempre que no necesites que estas estén activas durante el 100% del tiempo, y sería des-energizando las resistencias mientras no estén en uso.

Cierre

En este equipo logramos una duración de 8 horas en operación. Dado el uso del dispositivo, no se necesitaron mayores mejoras en el consumo

Normalmente nos gustaría que la batería de nuestros dispositivo dure ojalá 20 años en operación, pero siempre los tiempos y costos nos ponen los pies en la tierra y nos llevan a priorizar las funcionalidades más importantes para nuestros clientes. Cada día intentamos mejorar, tratamos de utilizar herramientas open source, y en algunas oportunidades creamos pequeñas herramientas que en Zembia IoT nos facilitan la tarea a la hora de desarrollar proyectos, donde a veces una simple hoja de cálculo nos permite ver el impacto real que tiene el cambiar un componente, periodo de muestreo, o frecuencia de reloj. En algunas ocaciones nos damos cuenta que ya cumplimos con los requerimientos propuestos, y en otras nos muestra los verdaderos peces grandes.

Finalmente la idea es no perderse de los objetivos reales, ni desgastarse en puntos donde no se obtendrán mayores beneficios. Inca el diente donde valga la pena.

Agradecimientos a Rodolfo Redlich, Javier y Alejandro por revisar el post.

Fijo dejé algo en el tintero…¿En qué te fijas tú a la hora de reducir el consumo de energía al desarrollar un dispositivo IoT?

Zembia

Historias de tecnología, innovación y emprendimiento de los que rockeamos en Zembia

Thanks to Rodolfo Redlich.

Nicolas Celedon

Written by

Disfrutando mi estadia en zembia.cl e impulsando iot.zembia.cl

Zembia

Zembia

Historias de tecnología, innovación y emprendimiento de los que rockeamos en Zembia