Pic
shadow

Una de las facilidades que nos aporta Arduino es la comunicación con el PC, la forma más sencilla de hacerlo es conectando la placa al ordenador por USB y utilizando la consola de Serial que viene con el entorno de Arduino.

Vamos a hacer un sencillo circuito con el que usaremos la placa de Arduino para leer la información de varios sensores (de temperatura, de humedad y luz) y enviar la información a nuestro ordenador.

  • Protoboard Ampliar
    Esquema Ampliar

Este es el código que cargaremos en Arduino para leer los sensores y enviarlos al PC.

Nota: El sensor DHT11 también puede darnos la información sobre la temperatura, si queremos ahorrar en componentes y no nos importa la precisón de la lectura, se puede prescdindir del sensor LM35

De izquierda a derecha tenemos una resistencia LDR, que usaremos para medir el nivel de luz, un sensor LM35 para medir la temperatura y un DHT11 para medir el grado de humedad. Vamos a analizar cada uno de ellos por separado para verlos con más detalle:

La resistencia LDR

Una resistencia LDR es un componente cuya resistencia al paso de la corriente electrica varia en función de la luz que recibe. Si quieres saber más sobre este componente, puedes hacerlo en este tutorial que hemos prepardo

Vamos a montarla de tal forma que su resistencia sea proporcional a la cantidad de luz que recibe, es decir, cuanta más luz, mayor será la resistencia que oponga al paso de la corriente eléctrica, para ello la montaremos cómo vemos en la imagen, con una resistencia de 1KOhm para estabilizar su salida:

circuito

Cómo la salida que nos va a dar va a ser analógica, deberemos conectarla a una de las entradas analógicas de la placa de Arduino.

El sensor de temperatura LM35

El LM35 es un sensor de temperatura. Viene ya calibrado de fabrica y es capaz de tomar lecturas entre -55C y 150C.

Como vemos, el sensor consta solo de 3 patillas, dos de alimentación y otra que nos entrega la lectura tomada.Lo hace de forma lineal, cada grado qus sube la temperatura son 10mV más en esta salida.

Para más información sobre este sensor, existe un tutorial completo sobre él.

circuito

Cómo la salida de este sensor es analógica, deberá ir conectado a una entrada de Arduino que también lo sea.

Sensor de Humedad DHT11

Para este circuito vamos a utilizar un sensor de humedad del tipo DHT11 si bien es cierto que este tipo de sensores no son capaces de darnos mucha precisión en sus mediciones (No pueden darnos los datos con decimales) si que son muy fiables y sobre todo económicos.

Este sensor tiene cuatro patillas, dos son de alimentación, una no se usa y la otra nos dará la lectura. Esta necesita una resistencia de 10KOhm conectada a Vcc para dar unos resultados estables, el circuito es este:

circuito
El código

Para simplificar la lectura del sensor de humedad, utilizaremos la librería DHT, que esta disponible en nuestra sección de descargas.

	    //Llamamos a la libreria DHT  
    #include "DHT.h";   
    //Definimos a que pin esta conectado el sensor  
    #define DHTPIN 2;   
    //Definimos el modelo del sensor que vamos a utilizar (El DHT11)  
    #define DHTTYPE DHT11;   
    //Le pasamos a la libreria el modelo del sensor y el pin en el que esta.  
    DHT dht(DHTPIN, DHTTYPE);   
    //VARIABLES
    int lm35 = A1; //pin de conexion del sensor de temperatura
    int temperatura = 0; //variable para la temperatura  
    int ldr = A0; //indicamos el pin en el que esta la resistencia ldr
    int luz; //variable para el valor de luz leido
    int humedad; //variables para el nivel de humedad leida
    
    void setup() {  
        Serial.begin(9600); //Se inicia la comunicación serial  
        //iniciamos el sensor  de humedad
         dht.begin();   
        //indicamo el pin al que esta conectado el sensor de temp
         pinMode(lm35, INPUT); //declara pin del LM de entrada  
    }  
      
    void loop() {  
        //leemos la humedad;  
        humedad = dht.readHumidity();   
        // Leemos la resistencia ldr
        luz = analogRead(ldr); 
        /*Leemos el sensor y hacemos las operaciones necesarias 
		para pasarloa grados celsius */
        temperatura = (5.0 * analogRead(lm35)*100.0)/1023.0; 
        //Mandamos los datos por consola.   
        Serial.print("Humedad: ");  
        Serial.println(humedad);  
        Serial.print("Temperatura: ");  
        Serial.println(temperatura);  
        Serial.print("Luminosidad: ");  
        Serial.println(luz);
        Serial.println("-------------------");
        delay(5000); //Se espera 5 segundos para seguir leyendo datos  
    }  
	
Visualizar los datos

Una vez cargado el programa podremos ver las lecturas mediante la consola serial que viene con el IDE de Arduino, para ello hacemos clic sobre el boton correspondiente y tener la placa conectada por USB.

Ahora que sabemos lo básico, podemos complicarlo más, utilizando más sensores, utilizando la conexión para ordenar a la placa de Arduino lo que tiene que ver según lo que estamos viendo, creando una aplición en nuestro ordenador para que nos muestre los datos de forma más visual.. etc.