Arduino (IoT): Simple Tutorial Estación Ambiental: Solar Parte II

Remote Solar Charging Weather Station Arduino Santiapps

Arduino Honduras Santiapps Marcio Valenzuela

Tutorial Estación Ambiental Solar: Parte II

Ahora que tenemos nuestra fuente de poder podemos armar nuestra unidad de muestreo.  Esta se encargará de tomar las mediciones y por ende necesitará autonomía energética.  Aquí también veremos el uso de la librería LowPower, la cual nos ayudará a ahorrar energía mientras la unidad no este maestreando.  Es decir, la mayoría de las veces solo tenemos que muestrear 1 o 2 veces cada hora.  El resto del tiempo podemos reducir la cantidad de energía consumida ya que no es necesario alimentar todos los componentes.

Requisitos:

  1. Computadora (mac)
  2. Arduino UNO & Nano
  3. Battery LiPo
  4. Modulo Carga Solar USB-LiPo
  5. DC-DC Booster
  6. DHT11
  7. Modulo RF 433MHz(Rx/Tx)
  8. 2 Breadboards
  9. LCD 16×2
  10. Arduino IDE (https://www.arduino.cc/en/Main/Software)

En la edición anterior armamos nuestra Unidad de Carga.  Ahora veamos la Unidad que recopilará y enviará los datos muestreados.

Unidad de Muestreo:

  • Arduino UNO – Nano
  • DHT11
  • Tx RF de 433MHz para transmisión de datos

La Unidad de Muestreo estará a cargo de tomar las muestras y reportarlas via RF a la Unidad Central.  Esta es sencilla y podemos hacerla en una breadboard asi:

Arduino Tutorial Nano Transmision RF 433MHz DHT11 Santiapps Marcio Valenzuela
Arduino Tutorial Nano Transmision RF 433MHz DHT11

El código para muestra y transmitir llevará un bloque especial para ahorrar energía.  Usaremos una librería llamada el LowPower Library que esta disponible en GitHub:

GitHub

Se usa mas o menos asi:

#include “LowPower.h” // importar la libreria
int led = 13; // Para ilustrar
void setup() {
pinMode(led, OUTPUT);
}
void loop()  {
digitalWrite(led, HIGH); //Encendemos la LED
LowPower.powerDown(SLEEP_1S, ADC_OFF, BOD_OFF); // en lugar de delay(1000) ;
digitalWrite(led, LOW); //Apagamos la LED
LowPower.powerDown(SLEEP_1S, ADC_OFF, BOD_OFF); // en lugar de delay(1000) ;
}

Veamos el codigo de muestrear y transmitir los datos usando esta librería.  El muestreo se hace así:

[code]
// Envío de Datos y Dormir Modulo
#include <VirtualWire.h>
#include “LowPower.h”
#include “DHT.h”
#define DHTPIN 8 // Pin para el DHT11
#define DHTTYPE DHT11 // Objeto DHT 11
DHT dht(DHTPIN, DHTTYPE);
int ledPin = 13;
char Msg[30];// Para el string que enviaremos por el RF
void setup(){
dht.begin(); // initializar el DHT11
pinMode(ledPin,OUTPUT);
// VirtualWire
vw_setup(2000); // Bits por seg
vw_set_tx_pin(12);// Settear Tx pin. Default es 12
Serial.begin(19200);
}
void loop() {// Leer y almacenar data
int humidity = dht.readHumidity();
int temp = dht.readTemperature();
int f = dht.readTemperature(true);
int hi_f = dht.computeHeatIndex(f,humidity); //Indice calor en F
int heat_index =(hi_f-32)*5/9; // conversión a C
sprintf(Msg, “%d,%d,%d”, humidity,temp ,heat_index);
// Encender LED para mostrar Tx
digitalWrite(ledPin, HIGH);
delay(100);
Serial.print(“About to send message”);
vw_send((uint8_t *)Msg, strlen(Msg));
//print message
Serial.print(“The message is”);
Serial.print(Msg);
vw_wait_tx(); // Esperar hasta que todo el string se transmita
// Apagar luz después de transmision
digitalWrite(ledPin, LOW);
Serial.print(“Message sent!”);
// Dormir durante 5 minutos
// As low power library support maximum 8s ,we use for loop to take longer (5mins) sleep
// 5×60=300
//300/4=75
for(int i=0;i&lt;75;i++){
LowPower.powerDown(SLEEP_4S, ADC_OFF, BOD_OFF); // En lugar de delay(4000);
}
}[/code]

La unidad se ve así:

Arduino Tutorial Carga Solar RF Transmision de Datos Santiapps Marcio Valenzuela
Arduino Tutorial Carga Solar RF Transmisión de Datos

En la siguiente parte cubriremos la Rx y platicaremos sobre cubrir necesidades energéticas de nuestros módulos.

Arduino (IoT): Simple Tutorial Estación Ambiental: Solar Parte I

Remote Solar Charging Weather Station Arduino Santiapps

Arduino Honduras Santiapps Marcio Valenzuela

Tutorial Estación Ambiental Solar: Parte I

Tenemos ya varias ideas para proyectos.  En algunos casos estos proyectos necesitan autonomía energética.  El caso de una estación de monitoreo ambiental es el candidato perfecto para esto.  Es necesario que la operación continue y por lo general lejos de un tomacorriente.  Podríamos usar baterías alcalinas pero puede que solo dure 3 días dependiendo de la cantidad de funciones que tenga el robot.

Es aquí donde un paquete de baterías recargables funciona a la perfección.  Utilizaremos un panel solar para recargar esas baterías via un modulo de carga solar.  Tendremos que buscar un panel solar con ciertas especificaciones pero seguro lo podemos encontrar en alguna tienda solar como Facebook.com/NRGEA.

Requisitos:

  1. Computadora (mac)
  2. Arduino UNO & Nano
  3. Battery LiPo
  4. Modulo Carga Solar USB-LiPo
  5. DC-DC Booster
  6. DHT11
  7. Modulo RF 433MHz(Rx/Tx)
  8. 2 Breadboards
  9. LCD 16×2
  10. Arduino IDE (https://www.arduino.cc/en/Main/Software)

Estaremos usando el modulo USB LiPo para nuestro proyecto:

Arduino Simple Tutorial IoT Carga Solar Baterias Proyectos Autonomos Santiapps Marcio Valenzuela
Arduino Simple Tutorial IoT Carga Solar Baterias Proyectos Autonomos

Nuestro proyecto estará compuesto de:

  1. Unidad de Carga
  2. Unidad de Muestreo (Tx)
  3. Unidad Central (Rx)

Aquí vemos los siguientes componentes por unidad.

Unidad de Carga:

  • Booster de Potencia
  • Modulo de Carga Solar
  • Panel Solar con Diodo y con Bateria LiPo

Primero trabajaremos con la Unidad de Carga ya que es la más sencilla.  Necesitamos conectar el panel al modulo de carga a través de un diodo para proteger de cargas reversibles.  Luego conectamos el  modulo de carga a la bateria.  Finalmente a la bateria conectamos el booster para poder aprovechar mejor la carga.

Las conexiones basicamente se miran así antes de soldar:

Arduino Tutorial Carga Solar Santiapps Marcio Valenzuela
Arduino Tutorial Carga Solar

Aquí podemos ver a mano derecha la batería con sus dos cables listos para conectar.  El positivo esta conectado al modulo de carga (superior central) y el negativo también.  Esas mismas terminales del modulo de carga se conectan al booster (inferior central).  Luego el modulo de carga se conecta al panel solar con la particularidad del diodo en el cable positivo.

Con esta Unidad de Carga nos aseguramos que nuestra batería siempre este cargada para alimentar nuestra Unidad de Muestreo.

Las conexiones de esta unidad son del panel solar al modulo de carga y del modulo de carga a la batería y al booster.  Esto lo podemos ver aqui:

Arduino Tutorial Estación Ambiental Solar Santiapps Marcio Valenzuela
Arduino Tutorial Estación Ambiental Solar

A la izquierda vemos el panel solar con la batería LiPo debajo.  Tanto el panel solar como la batería se conectan al modulo de carga.

Luego vemos como el modulo de carga solar tiene 2 cables a la derecha que salen hacia el booster:

Arduino Tutorial Estación Ambiental Solar Santiapps Marcio Valenzuela
Arduino Tutorial Estación Ambiental Solar

Finalmente del booster a la breadboard de la unidad de Tx.

Esto dará poder al modulo de Tx – Unidad de Muestreo, la energía requerida siempre y cuando haya sol y si hemos calculado la producción solar vs el almacenamiento y consumo energético diario!

Nos vemos en la próxima edición para armar la Unidad de Muestreo.