07 diciembre 2015

KIT Transmisor Inalambrico Programable de Temperatura y Humedad

¡Hola a todos! Desde hace días que queríamos presentar un pequeño KIT que resultara fácil de armar para experimentar con radio-frecuencia. Así que aprovechando que estos días baja un poco la temperatura se nos ocurrió que podría ser divertido contar con un medidor de temperatura y humedad inalambrico y reprogramable que pudieramos dejar fuera de la casa para no tener que estar saliendo a revisar como lo mostramos en este video:



Así que en esta entrada te mostraremos como montarlo y su utilización básica. ¡Comencemos!

Parte I - Ensamblando el KIT


Para armar exitosamente el KIT debes de poder realizar las siguientes tareas de forma correcta:
  • Soldadura básica de componentes.
  • Carga de Sketchs en Arduino.
  • Armado de circuitos eléctrónicos basicos.
Una vez recibas tu KIT asegurate de que incluya los siguientes componentes:
  1. PCB de expansión para el ATtiny85 de TeUbi.co.
  2. ATtiny85 pre-grabado.
  3. Sensor de temperatura y humedad DHT11.
  4. Transmisor RF de 433Mhz.
  5. Receptor RF de 433Mhz
  6. Par de antenas (alambre) de 17.3cm de longitud.
  7. Tira de pines para soldar macho a 90°.
  8. Tira de pines para soldar hembra.
  9. Base para integrado de 8 pines.
 Te recomendamos tener a la mano las siguientes herramientas:
  • Pinza de punta curvada.
  • Pinza cortadora o perica.
  • Cautín.
  • Estaño con centro de resina.*
Puedes utilizar estaño sin centro de resina pero deberás asegurarte de poner pasta para soldar para que se te facilite la soldadura. Una vez tengas a la mano los componentes debes soldarlos en el siguiente orden:
  • Corta dos pines para soldar macho a 90° con la pinza cortadora y sueldalos en la posición indicada como +/--



  • Corta cuatro pines para soldar macho a 90° con la pinza cortadora y sueldalos en las posiciones PB2-PB4.

  • Suelda la base para integrado de 8 pines. Verifica que la muesca coincida con la marcada en la tableta.




  • Corta tres pines para soldar hembra con la pinza cortadora. Perderás un pin en el proceso, para que quede más estético puedes lijar un poco los bordes. Suéldalos en la posición RF_TRANS.


  • Corta cuatro pines para soldar hembra con la pinza cortadora. Perderás un pin en el proceso, para que quede más estético puedes lijar un poco los bordes. Suéldalos en la posición DHT11.
 

  • Toma una de las antenas enrolladas y suéldala en el transmisor RF en el pin marcado como ANT.


  • Toma la antena enrollada restante y suéldala en el receptor RF en el pin marcado como ANT.


  • Coloca el ATtiny85. Observa que en la parte superior tiene un pequeño circulo que indica el pin #1. Asegurate de que este quede al mismo lado de la muesca de la base. Verifica dos veces que esté en la posición correcta, si lo pones al revéz podría dañarse de manera permanente al colocar la alimentación.

  • Endereza con la pinza los pines del transmisor RF y colocalos en el conector RF_TRANS, asegurate de que los pines coincidan con los marcados en la PCB.
  • Dobla los pines del DHT11 e insertalos en el conector. Recuerda que la parte de malla debe quedar viendo hacia arriba una vez la coloques en la base.

Una vez hayas terminado de soldar todos los componentes tendrás tu transmisor de temperatura y humedad programable casi listo para utilizar.

Parte II - Armando y cargando el Sketch en el Receptor


En el video mostramos la salida del sensor en una pantalla LCD, sin embargo no es necesario que tengas una pantalla externa para recibir los datos. En esta entrada vamos a realizar la configuración básica utilizando únicamente un Arduino UNO y el receptor.

Para poder leer los datos necesitas los siguientes componentes (No incluídos en el KIT):
  • Arduino UNO o compatible.
  • Breadboard.
  • Jumper M/M
  • Cable USB
  • Computadora 
Si quieres mostrar la temperatura y humedad en una LCD adicionalmente necesitarás los siguientes componentes (No incluídos en el KIT):
  • LCD 16x2
  • Potenciometro 10KOhm
Conecta el receptor RF como se muestra en el siguiente diagrama:





Si tienes una LCD puedes conectarla de la siguiente manera:

Si utilizas una LCD recuerda que debes de ajustar el contraste con el potenciometro para poder ver los textos.

Descarga la biblioteca RadioHead, descomprimelo y copia la carpeta extraída en "libraries" de tu carpeta de Sketchs de Arduino. Esta carpeta se encuentra normalmente en Mis Documentos.

Descarga el archivo de código fuente del siguiente vínculo:


Abre Arduino y abre el Sketch que se llama "RFTempReceiver" que se encuentra adentro de la carpeta Arduino.

Si quieres habilitar la salida a la LCD, quita el comentario de la línea:

//#define ENABLE_LCD

De tal manera que quede como se muestra:

#define ENABLE_LCD

Para finalizar carga tu Sketch en Arduino. Si utilizas una LCD en la pantalla se debería de mostrar "Esperando datos".

Parte III - Transmitiendo datos.


Por último para transmitir datos necesitas alimentar el transmisor. Este requiere de una alimentación de 5V. Si no tienes una fuente de 5V puedes utilizar 3 baterías AA en serie que te brindaran cerca de 4.5V con los que el transmisor funciona perfectamente.

También puedes utilizar 4 baterías AA en serie, solo que te advertimos que esto coloca el transmisor al límite del voltaje seguro de alimentación (6V) por lo que de utilizarse de forma permanente en esta configuración podría reducir la vida útil de los componentes.

Para hacer funcionar el transmisor solo tienes que conectar los pines +/- con el voltaje de la batería. Solo ten mucho cuidado de no invertir la polaridad de alimentación ya que podrías dañar de forma permanente los sensores y/o el micro-controlador.

Una vez hayas conectado la batería, desde Arduino seleciona la opción "Monitor Serie"  y cambia la velocidad del puerto a 9600baudios.

Si todo ha funcionado bien, deberás tener una salida como la siguiente:

TMP: 25
HUM: 55

Parte IV - Resolviendo problemas y preguntas frecuentes.


Problemas comunes:
  • El monitor serie no muestra nada:
    • Revisa que el receptor tenga voltaje (5V) y que la conexión entre el pin de datos y el PIN 11 del Arduino no haga falso contacto.
    • Revisa que el transmisor tenga voltaje (5V).
    • Revisa que las antenas estén completamente extendidas y que se encuentren lo más recto posible.
    • Asegurate de seleccionar el puerto COM correcto y de seleccionar el baud rate adecuado (9600bps).
    • Asegurate de haber cargado el Sketch correctamente.
  • El monitor serie muestra ERR TIMEOUT:
    • Revisa que el DHT11 haga contacto con la base. Si el problema persiste intenta doblar un poco las patas para que hagan mejor contacto dentro de la base.
  • El monitor serie muestra ERR CHKSUM:
    • Este es un error de comunicación entre el microcontrolador y el sensor DHT11 puede aparecer ocasionalmente pero no debería de ser permanente. Si el problema persiste podría indicar un error con el sensor.
  • El monitor serie muestra ERR BADPAK:
    • Este error indica que se ha recibido un paquete de datos en un formato incorrecto.
 Preguntas frecuentes:
  • ¿Cuál es la distancia máxima a la que puedo utilizar el transmisor?
    • En teoría algunos usuarios de los módulos RF de 433Mhz reportan haber obtenido distancias de hasta más de 40m. Sin embargo, esto ocurre solo en condiciones óptimas donde hay una línea vista clara entre el emisor y el receptor, se ha diseñado una antena para tal fin y no hay otras fuentes de ruido. En nuestras pruebas lo hemos hecho funcionar exitosamente en interiores hasta 3m (a través de muros) y en exteriores hasta unos 8m.
  • ¿El kit se puede dejar a la intemperie?
    • Este es un KIT de aprendizaje y no reemplaza un sensor meteorológico profesional. Si planeas instalarlo en exteriores te recomendamos protegerlo del cotacto directo con agua. Las estaciones metorológicas profesionales procuran que el sensor de temperatura/humedad se coloque a la sombra y que esté alejado de árboles o edificios que puedan impedir el flujo de aire hasta el sensor.
  • ¿Puedo re-utilizar el ATtiny85 en otros proyectos?
    • Sí, el KIT esta diseñado para que puedas re-utilizar todas las piezasy la tableta de expansión te da acceso a todos los pines del ATtiny85. Puedes seguir las instrucciones en esta página para re-grabar el sketch en el ATtiny85 haciendo uso de un Arduino UNO.
  • ¿Como puedo re-grabar el Sketch original del transmisor?
  • ¿Cuánto tiempo durará la batería del transmisor?
    • Esta es una pregunta un poco compleja ya que depende del tipo de batería y voltaje de trabajo. Pero asumamos que utilizamos 4 baterías alcalinas de tamaño AA de 1.5V con lo que el sistema trabaja a 6V. Para las baterías alcalinas la energía que son capaces de entregar varía en función de la corriente de descarga que apliquemos a la misma. Según hojas técnicas de los componentes utilizados el consumo de corriente del transmisor trabajando a 5V sería de aproximadamente 8mA del ATtiny85 + 2.5mA del DHT11 + 4mA del RF433Mhz, esto nos da un aproximado de consumo máximo de corriente de 14.5mA si nos vamos por lo seguro digamos que el consumo podría llegar a los 20mA. Si nos mantenemos con una corriente de descarga inferior a los 25mA según la hoja técnica cada batería AA podría entregar hasta 3000mAh, como son cuatro baterías en serie el paquete puede entregar teóricamente hasta 3000mAh si dividimos eso entre los 20mA encontramos que 3000mAh/20mA = 150h es decir aproximadamente 6.25 días.

Parte V - Créditos y más información


Este KIT y proyecto está inspirado por el trabajo de Erwan's Blog, puedes visitar su proyecto en la siguiente dirección: