Lectura de sensor de presión y temperatura DHT11 y salida por un LCD con Arduino

Estándar

En esta entrada vamos a hacer dos cosas, leer datos de un sensor DHT11 y luego sacarlos por un display LCD.

Para ello necesitamos aparte de Arduino, cables y alimentación:

  • Sensor DHT11, mide presión y temperatura

http://www.banggood.com/DHT11-Temperature-Relative-Humidity-Sensor-Module-For-Arduino-p-933153.html

IMG_20151220_111523

  • Display LCD con un conversor serie para facilitar el cableado, tengo uno parecido a este

https://www.sparkfun.com/products/10097

IMG_20151220_105008

Para manejar el display contamos con esta información:

https://www.sparkfun.com/tutorials/246

Básicamente tenemos que conectar alimentación, masa y un pin de transmisión de información que va al digital numero 2.

Vamos a usar el codigo de ejemplo de hola mundo y ver si funciona (ojo hay que descargarse la librería en el ordenador e importarla desde la opcion Librerías de arduino).

Para escribir hay que mandar un write con el código 254 seguido de un write con la posición en la que queremos escribir

pos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
line 1 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
line 2 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207

#include <SoftwareSerial.h>

// Attach the serial display’s RX line to digital pin 2
SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (unused))

void setup()
{
mySerial.begin(9600); // set up serial port for 9600 baud
delay(500); // wait for display to boot up
}

void loop()
{
mySerial.write(254); // move cursor to beginning of first line
mySerial.write(128);

mySerial.write(”                “); // clear display

mySerial.write(254); // move cursor to beginning of second line
mySerial.write(192);
mySerial.write(”                “); //clear second line

mySerial.write(254); // move cursor to beginning of first line
mySerial.write(128);

mySerial.write(“Hello, world!”);

mySerial.write(254); // move cursor to beginning of first line
mySerial.write(192);
mySerial.write(“Lo tengo!”);

while(1); // wait forever
}

IMG_20151220_111221
Con esto tenemos funcionando el LCD, vamos con el sensor.
http://www.robotshop.com/media/files/pdf/dht11.pdf

El sensor tiene 3 pines, alimentación, masa y un pin de datos.
Cuidado porque la placa a la que esta soldado el sensor puede confundirnos y no ser intuitiva la salida (yo casi lo quemo).

Aquí hay un par de tutoriales interesantes, de nuevo tenemos que copiar el archivo de Librería e importarlo para poder utilizarlos:

https://learn.adafruit.com/dht

http://arduino-info.wikispaces.com/DHT11-Humidity-TempSensor

El ejemplo es este y hemos usado el pin 3:

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include “DHT.h”

#define DHTPIN 3     // what digital pin we’re connected to
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println(“DHTxx test!”);

dht.begin();
}

void loop() {
// Wait a few seconds between measurements.
delay(2000);

// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds ‘old’ (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);

// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}

// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);

Serial.print(“Humidity: “);
Serial.print(h);
Serial.print(” %\t”);
Serial.print(“Temperature: “);
Serial.print(t);
Serial.print(” *C “);
Serial.print(f);
Serial.print(” *F\t”);
Serial.print(“Heat index: “);
Serial.print(hic);
Serial.print(” *C “);
Serial.print(hif);
Serial.println(” *F”);
}

Después de probar su funcionamiento vamos a integrar todo y sacar temperatura y humedad por el LCD:

IMG_20151220_123831
// Input from DHT11 output to LCD

#include “DHT.h”
#include “SoftwareSerial.h”

#define DHTPIN 3     // what digital pin we’re connected to
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
// Attach the serial display’s RX line to digital pin 2
SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (unused))

void setup() {
Serial.begin(9600);
Serial.println(“DHTxx test!”);

dht.begin();
mySerial.begin(9600); // set up serial port for 9600 baud
delay(500); // wait for display to boot up
}

void loop() {
// Wait a few seconds between measurements.
delay(2000);

//DTH11 sensor data input
float h = dht.readHumidity();
float t = dht.readTemperature();

//LCD data output
mySerial.write(254); // move cursor to beginning of first line
mySerial.write(128);
mySerial.write(”                “); // clear display

mySerial.write(254); // move cursor to beginning of second line
mySerial.write(192);
mySerial.write(”                “); //clear second line

mySerial.write(254); // move cursor to beginning of first line
mySerial.write(128);

//Conversion to string for humidity
mySerial.print (“H: “);
mySerial.print (h);
mySerial.print (” %”);

mySerial.write(254); // move cursor to beginning of first line
mySerial.write(192);

//Conversion to string for temperature
mySerial.print (“T: “);
mySerial.print (t);
mySerial.print (” C”);

}

Con esto esta abierta la puerta a leer desde cualquier sensor y sacar por un display.

Prueba de video fuente de alimentación

Estándar

Vamos a probar a meter vídeo en el blog, en este caso una prueba de la salida de la fuente de alimentación con un multímetro.

Según la documentación hace falta una cuenta Premium que no tengo.

https://en.support.wordpress.com/videos/

Vamos a meter un vídeo de la fuente de alimentación funcionando cargado en Google Drive como enlace.

Enlace solo:

https://drive.google.com/file/d/0B1VC3bBOt5lpQ2k5UG5aQXlKeTg/view?usp=sharing

Insertar un enlace desde la pantalla “añadir multimedia” da problemas, he probado con formato 3GP, que es el de cámara con la que tome el vídeo, MP4, MP4 que usa Youtube  y nada. De momento los vídeos tendrán que venir del Google Drive.

 

 

 

 

 

Kit de montaje de reloj digital

Estándar

Aprovechando que teníamos una fuente de alimentación lista me he decidido por este montaje de un reloj de 4 segmentos:

http://www.banggood.com/C51-4-Bits-Electronic-Clock-Electronic-Production-Suite-DIY-Kits-p-920198.html

Básicamente es la placa de un reloj digital junto con todos sus componentes, viene con unas instrucciones estupendas en chino pero se ve el circuito que es lo importante:

IMG_20150816_141203 IMG_20150816_141210

IMG_20130101_010116

A destacar el display de 4 segmentos y el circuito integrado AT89C2051-24PU que sirve para controlar el display.

http://www.atmel.com/Images/doc0368.pdf

Después de soldarlo me marco lo siguiente como lecciones aprendidas:

  • Antes de colocar el integrado hay que soldar su zócalo
  • Las pestañas del zócalo pueden dar problemas a la hora de colocar el integrado, en la foto se ve una pestaña cerrada ( 4 de abajo empezando por la izquierda). A veces es necesario recolocarlas con un destornillador.

IMG_20150816_181608

  • Para meter y sacar el integrado lo mas fácil es hacer palanca suavemente con un destornillador de palas.

Este es el resultado, y tras probar con la fuente de alimentación y metiendo 5V no funciona!!!

IMG_20150816_182306

Bueno, por el momento toca repasar soldaduras y cruzar los dedos para que el fallo no sea de algún componente.

IMG_20150816_181230

Actualización

Pues después de repasar las soldaduras el reloj ha empezado a funcionar!!

Viene con 2 interruptores los que aun no se usar pero vamos a probar (las instrucciones en chino no ayudan).

IMG_20150816_220233

El primero parece que activa funciones del chip controlador del display, si se deja pulsado va saliendo lo siguiente:

IMG_20150816_220842 IMG_20150816_220853

Desde esa posicion con el botón derecho se puede cambiar el estado, así podemos cambiar horas y minutos:

IMG_20150816_220902 IMG_20150816_220942

Si se pulsa el derecho una vez se activa un cronómetro desde cero:

IMG_20150816_221022 IMG_20150816_221030

Este reloj está bien como proyecto casero para soldar y aprender, la próxima intentaremos fabricar algo que nos de mas juego.

Kit de montaje de una fuente alimentación regulable (0-12V DC) con entrada a 220V AC

Estándar

Llevaba casi un año sin escribir, a ver si retomo el hobby y hago cosas interesantes…

En esta entrada tenemos un kit que compre recientemente para construir tu propia fuente de alimentación. Básicamente tenia curiosidad por construir una y había leído gente que usando un chip regulador LM317 habia modificado una fuente de alimentación de PC para hacer una fuente propia regulable. Por ejemplo la del enlace de abajo:

http://www.taringa.net/posts/hazlo-tu-mismo/17827934/Fuente-de-alimentacion-casera.html

Mientras buscaba información encontré este kit y me decidí a comprarlo!!!

http://www.banggood.com/EU-220V-DIY-LM317-Adjustable-Voltage-Power-Supply-Board-Kit-With-Case-p-973391.html

La ventaja/desventaja principal es que ya te vienen todos los componentes y no tienes que diseñar la solución; compras un diseño ya hecho y ahora solo queda fabricarlo.

IMG_20150409_164853 IMG_20150409_164859

Bueno, la primera en la frente porque la carcasa con la que vino no era correcta y aparte tenia un cable de alimentación tipo US en lugar del europeo a pesar de que el transformador era de 220V (y en US usan 110V)

IMG_20150410_101146IMG_20150410_114453

El servicio de atención al cliente me facilitó una caja nueva; no así el cable con conector europeo ya que venia en las especificaciones de la web al comprar el producto. Esto último lo solucionaremos con una ficha de empalme y un cable acabado en conector europeo.

Manos a la obra!!!

Material necesario:

  • Kit de fuente de alimentación
  • Soldador
  • Estaño
  • Alicates de corte
  • Retal de enchufe modelo europeo + ficha de empalme
  • Multímetro para pruebas

Escribo algunas cosas interesantes a recordar a la hora de soldar y fabricar la placa para tenerlo en cuenta para futuros proyectos. Igual digo cosas obvias pero han sido errores de los que puedo aprender:

  1. Hay que comenzar colocando los componentes mas cortos: resistencias y diodos; y progresivamente llegar hasta los mas grandes: LM317, condensadores grandes, display, etc… Esto nos facilitará la vida al ensamblar.
  2. Para soldar es importante asegurar que el soldador está caliente, poner la punta del soldador en la zona a soldar y colocar estaño cerca de la punta, no sobre ella. Existen un montón de tutoriales para hacerlo, por ejemplo este: https://www.youtube.com/watch?v=u7Vg3wmwZHg
  3. Después de soldar se procederá a cortar las patillas con los alicates de corte.
  4. En los diodos el cátodo (pata negativa) es la mas corta; ademas si es un diodo normal tiene una marca blanca en ese extremo. Hay que recordar que los diodos solo funcionan en un sentido y es fácil confundirse. Lo mejor es probar con un multímetro y si es un diodo LED mejor ya que al medir en la posición diodo del multímetro se encenderá
  5. En los condensadores electrolíticos (que tienen polaridad) pasa al igual que los diodos: la pata corta es el negativo y normalmente tienen una tira blanca en esa posición
  6. El kit viene con unas pinzas cocodrilo que hay que soldar en el extremo unos cables, hay que colocar los termoretráctiles antes de soldar los extremos.

Por último este es el resultado:

IMG_20150510_110924 IMG_20150510_122502

Aprovechamos el multímetro para hacer algunas pruebas que resultan satisfactorias ya que la tensión de salida coincide con la medida:

IMG_20150410_182649

Haciendo algunos experimentos más he sacado estos datos:

  • Tensión 0 – 13.6 V DC
  • Intensidad 450 mA

Hay un LED que se enciende cuando funciona la fuente, los otros 3 no tengo claro su funcionamiento.

Como conclusión: por unos 10-15 euros echas un par de tardes cacharreando y la fuente de alimentación funciona bien y es un equipamiento básico para un taller.

Bien, con esto ya se puede alimentar cualquier circuito que fabriquemos. Ahora para tener un taller en condiciones y cacharrear necesitaríamos un generador de onda y un osciloscopio…

Actualizacion y rooteo tablet Arnova 10b 3g dual touch

Estándar

Hace tiempo me regalaron una tablet de modelo Arnova 10b 3g dual touch y no le estaba dando mucho uso. Para ver videos y correos esta bien pero si quieres escribir algo la tablet no es lo mas optimo.

El tema es que estaba apuntado a una pagina web que ofrece cursos online de universidades de todo el mundo, esto permite unirte a una clase de algo que te guste y a la vez practicar oido en ingles porque la mayoria de los cursos estan en este idioma.

https://www.coursera.org/

Vi que habian sacado una app para tablet que permitia ver los videos de los cursos y desempolve la tablet para usarla.

Mi gozo en un pozo, la Arnova 10b no trae Google Store/Play sino una aplicacion llamada applib mas limitada que no tenia esa aplicacion; visto esto decidi informarme de como instalar google play y de paso rootearla.

(Nota: tambien se puede descargar la aplicacion que necesites en formato APK, grabarla en una SD e instalarla dandole doble click al archivo).

Para actualizar y rootear me base en la herramienta oficial que tiene Arnova para conectarte a la tablet, aqui estan los drivers de conexion y firmware oficial, hay que ir al modelo de tablet y ver la opcion “Restore” que explica el procedimiento.

http://arnovatech.com/support/updates_fwm.html

El firmware que rootea la tablet es una version de android 4.2.2 cyanogen sacada de aqui, se puede buscar un firmare mas moderlo.

http://www.arctablet.com/blog/forum/crewrktablets-rk2918-entwicklung-customroms-development-croms/rom-arnova-10b-g3-android-4-2-2-custom-firmware-crew-rktablets-loox-cm10-1-v1-21-with-root-and-google-play-store/

Para el procedimiento de carga use la herramienta de Arnova, si uso la de Arctablet el driver no me funciona.

Bien, ahora a instalarle todas las aplicaciones que quiera!!

Declaración de intenciones

Estándar

Buenas:

Siempre me ha llamado la atencion el tema de “cacharrear”, asi que he pensado crear este espacio para publicar las cosas que voy haciendo de electrónica y redes, y que de paso me sirva de recordatorio.

Mis intereses ahora mismo van por el tema de la electronica: Raspberry Pi, Arduino, etc.

Hace poco me hice con un router wifi de viaje TP Link 703N, este router permite la carga de  firmware (Open Wrt) que te permite cambiar alguna funcionalidad. Esto es lo que he visto por internet que se puede hacer:

Genérico del router e ideas varias para hacer:

http://wiki.openwrt.org/toh/tp-link/tl-wr703n (TP-Link TL-WR703N – OpenWrt Wiki)

Proyectos aparte (camara, RFID, etc):

http://shackspace.de/?p=3772 (Project minikrebs: Tiny TP-Link WiFi AP Goes Big with Webcam, NFC, USB/IP, Automagic Internets and Rick-Rolling » shackspace = der hackerspace in stuttgart)

http://shackspace.de/wiki/doku.php?id=project:minikrebs (Minikrebs [shackspace wiki])

Pirate box (router para compartir informacion, archivos y chat):

http://davidshamblin.com/building-a-piratebox-from-a-tp-link-wr703n-router/ (Building a PirateBox from a TP-Link WR703N Router | David Shamblin)

http://daviddarts.com/piratebox-diy-openwrt/ (PirateBox DIY – OpenWrt by David Darts)

http://forum.piratebox.cc/read.php?2,3820,4064#msg-4064 (OpenWRT Piratebox 0.5.1 with lighttpd)

http://piratebox.cc/faq (faq [ PIRATEBOX])

Pineapple box (simulador de punto de acceso que responde afirmativamente a todas las peticiones):

http://penturalabs.wordpress.com/2013/04/25/blue-for-the-pineapple/ (Blue For The Pineapple …. | Pentura Labs’s Blog)

http://samiux.blogspot.com.es/2013/06/howto-tp-link-tl-wr1043nd-as-wifi.html (Samiux’s Blog: HOWTO : TP-Link TL-WR1043ND as WiFi Pineapple Made Easy)