Boya Iridium con Arduino y GPS | Análisis de concepto y costes
En esta entrada vamos a analizar la viabilidad del proyecto ‘Boya Iridium con Arduino‘ y a definir los siguientes pasos a seguir. La idea es construir y programar una boya que sea arrastrada por la corriente por el océano Atlántico, y que periódicamente envíe lecturas de los sensores y su posición GSP vía módulo Iridium 9603. Recordad que en mitad del océano no hay cobertura de ningún tipo, y en este campo los módulos Iridium, con su red de satélites propia, garantizan una comunicación desde cualquier punto de la tierra. Todo programado con Arduino.
Indice ‘Boya Iridium con Arduino‘ | Proyecto Elcano:
- Introducción
- ⇒ Análisis preliminar de concepto y costes
- Diseño electrónica (esquemas y PCB)
- Montaje hardware (próximamente)
- Programación en Arduino (próximamente)
- Lanzamiento y seguimiento (próximamente)
Funcionamiento de ‘Boya Iridium con Arduino‘
A grandes rasgos, el funcionamiento del sistema que tengo pensado es el siguiente (preliminar):
- Cada 900ms: lectura de giroscopio para estimación del oleaje (duración estimada de la lectura 100ms).
- Cada 1h: obtener lecturas de GPS y guardarlas (duración estimada de la lectura 200 segundos ).
- Cada 8h: conectar el módulo Iridium y transmitir datos (duración estimada de la transmisión 300 segundos).
- El resto del tiempo el sistema permanece en modo bajo consumo.
A pesar de que pueda parecer demasiado hacer una lectura cada 900ms, esto da como resultado un 10% del tiempo activo, y un 90% del tiempo en modo bajo consumo aproximadamente.
Análisis preliminar de consumo energético
Para poder dimensionar la placa solar y las baterías, he realizado un análisis preliminar del consumo energético del sistema basándome en los datasheet de los componentes y en diferentes pruebas realizadas por mi:
- Arduino Nano: 15mA en funcionamiento, 90uA en modo ahorro de energía (se requieren modificaciones hardware para llegar a un consumo tan bajo, lo veremos en una entrada mas adelante).
- Módulo GPS: 45-55mA en funcionamiento. Lo voy a conectar/desconectar con un MOSFET cada vez que se vaya a utilizar, por lo que el consumo cuando no está en uso será de 0mA.
- Sensor MPU6050: unos 4.44mA en funcionamiento, 50uA en modo bajo consumo.
- Iridium 9603: hasta 500mA al conectar (durante 25s), y unos 80mA de media mientras transmite, según la hoja de datos del módulo. Lo voy a conectar/desconectar con un MOSFET cada vez que se vaya a utilizar, por lo que el consumo cuando no está en uso será de 0mA.
- Watchdog: 1.75mA continuamente.
He utilizado matlab para generar el perfil de consumo esperado durante un día. Como se ve en la siguiente figura, cada hora se activa el GPS y el consumo sube a unos 100mA durante 200s y cada 8h se activa el módulo Iridium, durante 5 minutos. Con estos datos, y sabiendo la capacidad de la batería, podemos calcular la energía que vamos consumiendo, y dibujar también a descarga de la batería :
En esta gráfica no tengo en cuenta la corriente de carga de la placa solar, ya que quiero ver cuanto duraría la carga en caso de no haber sol. Como se ve en la figura, en 24h de funcionamiento la capacidad habrá caído un 19%. La batería puede durar hasta 5 días sin un solo rayo de luz solar.
Si bien los picos de consumo del módulo Iridium pueden asustar en un principio, debido a que solo va a transmitir cada 8h y durante unos 5 minutos, su efecto sobre la descarga de la batería es muy bajo. De hecho, los 5 minutos en los que el módulo Iridium va a transmitir apenas tiene influencia en la media de consumo en 8h. En este caso, lo mas importante para reducir el consumo medio es reducir la corriente en el modo de bajo consumo, donde transcurrirá el 90% del tiempo.
Análisis de costes y lista de materiales
La siguiente tabla muestra todo el material necesario para el proyecto ‘Boya Iridium con Arduino | Proyecto Elcano’ con los precios de cada componente para comprar desde España. He evitado acudir a tiendas como ebay o aliexpress para este proyecto, ya que la calidad y la fiabilidad de los productos electrónicos que se ofertan (especialmente baterías y placas solares) deja mucho que desear.
Para un proyecto estacionario, donde es fácil reemplazar un componente que haya dejado de funcionar se puede recurrir a este tipo de páginas, pero en este caso, donde una vez dejado en el mar la reparación es imposible, he recurrido a paginas especializadas como RS o Farnell. No quiero que el proyecto se vaya al traste por que la batería que he comprado en ebay sea una falsificación (como me ha pasado recientemente en otro proyecto).
Como novedad, he decidido diseñar y enviar a fabricar toda la electrónica en formato PCB de fabricación profesional. Lo veremos en detalle en la próxima entrada.
Componente | Cantidad | Precio total |
Electrónica (fabricación PCB) | 2 | 27€ |
Componentes PCB | 1 | 60€ |
Rockblock 9603 (Iridium) | 1 | 209€ (249.99$) |
GPS EM-506 | 1 | 33.55€ (39.55$) |
Placa solar 1W | 1 | 10.81€ |
Caja IP67 Spelberg 20101201 | 1 | 32.2€ |
Lámina polietileno de alta densidad | 1 | 7€ |
PVC table cap | 1 | 3€ |
Otros componentes (cables, tuercas…) | 1 | 20€ |
TOTAL | – | 402€ |
Como veis, solo en material se van ya casi 410€, siendo el módulo Iridium 9603 el que se lleva gran parte del presupuesto. Además de esto, hay que pagar una cuota mensual de unos 15€ por utilizar el módulo Iridium, más un coste de 0.15€ por cada 50bytes transmitidos, y mi idea es hacer una transmisión cada 8h (3 al día), lo que equivale a 0.45€ diarios mientras dure el proyecto.
Coste unitario | Coste al año | |
Precio materiales | 402€ | 402€ |
Cuota mensual Iridium | 15€ | 180€ |
Coste transmisión al día | 0.45€ | 164€ |
TOTAL | – | 746€ |
Sumando esto al coste total, y asumiendo que la boya sobreviva un año en alta mar, el precio se dispara hasta los 800€ el primer año (materiales + 1 año de transmisiones).
Idea de montaje
La complejidad de este proyecto está en la boya en sí, que tiene que cumplir las siguientes características mínimas:
- Estanquidad: IP68 a ser posible. IP67 como mínimo.
- Tapa transparente para que el sol cargue la batería. Hay que asegurar que la tapa no se empañe debido a la humedad y disminuya o bloquee los rayos solares, condenando el proyecto desde le prime instante. Para ello utilizaré bolsitas anti-humedad, las típicas que viene dentro de las bolsas de ropa. La caja seleccionada es la siguiente:
He consultado con el fabricante del módulo Iridium si el material de la tapa (policarbonato transparente) es adecuado para facilitar la transmisión de datos, ya que hay ciertos materiales, como recubrimientos contra rayos UV, que pueden incluso hacer que no se pueda transmitir a través de ellos.
El fabricante ha dado el OK a este material.
- Hay que garantizar que la boya nunca va a volcar, la placa solar siempre tiene que apuntar hacia arriba. Para ello, me he basado en un proyecto similar y voy a utilizar estos soportes a tornillos (PVC Table Cap) con un tubo de PVC. Esto evita que la boya de la vuelta, y en caso de que lo haga, el peso del PVC hace que vuelva a su posición correcta. Sencillo, barato y fácil de hacer.
Para evitar atornillar el PVC Table Cap directamente sobre la caja (lo que haría que perdiera la IP67, creando un posible punto de entrada de agua), voy a utilizar una lámina de polietileno de alta densidad negro, material apto para estar en contacto con agua marina, utilizado entre otras cosas para hacer piraguas y boyas, que atornillare a 4 agujeros que ya tiene la caja. Después atornillaré el PVC Table Cap ahí.
- Robustez de montaje de todos los componentes. El montaje tiene que ser robusto y sin debilidades.
Desde el punto de vista de vista de los componentes electrónicos, he identificado los siguientes puntos destacables para el proyecto ‘Boya Iridium con Arduino‘, que he intentado aplicar lo mas estrictamente posible:
- Diseño simple y fiable. El diseño tiene que contar con el menor número de componentes posible y evitar que haya componentes que ante un error la boya que inutilizable. Por ejemplo, debido a que el módulo Iridium solo puede transmitir con el cielo despejado, se nos podría ocurrir utilizar un sensor de luz y transmitir solo cuando se detectara un nivel de luminosidad elevado (lo que indicaría que no hay nubes). ¿Qué sucedería si el sensor de luz deja de funcionar, y la salida se queda bloqueada a un nivel que indica que hay poca luz? Que la boya nunca transmitiría, porque creería que siempre está nublado. Conclusión: Acabamos de dejar inutilizable una boya de 500€ por que un sensor de luz de 0.2€ ha dejado de funcionar. Hay que evitar que coas así sucedan. Hay que simplificar los componentes y el funcionamiento al nivel mas básico posible.
- Modo bajo consumo. Debido a que el módulo Iridium solo va a transmitir cada 8h, es de vital importancia reducir el consumo lo máximo posible las restantes 7h y 55minutos. De hecho, los 5 minutos en los que el módulo Iridium va a transmitir.
- Watchog. Arduino no es una plataforma que esté diseñada para trabajar largos periodos de tiempo. Si dejáis una aplicación funcionando largas temporadas, la placa Arduino acabará quedándose atascado tarde o temprano. Si es una estación meteorológica que está en mi balcón, la puedo resetear fácilmente, pero si está en alta mar, nunca recuperaremos la boya. Para ello tenemos los watchdog, sistemas hardware o software que detectan cuando la placa Arduino se ha quedado frita y automáticamente la resetean. Para este proyecto voy a utilizar ambas soluciones. El watchdog hardware que voy a utilizar y que ya tengo en mis manos es una pequeña placa del fabricante Freetronics, que si no recibe un pulso cada 5 minutos, automáticamente hace un reset en Arduino a través del un pin. Así, si esta se queda bloqueada, no envía ningún impulso al watchdog, que tras 5 minutos hace un reset.
Aquí dejo una imagen del PCB del proyecto ‘Boya Iridium con Arduino‘, que veremos en detalle en la próxima entrada. Encima de este irá otro nivel con los componentes que necesiten vista al exterior a través de la tapa transparente: GPS, Placa solar, y módulo Iridium 9603:
Lugar de ‘lanzamiento’
Otro tema al que he estado dando vuelvas últimamente es donde dejar la boya. Evidentemente tiene que ser alguna zona que dé al Atlántico, y donde haya corriente hacia alta mar. Algunos lectores me han recomendado no dejarla en Galicia, ya que la corriente la arrastraría contra la península, y me recomendaban dejarlo en la costa norteamericana (imposible desplazarme hasta allí para eso).
Si algún usuario tiene conocimientos en este aspecto, que no dude en contactarme, lo agradeceré sinceramente (en comentarios o a dronedesdecero@gmail.com).
Finalmente, creo que me decantaré por la siguiente opción: en mi zona (País Vasco) hay mucho pescador que faenan por medio mundo. Había pensado contactar con alguna cofradía y pedirles que ellos mismo la dejaran en alta mar. A ver si hay suerte. Con algo de surte, la boya recorrerá parte del camino seguido por Juan Sebastian Elcano 😉
Ir a la siguiente entrada del proyecto Elcano:
- Introducción
- Análisis de concepto y costes
- ⇒ Diseño electrónica (esquemas y PCB)
- Montaje hardware (próximamente)
- Programación en Arduino (próximamente)
- Lanzamiento y seguimiento (próximamente)
Casi mil euros, yo tengo algo parecido por mucho menos.
Buenas,
Cualquier sugerencia es bien recibida 🙂
Algo parecido que pueda enviar info desde el medio del océano? Puedes iluminarnos? Gracias
Buenas Pep,
La única forma de hacerlo son los módulos Iridium… el la única forma de transmitir desde cualquier parte del globo.
Un saludo
Lo sé. Mi comentario iba dirigido a Dannides. Un saludo
Buenas noches.
Leyendo otra vez tu publicación sobre cómo construir un dron, de paso te doy las gracias por tu blog, vi que tenías un tercer proyecto en marcha, «La boya Iridium con Arduino», y que necesitas un poco de ayuda en cómo realizar el proyecto, y me acorde de que en esta pagina
https://thecavepearlproject.org/how-to-build-an-arduino-data-logger/
Explican cómo hacer un recogedor de datos marino o como lo llaman ellos «data-logger», y además tienen enlaces a otras páginas donde también hacen otro tipo de data-logger marinos.
Espero que te sirva de ayuda en tu proyecto.
Un saludo.
Buenas noches.
Cuando leas la pagina, que tiene su buen rato, y veas los enlaces adjuntos que hay en la pagina, veras que hay Data-Logger de muchos tipos, uno de los más sencillos, y que se puede parecer a tu proyecto es este.
http://float.berkeley.edu/
Espero que te sirva de ayuda en tu proyecto.
Un saludo.