Una vez fijados nuestros objetivos vamos a seleccionar las tecnologías adecuadas para cumplirlos. Esta es una labor de investigación en la que estudias pros y contras de muchas tecnologías. No es mi objetivo hacer una comparativa en este post, sino explicaros los componentes y las tecnologías elegidos y los motivos. Es posible que alguna de las personas que lea este artículo piense que me he equivocado en alguna elección, posiblemente sea así.
Alimentación
Tiene sentido que tratándose de un proyecto da bajo consumo la alimentación sea uno de los elementos claves, los requerimientos son: una gran densidad de energía por volumen, formatos conocidos, no es necesario que sea recargable y no quiero dedicar muchos recursos a adaptar la fuente a la tensión necesaria para alimentar el circuito. Sobre esto último he de decir que es especialmente importante, si el circuito debe de estar alimentado a 3,3V y la fuente es de 5V (por poner un ejemplo) debemos de dedicar recursos a adaptarla, generalmente son consumidores de espacio, de dinero y de energía.
Después de hacer un poco de investigación para mi la decisión está clara, las baterías de Litio Cloruro de tionilo (Li-SOCl2).
Ventajas:
- Alta densidad energética
- Excelente fiabilidad
- Amplio rango de temperatura
- Tensión estable
- Tensión de salida elevada
- Autodescarga débil
- Larga vida útil
- Excelente capacidad nominal
- Fiabilidad
- Alta resistencia en entornos húmedos
- Excelente seguridad de uso
Desventajas:
- Con respecto a las pilas normales el precio, aunque se pueden encontrar baterías de 2,6 AH por unos 8€.
Microprocesador
Si, si, ya se que con un Atmel 328p se pueden conseguir consumos en deep sleep de un par de microamperios (o eso dicen), pero mi decisión es hacerlo basándome en el ESP8266 12-e aunque el consumo en deep-sleep sea de unos 20 uA. Como os explicaré más adelante parece que el consumo en deep-sleep del procesador es uno de los datos fundamentales para hacer un dispositivo de ultra bajo consumo, pero la elección del ESP8266 para mi tiene muchas ventajas:
- Es un dispositivo compacto, potente y barato.
- Hay mucha documentación en Internet y es un entorno que conozco.
- Incorpora toda la circuitería, es posible hacerlo funcionar con solo unos pocos componentes adicionales.
- Incorpora WiFi, aunque no es mi intención hacerlo funcionar con WiFi me proporciona un medio para configurar el dispositivo y actualizar sin tener que desmontar o utilizar cables y conectores.
Desventajas:
- El consumo en deep-sleep es un poco más alto del que sería deseable.
Sobre la desventajas he de decir que el consumo en deep-sleep parece un dato significativo, pero no lo es tanto. Más adelante publicaré un artículo sobre las matemáticas del deep sleep, pero a grosso modo diré que un año de deep-sleep consume 175 mAH, por lo que una batería de 2600mAh nos da para 15 años de deep-sleep, como queremos hacer un dispositivo con una duración de batería de 5 años ya me parece adecuada la proporción de 1/3 de la energía para el deep-sleep y 2/3 para los trabajos de leer los sensores y de hacer los envíos. En realidad con un micro que consumiera la mitad en deep-sleep conseguiríamos solo un 20% menos de consumo, posiblemente tenga sentido leer con menos frecuencia o optimizar el código para que tarde menos,
Comunicaciones
Está claro que tienen que ser inalámbricas, de largo alcance y de bajo consumo y eso limita enormemente (y facilita) la elección de la tecnología. Básicamente nos quedan Sigfox y Lora. Sigfox es una compañía privada que ha hecho un despliegue y que cobra una suscripción por dispositivo conectado a su red y Lora es libre, utiliza frecuencias públicas y está bastante documentada. Además Lora cuenat con una red pública The Things Networks (TTN) que está construida a partir de gateways que la gente comparte, se me antoja interesante poder utilizarlos en algunos casos y desplegarlos y compartirlos en otros casos. Además de ser una red aparentemente segura la integración desde sus servidores MQTT parece sencilla.
Sensores
Para los sensores conservaremos y aprovecharemos lo que ya estábamos usando, los sensores de ultrasonidos HC-SR04-V2, la ventaja es su precio. He de decir que la coletilla «V2» es especialmente importante, funcionan a 3,3V aunque son mucho más difíciles de conseguir.
Soy consciente de que son sensores baratos de no mucha precisión y que no incorporan funciones de Sleep. Lo de la precisión (si nos quedan GPIOS libres en el micro) lo resolveremos poniendo un sensor de temperatura y haciendo los ajustes en las lecturas, inrpoporando un filtro median en el software y haciendo unos deflectores que enfoquen las ondas de los ultrasonidos. Lo de que no haya modos sleep lo resolveremos encendiedolo desde un GPIO solo cuando sea necesario.