Archivo de la etiqueta: controlador

Alimentar un proyecto con energía solar

Como parte de un proyecto de mayor alcance me propuse la medida de la temperatura y la humedad durante las 24 horas del día y enviar esos datos a una página web. Quería utilizar una fuente de energía limpia y renovable, siendo la más sencilla y extendida la energía solar.

El proyecto está finalizado y ya estoy enviando esos datos a intervalos de 15 minutos como se puede ver en las siguientes gráficas actualizadas:



Voy a dividir el artículo en dos secciones: la primera es la del hardware utilizado, tanto en el sistema de medición como en el sistema de alimentación; la segunda es el software utilizado.

Hardware

El sistema de medición está formado por:

  • Un ordenador C.H.I.P.: Este ordenador ARM de 9$ con una distribución linux basada en debian es ideal para el proyecto dado su bajo coste y sus características: puerto USB, pines GPIO y la posibilidad de conectarle una batería LiPo. Gestiona la alimentación (usb, chg-in o batería) a través de un chip AXP-209 incorporado a este.
  • Un dongle 3g: Se puede encontrar muy barato (20€ o  menos) y contiene una tarjeta SIM de freedompop para obtener acceso a internet gratuito.
  • Un sensor DHT22: Este sensor tiene diversidad de precios dependiendo de qué componentes traiga. Lee la temperatura y la humedad con un error máximo de 0,5Cº y 5% respectivamente.

El sistema de la alimentación está compuesto por:

  • Un UBEC: Es un regulador muy eficiente y cuesta unos 4$. Sirve para alimentar todo el sistema de medición proporcionando 5V constantes y permite hasta 3A.
  • Una batería de Litio-Ion: Esta es la batería principal de 11,1V y 5200mAh.  Su precio puede parecer elevado pero más adelante comento por qué, aunque hay alternativas más baratas.
  • Un panel solar rígido: De 12V y 25W de potencia por unos 38€.
  • Un controlador de carga solar: Este dispositivo, que cuesta unos 5$, alimenta el UBEC utilizando la batería principal (cuando no hay sol) o mediante el panel solar (cuando hay sol) al mismo tiempo que carga dicha batería. Esta versión funciona con baterías de Litio-Ion de 11,1V y permite una corriente de hasta 3A.
  • Una batería Lipo: Esta batería de 3,7V y 2000mAh por unos 13€ se conecta al ordenador C.H.I.P. para darle alimentación en caso de que la batería principal y el panel solar no pudieran hacerlo. Esto hace que el proyecto pueda funcionar más tiempo y que sabiendo su nivel de carga se pueda hacer una apagado ordenado.

El conjunto se guardará en una caja estanca de unos 9€ para evitar la entrada de polvo y líquidos de fuera, excepto el sensor DHT22 que irá en otra caja aparte.

En la caja principal se han hecho dos agujeros en los conos métricos, uno para sacar los dos cables que van al panel solar y otro para los tres cables que va al sensor DHT22. Hay que tener en cuenta que los cables se sacan desde el interior de la caja hacia afuera y no al revés para poder aislar mejor el conjunto de las condiciones climatológicas externas. Casi todos los elementos están sujetos por cinta de velcro para asegurarlos dentro de la cajas y también poderlos extraer con facilidad.

La otra caja tiene un agujero grande en el centro para que el sensor pueda medir la temperatura y humedad exterior y otros dos en el extremo donde salen los cables para poder drenar el posible agua que se introdujera, ya que esta caja estará puesta en vertical.

El procedimiento para conectar todo es el siguiente:

  • El dongle 3g al puerto USB del ordenador C.H.I.P.
  • La batería LiPo al conector correspondiente del ordenador C.H.I.P.
  • El cable amarillo del sensor DHT22 al pin 18 de la columna UT13 etiquetado como PWM0.
  • El cable rojo del sensor DHT22 al pin 5 de la columna UT13 etiquetado como VCC-3V3.
  • El cable negro del sensor DHT22 al pin 1 de la columna UT13 etiquetado como GND.
  • La batería principal y el regulador UBEC a los dos bornes centrales del controlador de carga respetando la polaridad (se encenderá la luz verde de “power” si tiene carga)
  • El panel solar a los dos bornes de la izquierda del controlador de carga respetando la polaridad (se encenderá la luz roja de “charge” si al panel le incide luz directamente)
  • El cable rojo de la salida del regulador UBEC al pin 2 de la columna UT13 etiquetado como CHG-IN.
  • El cable negro de la salida del regulador UBEC al pin 4 de la columna UT13 etiquetado como GND.

El panel solar debe estar orientado al sur si está situado en el hemisferio norte y viceversa. El ángulo de inclinación debe ser el mismo que la latitud geográfica en la que se encuentre, por ejemplo en Madrid son 40º de inclinación.

Para calcular el panel solar y la batería que he necesitado me he basado en los siguientes hechos:

El ordenador C.H.I.P. puede consumir unos 200mA, el dongle usb 3g consume unos 130mA (sólo se conecta cada 15 minutos), el sensor DHT22 consume unos 1,5 mA y el controlador de carga unos 6 mA . Con esto se tiene que cada hora consumirá alrededor de 340mA. En Madrid el peor de los casos es cuando sólo hay 10 horas de sol y 14 de oscuridad, que se produce a finales de noviembre y principios de diciembre; entonces 14h * 340mAh = 4760mAh, es decir, que se necesita una batería que al menos tenga una capacidad de 4760mAh para asegurarse que nuestro sistema de medición pueda funcionar cuando haya oscuridad. En mi caso tengo los 5200mAH de la batería principal más los 2000mAH de la batería conectada al C.H.I.P. por lo que hay más que suficiente. Aunque la batería conectada al C.H.I.P. consume 1000mA (además de los 340mA que comentaba) hasta que esté totalmente cargada, no lo he puesto para facilitar los cálculos y porque una vez cargada (una batería con capacidad de 2000 mAh se carga en 2 horas) ya no consume esos 1000mA el resto del tiempo.

En el caso del panel solar de 12V/25W se tiene hasta 2,08A cuando la luz del sol incide directamente en él sin nubes de por medio, por lo que 340mA se los proporciona al sistema de medición y el resto a la carga de la batería principal.

Finalmente ambas baterías las he comprado con garantías, es decir, en tiendas que son de fiar aunque el precio sea más caro, porque hay por ahí rondando muchas baterías que dicen tener una carga y luego ser otra de valor inferior con los problemas que ello puede ocasionar. También ambas tiene un circuito de protección contra sobrecarga, sobredescarga, sobrevoltaje, cortocircuito y además, en el caso de la batería principal, que permita el balanceo de carga de todas las celdas. Para la batería principal hay alternativas más baratas: puedes comprar 3 pares de pilas de litio del tipo 18650, dos portapilas de formato 18650 y dos circuitos de protección y balanceo.

En este mes y medio que lo he estado probando he llegado a las siguientes conclusiones:

  • En controlador de carga comprueba qué tiene más voltaje, si la batería principal o el panel solar. Si es la primera, no deja pasar la corriente desde el panel solar a la batería principal y entonces el sistema de medición sólo es alimentado por la batería principal; si es la segunda, entonces la batería se carga y el sistema de medición es alimentando a la vez por la energía que proporciona el panel solar.
  • Las baterías LiPo se cargan normalmente a 1C, por lo que el amperaje del panel solar nunca debe ser mayor que el de la batería, en mi caso 2,08A frente a 5,2A por lo que no hay problema.
  • Como el panel solar es de 25W, se puede dar el caso de que los días en los que el cielo está muy nuboso no pueda alimentar al conjunto con toda su potencia, rindiendo a veces tan solo un 10% de su potencia. Las baterías antes o después se descargarán y el conjunto estará sin funcionar durante horas o incluso días. Para evitar esto sólo sirve poner otro panel solar más potente, como de 100W para evitar el peor de los casos (10 horas de luz al día)
  • Si el ordenador C.H.I.P. está apagado y el chip axp209 detecta que por la entrada CHG-IN hay 5V y corriente suficiente para alimentarlo, entonces el axp209 enciende el ordenador C.H.I.P. Esto se produce cuando la batería principal está agotada y el panel solar proporciona la suficiente energía.

Software

Aunque el objetivo principal del artículo es mostrar cómo alimentar un circuito con un panel solar, voy a describir el software utilizado para el sistema de medición.

SISTEMA OPERATIVO

En el ordenador C.H.I.P. he instalado la versión 4.4 headless, porque ya contiene el módulo de kernel ppp y no hay que recompilar el kernel.

Para medir los valores del módulo DHT22 en el ordenador C.H.I.P. hay que instalar el módulo de kernel para el sensor DHT22 tal y como aparece en esta página.

Para poder realizar llamadas con el dongle 3g hay que instalar el paquete de wvdial:

Para poder leer el estado de la batería auxiliar en python hay que instalar el paquete pip para a continuación instalar la librería de axp209:

Para que el modo CD-ROM y lector de tarjetas del dongle 3g no moleste hay que acceder al puerto USB serie que se crea cuando se enchufa y ejecutar el comando AT:

En /etc/rc.local escribir lo siguiente:

Para la inicialización del DHT22 crear el fichero /home/chip/dht11.sh con el siguiente contenido:

En el fichero /etc/wvdial.conf

El programa de medida y envío de información se debe ejecutar cada 15 minutos. Crear el fichero /etc/cron.d/lectura_sensor con el siguiente contenido:

Finalmente crear el fichero /home/chip/lectura.py con el siguiente contenido:

Básicamente lo que hace el script en python es:

  • Comprobar si existe un dongle 3g, y si es así lanzar el programa wvdial para poder enviar los datos por internet.
  • Leer los valores de temperatura y humedad del DHT22 y el porcentaje de carga de la batería auxiliar (si este porcentaje fuese menor que 15 entonces se apaga el ordenador C.H.I.P. de una forma ordenada). Si hubiese algún problema se repite este proceso hasta 3 veces.
  • LLamar a la API de thingspeak para enviar los valores. Si hubiese algún problema se repite este proceso hasta 3 veces.
  • Cerrar el programa wvdial para desconectarse de internet.