Watimetro con Arduino


Realmente construir un watimetro no es demasiado  complejo cuando hablamos de corriente continua , por ejemplo pensando en una instalación fotovoltaica , pues basta  simplemente en recordar  la formula física de la  Potencia(P)   , la cual es el producto de la tensión instantánea(voltios) por la intensidad  (Amp ) , es decir  P = V x I ,  expresándose la unidad de potencia en  Watt o KW
Pero la potencia  en watios,  no expresa  ensimismo  potencia energética, por lo  que se recurre  al  producto de la potencia (vatios)  por el tiempo (en horas) , es  decir  E = P x t , expresándose  la unidad de energía que  todo conocemos como  vatios hora(Wh) o kilovatios hora (kWh).

Si unimos ambas formulas sustituyendo el valor de P obtenemos E =Px t= (V xI) x t , es decir  el producto de la tensión  e intensidad por el el tiempo

Precisamente pues de la ultima fórmula anterior queda claro que para medir la energía que necesitamos tres parámetros:

  1.  Tensión
  2.  Intensidad
  3.  Tiempo

Veamos pues como  obtener estas valores con un Arduino  para obtener en tiempo real en un display lcd  la potencia en kwh de un sistema en cc

En el siguiente  video podemos ver el proyecto funcionando, incluso enviando datos al IoT  con  Xively (esta opción ya no esta disponible para aficionados)

Medida de tensión

El voltaje se puede medir con la ayuda de un circuito divisor de tensión  formado  por dos resistencias iguales  . Como el  voltaje de entrada en cualquier pin analógico de ARDUINO esta limitado a 5V por se logica TTL , el  divisor de voltaje servirá para  que el voltaje de la salida de ella sea menor que 5V y no queme la electronica interior.

Por ejemplo para una batería  que se utilice para almacenar la energía de un  panel solar de  6v  y   5.5Ah  de capacidad , tendríamos que bajar la  tensión desde 6.5v a una tensión menor que 5V para no estropear el Arduino.

Si usamos R1 = 10k y R2 = 10K  nos da una corriente pequeña 6.5v/(10k+10K)=0,325mA .

Es cierto que se podrían  tomar valores de R1 y R2    inferiores, pero el problema es que cuando la resistencia es menor  mayor corriente  pasas  a través de ella generando como resultado gran cantidad de energía  disipada en forma de calor(recuerde  que P = I ^ 2R) . por tanto el valor de las resistencias  puede ser elegido diferente pero debe tenerse cuidado para reducir al mínimo la pérdida de energía a través de las resistencias.

El resultado de la tensión entre una de las resistencias y masa seria igual a R xI =10k  x 0.325mA=3.25v que es inferior a 5v y, tensión soportada sin problemas  para el pin analógico de  ARDUINO

Calibración de voltaje:

Cuando la batería está completamente cargada (6.5v) obtenemos una Vout = 3.25v y ese seria el valor  que iría al  convertidor analógico digital  de un puerto analógico  de  Arduino

Si tenemos que medir los 3.25v desde el divisor de tensión   obtendremos un valor aproximado de 696 en el monitor serial (  sample1 es el valor de ADC corresponde a 3.25v)  .

Precisamente con ese valor o tendremos que extrapolar  que 3.25v  es equivalente a 696,  1 es equivalente a 3.25/696=4.669mv    por lo que podemos usar  estas dos reglas:

Vout = (4.669 * sample1 ) / 1000 voltios
voltaje de la batería real = (2 * Vout) voltios

Con el siguiente código de Arduino  podemos obtener el valor de tensión:

/ / tomar 150 muestras de divisor de tensión con un intervalo de 2 segundos y medio samples data collected for(int i=0;i<150;i++)
{
sample1=sample1+analogRead(A2); //leer  el voltaje del circuito divisor
delay (2);
}
sample1=sample1/150;
voltage=4.669*2*sample1/1000;

Medición de intensidad

Para mediciones de intensidad  es típico usar una resistencia en serie  de poco  valor con la carga  y medir la diferencia de potencial entre los extremos   de esta  y luego calcular   la intensidad gracias a la la ley de ohm (I=V/R  ) donde como vemos   dividiríamos este valor por el valor en ohmios de la resistencia

El efecto Hall se basa en  la producción de una diferencia de potencial(el voltaje de Hall) a través de un conductor eléctrico, transversal a una corriente eléctrica en el conductor y un campo magnético perpendicular a la corriente.

Afortunadamente actualmente existen CI especializados  como   son  los   sensores de corriente basados en efecto Hall ACS 712

Existen comercialmente  sensores de la gama ACS712  para  diferentes  rangos de corrientes máximas , así que se debe escoger este  según su requisito,como por ejemplo para una corriente máxima de 20 A.

ACS712.png

En el  esquema vemos un LED como una carga ( aunque  la carga real sera diferente) .

Tambien vemos el  ACS 712 (soporta  20Amps DC)  ofreciendo una una salida analógica 100mV/A

Tambien es destacar la alimentación del Arduino  cuya salida alimenta a través de la placa de prototipos a la ACS712

La calibración  es muy sencilla :
La lectura analógica  produce un valor de 0-1023, equiparando a 0v a 5v analógico .Leer 1 = (5/1024) V = 4.89mv
Valor = (4,89 * valor analógico leído) / 1000 V,  pero según hojas de datos offset 2.5V (cero corriente obtendrá 2.5V del sensor de salida)
valor Actual = (valor 2.5) V
corriente en amp = valor real * 10

Código de ARDUINO:

/ / tomando 150 ejemplos de sensores con un intervalo de 2 segundos y luego media de los datos de las muestras recogidos
for (int i = 0; i < 150; i ++)
{
+= sample2 analogRead(A3);  //  leer la corriente de sensor
delay(2);
}
sample2 = sample2/150;
=(5.0*sample2)/1024.0; 
actualval = val-2.5;  //tensión de offset es 2.5v
amperios = actualval * 10;

 Medición del tiempo

Para la medida del tiempo no se necesita ningún hardware externo, pues ARDUINO en sí mismo tiene contador de tiempo incorporado.

La función millis() devuelve el número de milisegundos desde que la placa Arduino comenzó a ejecutar el programa actual.

Código de ARDUINO:

long milisec = millis();  // calcular el tiempo en milisegundos
long time=milisec/1000; // convertir de milisegundos a segundos

 Calculo de la potencia y energía

Estas son las formulas basicas empleadas por el fw  en Arduino:
  • totamps = totamps + amperios;  //calcular amperios total
  • avgamps = totamps/tiempo;  // promedio de amps
  • amphr =(avgamps*time)/3600;  // Ah
  • Watts = voltaje * amperios;  //Potencia = Voltaje * corriente
  • energía =(watt*time)/3600;  // Vatios-seg vuelve a convertir en Watt-hora dividiendo 1hr(3600sec)
  •  energy=(watt*time)/(1000*3600); //para la lectura en kWh

completo.jpg

Todos los resultados se pueden visualizar en el monitor serial o mediante una pantalla LCD   de 16 x 2 caracteres para mostrar todos los resultados obtenidos en los pasos anteriores.

El conexionado del LCD sigue la conexión estandar de 4 pines para la linea de  datos mas las señales de control RS,RW  y Enable

Asimismo también es necesario un trimer de 10k  para el contraste de la pantalla

Resumidamente estas son pues las conexiones para el lcd

LCD -> Arduino
1. VSS -> GND de Arduino
2. VDD -> Arduino + 5v
3. VO -> Arduino GND pin + resistencia o potenciómetro
4. RS -> Arduino pin 8
5. RW -> Arduino pin 7
6. E -> pin Arduino 6
7. D0 -> Arduino – no conectado
8. D1 -> Arduino – no conectado
9. D2 -> Arduino – no conectado
10. D3 -> Arduino – no conectado
11. D4 -> Arduino pin 5
12. D5 -> Arduino pin 4
13. D6 -> Arduino pin 3
14. D7 -> pin Arduino 2
15. A -> Pin 13 de Arduino + resistencia (potencia de luz de fondo)
16. K -> Arduino GND (tierra de luz de fondo)

A continuación este es el  código de ejemplo para sacar por el monitor serie  los valores calculados

Serial.Print («tensión:»);
Serial.print(voltage);
Serial.println(«Volt»);
Serial.print («actual:»);
Serial.print(amps);
Serial.println(«Amps»);
Serial.print («potencia:»);
Serial.print(watt);
Serial.println(«Watt»);
Serial.print («energía consumida:»);
Serial.print(energy);
Serial.println(«Watt-Hour»);
Serial.println(«»);  //imprimir los siguiente conjuntos de parámetro después de una línea e
delay(2000);
Para manejar el  LCD tiene que primero importar la biblioteca de «LiquidCrystal» en el código.
A continuación este es el  código de ejemplo para sacar por el display  lcd  los valores calculados:

lcd (8, 7, 6, 5, 4, 3, 2);
luz int = 9;
void setup()
{
pinMode (luz de fondo, salida); //set pin 9 como salida
analogWrite (contraluz, 150); //controls la intensidad de luz 0-254
lcd.begin(16,2); / / columnas, filas. tamaño de pantalla
LCD.Clear(); claro la pantalla
}
void loop()
{
lcd.setCursor(16,1); / / establecer el cursor fuera de la cuenta de pantalla
lcd.print(«»); imprimir carácter vacío
delay(600);
impresión de potencia y energía que un LCD / / /
lcd.setCursor(1,0); coloca el cursor en la columna 1 y fila 1

LCD.Print(Watt);
lcd.print («W»);
lcd.print(voltage);
lcd.print(«V»);
lcd.setCursor(1,1); coloca el cursor en la fila 1 columna y 2 º
lcd.print(energy);
lcd.print («WH»);
lcd.print(amps);
lcd.print(«A»);
}

 

Componentes

A continuación por ultimo algunos de los componentes necesarios para llevar a cabo este circuito:

 

1. ARDUINO UNO  (unos 9€ en Amazon)


3. Display LCD de 16 x 2 caracteres LCD (en Amazon con I2C  menos de 5€ )

4. ACS 712 SENSOR de corriente .Rango de corriente: 30A; Tamano: 31 x 13mm / 1.2 «x 0.5» (L * W) ( en Amazon unos 2€ )


Varios : resistencias de 10k v2,resistencia de 330ohm, POTENCIÓMETRO de 10K ,cables puente , placa de prototipos,etc

 

Pulsera refigeradora inteligente


Desde  Bangladesh,   un  estudiante de programación   y robótica llamado  Abtahee nos enseña  como construir una pulsera refrigerante  o calefactora basada una vez en una célula Peltier ,y que como aspecto destacable , es controlable desde una app que el propio autor ha creado.
Puede parecer extraño  que desde  una pulsera «normal» se pueda cambiar su sensación térmica y reemplazar el aire acondicionado o calefacción de habitaciones pero ,lo cierto es que es  un hecho científicamente demostrado que     basta  calentar o enfriar sólo la zona de la muñeca   para simular un ambiente térmico  que haga que se sienta más fresco en verano o  se este  caliente en invierno simplemente aplicando frio o calor  solo en  la muñeca

Hablamos  pues de un sistema asequible que teóricamente  podría sustituir  equipos de aire acondicionado destacando el  bajo consumo y su gran portabilidad.

Aunque la pulsera  solo puede enfriar o calentar una pequeña zona del cuerpo, es absolutamente eficaz( incluso según su autor   podría decirse  que  no menos de un aire acondicionado o un calefactor)  consumiendo no más de 2,5 vatios.

Después de usar este sistema  se empieza a sentir fresco dentro de muy poco tiempo ,tanto que incluso si el clima es muy caliente se siente una suave brisa que fluye constantemente hacia el poseedor de la pulsera

El autor ademas comenta que ha probado su diseño de  pulsera en más de 50 personas en condiciones de temperatura diferentes y todos ellos tuvieron respuesta positiva.

 

 

 

 

Hardware

Cambiar la temperatura del cuerpo es muy difícil y se necesita una gran cantidad de energía,por eso  con esta técnica de centrarnos en calentar o enfriar solo un parte del cuerpo (las muñecas  ) sólo necesitamos cambiar la sensación térmica  consumiendo en esa zona consumiendo por tanto  mucho menos energía.

¿Cómo enfriando o calentando una pequeña zona de su cuerpo puede enfriar su cuerpo entero? Pues en realidad no cambia la temperatura de su cuerpo como lo hace un equipo de  aire acondicionado o calefacción pues el trabajo de la pulsera es realmente «engañar» al cerebro con la percepción   

Si se mantiene la mano en agua fría, inmediatamente se siente frío por un tiempo,pero después de que su cerebro procese el cambio de temperatura repentino al rato  ya no sentirá frescor o por lo menos la sensación tan acusada así que en el caso de esta pulsera, si cambiamos  la temperatura cada segundo, su cerebro no puede hacer frente a la sensación de la temperatura y seguirá sintiendo frescor mientras se ponga la pulsera aprovechando  que  los sensores térmicos de la muñeca son más sensibles que otra parte del cuerpo

 

Veamos esto empíricamente mediante un gráfico donde en abscisas indicaremos el tiempo  trascurrido  y  en ordenadas la tasa de cambio de temperatura

grafico.png

 

Puede asumir que  refrescarse o calentar su cuerpo lo hace esta pulsera pero realmente no es así . Algo cambia la temperatura de su muñeca cada segundo como se representa en el gráfico anterior o que hace que su cerebro pare de sentir que la temperatura está cambiando de un ambiente más caliente o más frío. La temperatura aumenta durante 6 segundos y la pulsera se apaga cada segundo de modo  que el cambio continuo de la temperatura en la muñeca obliga a su cerebro a centrarse en la temperatura de su muñeca.

Así que las otras partes de su cuerpo no se sienten  la temperatura del ambiente tan fuertemente como en las muñecas: es por eso que si su muñeca está siendo calentada por la pulsera, usted se sentirá caliente y si la muñeca está siendo enfriada, usted se sentirá fresco por lo que exactamente cuando usted use una pulsera de este tipo, no sentirá la temperatura del ambiente sino la inducida parcialmente por el dispositivo, pero si la temperatura no cambiase, su cerebro se ajustará con la temperatura de la muñeca en un tiempo y nuevamente se comienza a sentir la misma aunque cambie la temperatura de su cuerpo en una tasa pequeña.

 

Bien   veamos ahora los compontes utilizados por este interesante proyecto:

1. Arduino UnoArduino Nano (esta ultima es una mejor opción que uno por ser de tamaño pequeño)                                                                                                        

2. Módulo del controlador Motor L298N/L293D.  pues cada pin en un Arduino puede manejar 40 mA así que conectar directamente la celula  peltier a un pin arduino destruirá la placa arduino.Una opción seria usar un driver basado en relé que consume menos energia y es mas barato pero al requerir refrigerar o enfriar  esto se consigue cambiando los hilos de alimentación  por lo se requiere una electronica mas avanzada como por ejemplo un driver de motor pasos a paso de potencia                                                                                                                   

3.Módulo compatible con Arduino  Bluetooth HC-06/HC-05

4. Sensor LM35 para medir la temperatura exterior                                                                                                                                                                                                                   

5. Módulo peltier (se usa tanto para calefacción y refrigeración.)                                                                                                                                                                 

6.Varios : Disipador de calor, Correas  de relojVelcro/reloj, cables de puente,Bateria  de más  5 voltios,Ledas azul y Led rojo (para indicar si el dispositivo de enfriamiento o calefacción,Pasta térmica y el disipador térmico completo

Montaje  célula  Peltier

Ahora es el turno para hacer la pulsera asi que en primer lugar  tendrá  que adjuntar la célula de  peltier con el disipador de calor así que tome el peltier y el disipador de calor.

Ponga pasta térmica en la parte posterior del disipador de calor y coloque el lado caliente de peltier con el disipador de calor como en la foto

Un aspecto  particularmente es colocar la cara correcta al radiador que como se ve es la zona no seriegrafiada .

Ahora para fijar la célula  peltier puede usar pegamento caliente como se muestra en la imagen.

peltier.PNG

Ahora tocaría fijar el radiador con la célula Peltier a una correa  para lo cual se puede tomar un cable grueso y el disipador de calor  usando un sistema similar al de un cuadro  para que cree dos  ganchos en forma de D en ambos lados del disipador de calor.

Ahora se puede  utilizar pegamento caliente para unir el cable con el disipador de calor más fuertemente y  para que el cable no salga de la pulsera.

Puede  tomar la correa de Aun viejo reloj  o correas de Velcro y fije los ganchos como las imágenes mediante el uso de pegamento caliente.

pulseras.PNG

Ahora la pulsera está lista. Se puede diseñar mediante el uso de pegamento caliente en la parte superior del disipador de calor para que se vea más atractivo.

Diagrama del circuito, código y aplicación

El circuito usado para controlar la célula de Peltier  es relativamente sencillo pues realmente hay un modulo bluetooth   que invierte TX x RX   y Rx xTX    adema de alimentarse de la propia placa

  •  Arduino 3.3V >> módulo Bluetooth VCC
  •  Arduino Tx >> Bluetooth módulo Rx
  •  Arduino Rx >> Bluetooth módulo Tx
  • Arduino GND >> Masa modulo Bluetooth

Ademas tenemos dos leds   conectando el cátodo  del  Led azul al pin  Pin 10  y al  cátodo del led  rojo al pin 11 .

El sensor de temperatura usado  utiliza tres pines  porque se puede alimentar el Peltier  de un modo  y entonces ofrecerá frio por la cara no serigrafiada  y si se invierte la alimentación  también se invierte el efecto térmico

  • Arduino Pin A1 >> Vout del sensor LM35
  • GND >>GND del LM35
  • Vcc>>5v delLM35

Para la placa de potencia  usaremos dos conexiones :

  •  Arduino Pin 3 >> Motor Driver en 1
  •  Arduino Pin 5 >> controlador de Motor en 2
  • Arduino GND >> Masa modulo driver

Lógicamente de la salida de la placa aumentaremos el modulo de Peltier

Por  ultimo concluimos con una batería  y un interruptor general para apagar o encender todo el dispositivo

esqeuma.png

 

Resumidamente las conexiones son pues las siguientes:

  •  Arduino Vin >> Motor Driver VCC y la batería.
  •  Arduino 5V >> Vin del sensor LM35
  •  Arduino 3.3V >> módulo Bluetooth VCC
  •  Arduino Tx >> Bluetooth módulo Rx
  •  Arduino Rx >> Bluetooth módulo Tx
  •  Arduino Pin 3 >> Motor Driver en 1
  •  Arduino Pin 5 >> controlador de Motor en 2
  • Arduino Pin 10 >> Led Blue(+)
  • Arduino Pin 11 >> Led 7.Polarized
  • Arduino Pin A1 >> Vout del sensor LM35
  • Todos los componentes del suelo >> Battery(-)
  • Motor Driver Out1 >> Peltier (cable rojo)
  • Motor Driver Out2 >> Peltier (alambre negro)

El código   usado  los puede  descargar desde Instructables.com

[Nota: pin Tx y Rx del módulo bt no debería conectarse a arduino mientras se cargan el código.]

Ahora es necesario poner todos los componentes en una caja. Utilice una caja que se puede poner fácilmente en su bolsillo.

La caja debe tener suficiente espacio para guardar todos los componentes  y los mas pequeña posible  para contener  el arduino y otros componentes dentro de la caja.  Puede  hacer un área separada para la batería  o ponerla aparte . Es interesante  que el indicador led  y el sensor de temperatura debe estar fuera de la caja. Los cables conectados con la peltier deben ser lo suficientemente largos que pueden mantener la caja en su bolsillo mientras que usa la pulsera en su mano.

 

App movil

pantalla.PNG

Se puede descargar e instalar la aplicación que ha diseñado el autor también desde instructables.com:

Active la conectividad bluetooth en su teléfono inteligente y encienda el dispositivo . Ahora abra la aplicación y pulse el botón conectar y emparejelo  con el módulo bluetooth HC-06/HC-05.

La aplicacion  dispone de tres modos:

  • Auto Control:Si usted activa control automático pulsando el botón de auto control, la pulsera será calentar o enfriar te según la temperatura del ambiente. El dispositivo tiene un sensor de temperatura que mide la temperatura del ambiente. La temperatura se mostrará en su smartphone cuando se conecta el dispositivo con tu smartphone. Si la temperatura es superior a 28° C, enfriará y si la temperatura es inferior a 25° C, calentará. La velocidad de enfriamiento y la tasa de calentamiento depende de la temperatura se muestra en el gráfico anterior.
  • Modo manual :Cuando no se siente satisfecho con el modo automático, se puede ir a través del modo manual usando los controles deslizantes para enfriar o calentar te según tus. Puede utilizar el modo después de trabajo físico o gimnasio para relajarse le para arriba. La temperatura del ambiente no importa si usas el modo manual.
  • Modo de agua e:Si desea bañarse en agua fría o estanques, puede activar el modo de agua caliente te y esperar 4-5 minutos y usted sentirá el agua 1-2 grados más calientes que antes. Pero no funcionará efectivamente cuando el agua es demasiado fría. Pero en caso de enfriamiento o de calefacción, la pulsera funciona como encanto.

Si se utiliza el modo manual, no define la pulsera demasiado caliente o frío así que debe establecer la posición del control deslizante según sus preferencias

Fuente: instructables.com