Mini transmisor basado en Attiny85


En una reciente articulo  Indigod0g  describió una mini estación meteorológica que funciona bastante bien, usando dos Arduinos.  Tal vez no todos queramos sacrificar 2 Arduinos para obtener las lecturas de temperatura y humedad, así  que este post vamos a ver como hacer  hacer una función similar con de dos Attiny85  basándonos en la idea de  combinar  un interfaz de pantalla LCD de 2 hilos para Arduino o Attiny   aso como también ,como no, usando  el sw que permite recibir y enviar datos entre Attiny85 (1.06 IDE de Arduino)

 

Para implementar esta idea se ha optado por  una solución de lcd de dos hilos con un registro de cambio, en lugar de un LCD I2C porque en el Attiny el turno de registro es más fácil de implementar que el bus I2C. Sin embargo… si por ejemplo quiere leer un sensor de presión BMP180 o BMP085, necesita I2C para que de todos modos  funcione, así que puede usar un LCD I2C entonces también. TinyWireM es una buena biblioteca para I2C en un Attiny (aunque se requiere espacio adicional).

 

Los componentes usados son los  siguientes:

El transmisor:

  • DHT11
  • Attiny85
  • resistencia de 10 k
  • Módulo transmisor 433MHz

El receptor

  • Attiny85
  • resistencia de 10 k
  • Módulo receptor de 433 MHz

La pantalla

  • 74LS164 cambio de registro
  • 1N14148 diodo
  • resistencia de 2x1k
  • resistor variable 1x1k
  • una pantalla LCD 2 x 16

 

El transmisor 

En cuanto   al circuito  transmisor utiliza  una configuración muy básica de la Attiny85 con una  resistencia de 10 k en la línea de reset.

Un módulo transmisor de 433Mhz   está conectado al pin digital ‘0’ y el pin de datos DHT11 se conecta al pin digital 4.

Conecte un cable de 17,2 cm como antena.

Todo el conjunto lo podemos ver en el siguiente diagrama ( solo aparece la linea de datos del DHT11  de modo que se sobreentiende que se alimenta también el DHT11 con +5V)

 

dht11

El software empleado  es como sigue:

//will work on Attiny85/45
//RF433=D0 pin 5
//DHT11=D4 pin 3

// libraries
#include
#include
dht11 DHT11;
#define DHT11PIN 4
#define TX_PIN 0 //pin where your transmitter is connected
//variables
float h=0;
float t=0;
int transmit_t = 0;
int transmit_h = 0;
int transmit_data = 0;

void setup()
{
pinMode(1, INPUT);
man.setupTransmit(TX_PIN, MAN_1200);
}

void loop() {
int chk = DHT11.read(DHT11PIN);
h=DHT11.humidity;
t=DHT11.temperature;
// I know, I am using 3 integer variables here
// where I could be using 1
// but that is just so it is easier to follow
transmit_h=100* (int) h;
transmit_t=(int) t;
transmit_data=transmit_h+transmit_t;
man.transmit(transmit_data);
delay(500);
}

El software utiliza código de Manchester para enviar los datos. Se lee el DHT11 y almacena la temperatura y humedad en 2 float separados. Como el código de Manchester no envía los números  float, pero si un número entero, tenemos varias opciones:
1 -Dividir el float en dos enteros cada y enviarlos
2 – Enviar cada float como un entero
3 – Enviar los dos float  como un entero

Con la opción 1  necesitaríamos combinar los enteros en float en el receptor e identificar que entero es cada cual con  código .
Con la opción 2  aún es necesario identificar que entero es para la humedad y que para la temperatura. No podemos  ir por secuencia solo en caso de que un entero se pierde en la transmisión, así que tendríamos que enviar una identificación adjunta al entero.
Con la opción 3, podemos enviar un número entero. Obviamente esto hace un poco menos precisa – dentro de 1 grado – las lecturas y uno no se puede enviar por debajo de temperaturas bajo cero, pero es sólo un simple código y hay maneras alrededor de eso. Por ahora es sólo el principio.

Así que lo que hacemos  es que se convierta los float  en enteros y multiplicamos la humedad con 100. A continuación, añadimos la temperatura a la humedad y los multiplicamos.
Dado el hecho de que la humedad nunca será 100%,el número máximo admitido que conseguiremos es el  9900. Dado el hecho de que la temperatura también no será superior a 100 grados, el número máximo será de 99, por lo tanto, el número más alto que le enviaremos es el  9999 y es fácil de separar todo esto en el lado receptor.

Por supuesto este  cálculo en  que se  utilizan  3 enteros es algo  exagerado ya que fácilmente podría hacerse con 1 variable,  pero en realidad se ha escrito el código asi para que sea más fácil de seguir.

Todo el código anterior se compila ahora como un binario tamaño: 2.836 bytes (de un octeto 8.192 máximo) y así cabe en un 45 Attiny o 85

 

 El receptor 

tiny

 

Otra vez el Attiny85 se utiliza en una configuración básica con el pin Reset tirado de alta resistencia de 10 k. El módulo receptor está conectado a pin digital 1 (pin 6 del chip). La pantalla LCD se une a dos pines  digitales binarios . Conecte un cable de 17,2 cm como antena.

El código es como sigue:

#include
#include LiquidCrystal_SR lcd(0,2,TWO_WIRE);
#define RX_PIN 1 //= physical pin 6

void setup() {
lcd.begin(16,2);
lcd.home();
man.setupReceive(RX_PIN, MAN_1200);
man.beginReceive();
}

void loop() {
if (man.receiveComplete()) {
uint16_t m = man.getMessage();
man.beginReceive();
lcd.print(“Humid: “);
lcd.print(m/100);
lcd.setCursor(0,1);
lcd.print(“Temp “);
lcd.print(m%100);
}
}

El código es bastante simple: el entero transmitido es recibido y almacenado en una variable .
Se divide por 100 para la humedad y el modulo de 100 da la temperatura,por ejemplo supongamos que el entero recibido 3325
3325/100 = 33
3325% 100 = 25

 
Este código se compila como 3380 bytes y, por tanto, sólo puede utilizarse con un attiny85, no con un 45

 

Por ultimo para la pantalla de 16 x 2 común se  utiliza un shiftregister que puede funcionar con dos pines digitales. Por supuesto, si usted prefiere usar una pantalla lista I2C, también es posible, pero entonces necesitemos  implementar un protocolo I2C en el Attiny. El Protocolo de Tinywire puede hacer eso pero  necesita  usar un reloj de 1 Mhz.

Este diseño pues  demuestra  que se puede hacer una mini estación meteorológica con dos attiny85 de (incluso con una attiny85 + 1 attiny45).Es cierto  que sólo envía humedad y temperatura, utilizando un DHT11, pero sin embargo, el Attiny tiene 5 pines  digitales a utilizar, 6 incluso con algunos trucos, asi que es posible enviar datos demás sensores .

La limitación en el uso de un attiny85 como receptor es  relativa  en cuanto a  la presentación de los datos dado que la memoria es limitada: textos como ‘temperatura, humedad, luminosidad, se  acercán  a llenar el espacio valioso memoria bastante rápido.  Sin embargo, no hay razón para usar dos Arduino  al menos  para enviar y recibir la temperatura y la humedad.

Además, es posible llevar  el transmisor a estado sleep ( dormir) y sólo  despertarlo  para enviar datos cada 10 minutos y así alimentarlo  con una pila  de botón.
Obviamente, no sólo los datos de temperatura o humedad pueden enviarse  : también  uno puede tener una matriz de pequeños transmisores de envío así como las lecturas de humedad de suelo, o agregar un anemómetro o un medidor de lluvia  !solo hay limite en la imaginación de usted!

 

 

Fuente  aqui

Anuncios

Windows 10 gratuito justo el 29 de Julio


Hoy  ha saltado en prensa  la esperada fecha  del 29 de Julio  de 2015   en la que podremos disfrutar de la tan ansiada versión de Windows  10 en nuestros equipos con licencia de Windows 7,Windows 8  y Windows 8.1

Seis años después del lanzamiento de Windows 7, Microsoft convirtió su sistema operativo para PC en uno mucho más intuitivo y potente con características similares a las que llevan las tabletas y los smartphones.De hecho  muchas de esas funciones surgieron con Windows 8, pero no funciona a la perfección.Con Windows 10, Microsoft volvió a repensar su software para desarrollar un sistema operativo que resultara familiar para los usuarios de Windows 7, pero que no sacrificara características modernas.

 

El nuevo sistema operativo no sólo corrige los errores de Windows 8,pues  hay nuevas características que amarán los usuarios de este sistema:

  • La mejor novedad es Cortana, la versión de Siri de Windows 10, que aparece al lado del botón Inicio en la barra de tareas.Esta asistente virtual tiene sentido del humor,pero además de recibir comandos de voz y responder a consultas, la función de búsqueda es realmente útil.Realiza búsquedas en programas o apps, en la tienda de Windows, en Internet y en tus archivos para responder a las consultas. Es una manera rápida de abrir una app (sólo empiezas a escribir y pulsas ‘Enter’ y aparece inmediatamente la aplicación). Y al igual que la excepcional función de búsqueda de Windows 8, Cortana puede ayudarte a acceder a las configuraciones más ocultas con unos cuantos toques de teclado, lo que ahorra la molestia de ir al panel de control para ajustar las configuraciones.
  • Windows 10 también viene con múltiples ‘desktops’ o escritorios, lo que es útil para limpiar un espacio de trabajo desordenado.
  • Windows 10 tiene un menú de inicio, tal como Windows 7, pero mejorado. En la columna izquierda del menú de inicio o Start Menu, encontrará una lista de las aplicaciones más utilizadas, las carpetas más visitadas y el software añadido recientemente. También hay un botón que le mostrará todas sus aplicaciones en una sola lista.
  • En la columna derecha del menú de inicio, aparece una cuadrícula con los mosaicos de las aplicaciones que puedes organizar como más te guste. Los mosaicos “vivos” mostrarán las actualizaciones, como los últimos precios de las acciones bursátiles, la última película o episodio que estabas viendo en Netflix, actualizaciones de redes sociales, el clima, noticias y resultados

Como, según Microsft, la  actualización no va a estar disponible de forma gratuita de forma indefinida  ,nos recomiendan  reservemos nuestra versión  .A continuación se indica cómo hacerlo:

-Puede reservar la actualización gratuita mediante la aplicación Get Windows 10. Para encontrar la aplicación haga clic en el pequeño icono de Windows situado en el extremo derecho de la barra de tareas. Si no ve la aplicación, consulta la página de preguntas y respuestaspara obtener más información.
La esquina inferior derecha del escritorio con el icono de Windows desplegado-Haga clic en “Reserva tu actualización gratuita” en la ventana de la aplicación.

windows10
-Escriba su dirección de correo electrónico si desea recibir una confirmación de la reserva
windows10_1
-Y eso es todo: no le compromete a nada  e incluso  puede cancelar la reserva en cualquier momento. Cuando este disponible recibirá automáticamente una notificación cuando esté disponible para su instalación,  para que pueda programar la instalación cuando mejor le convenga.

-Llegado la fecha, si esta de acuerdo  empezara el  proceso de migracion. Una vez instalado, Windows 10 está a su disposición para que lo disfrute.

 

No pierda la  oportunidad: esta oferta gratuita no va a durar siempre. Reserve hoy mismo tu actualización si ya e usuario de Windows 7 o Windows 8? ¡le encantará Windows 10!

Mas informacion aqui