Termometro con sensor DHT 11
Se enseñara como hacer un termómetro con un sensor dht11, el cual es un sensor de temperatura y humedad, pero en este caso solo se utilizara la medición de temperatura para elaborar el termómetro.
1.  Lo primero que se debe hacer es colocar los puentes en la protoboard para unir las filas de leds. (img 1)
2.  Una vez colocado los puentes se procede a conectar los leds en su debido espacio, se recuerda que la pata mas corta del led es la linea negativa y la larga su linea positiva. El primer puente es la linea negativa y el segundo la positiva por lo que colocaremos los leds siguiendo ese orden. (img 2, img 3)
3.  Seguido de conectar los leds se procede a conectar los siguientes puentes para después conectar las resistencias y corrientes. (img 4, img 5)
4.  Conectamos las resistencias de 330 ohms saliendo de la linea negativa de las protoboard las lineas negativas de los leds y conectamos un cable macho-hembra a la fila negativa de la protoboard. (img 6, img 7)
7. una vez conectados se conectaran los últimos 3 cables macho-hembra a cada entrada del sensor. (img 10)
    
Materiales para la elaboración
- 1 Raspberry pi 3 model B
- 32 puntes de corriente
- 32 leds
- 8 resistencias de 330 ohms
- 12 cables macho-hembra
- 1 sensor Dht-11
- 1 protoboard
Conexión a la protoboard
Primero se empezara conectando a la protoboard los componentes mas adelante se conectaran al raspberry pi 3 los diferentes cables.
|  | 
| img 1 | 
|  | 
| img 2 | 
|  | 
| img 3 | 
|  | 
| img 4 | 
|  | 
| img 5 | 
|  | 
| img 6 | 
|  | 
| img 7 | 
5.  Conectar los cable macho-hembra a las lineas positivas de los leds, estos serán los que se encarguen de enviar el pulso que haga encender las lineas de leds.(img 8)
|  | 
| img 8 | 
6.  una vez conectado todos los cables se procederá a conectar el sensor dht-11. (img 9)
|  | 
| img 9 | 
|  | 
| img 10 | 
Conexión al raspberry pi 3
Ahora se conectara los cables macho-hembra al raspberry pi 3.
Se aclara que los cables se conectaran de arriba hacia abajo.
Cables positivos de los leds
- Al pin #31
- Al pin #29
- Al pin #22
- Al pin #18
- Al pin #16
- Al pin #15
- Al pin #13
- Al pin #11
Cables del sensor
- Al pin #1
- Al pin #12
- Al pin #6
Cable negativo
- Al pin #9
Código
El código fue digitado en el lenguaje de programación python, ya que es un lenguaje de alto nivel lo que quiere decir que su sintaxis es muy sencilla y fácil para empezar a programar.
    import RPi.GPIO as GPIO
    import time
    #------------------------------------------------#
    #Define los GPIO como salida 
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(17, GPIO.OUT) ## GPIO 17 como salida
    GPIO.setup(27, GPIO.OUT) ## GPIO 27 como salida
    GPIO.setup(22, GPIO.OUT) ## GPIO 22 como salida
    GPIO.setup(23, GPIO.OUT) ## GPIO 23 como salida
    GPIO.setup(24, GPIO.OUT) ## GPIO 24 como salida
    GPIO.setup(25, GPIO.OUT) ## GPIO 25 como salida
    GPIO.setup(5, GPIO.OUT) ## GPIO 5 como salida
    GPIO.setup(6, GPIO.OUT) ## GPIO 6 como salida
    #------------------------------------------------#
    #Inicia el ciclo para el calculo del resultado y mostrar resultado
    while(True):
        #------------------------------------------------#
        #Declaracion de variables
        Canal = 18
        data = []
        j = 0
        #------------------------------------------------#
        #Establece coneccion con el senson
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(Canal, GPIO.OUT)
        GPIO.output(Canal, GPIO.LOW)
        time.sleep(0.02)
        GPIO.output(Canal, GPIO.HIGH)
        GPIO.setup(Canal, GPIO.IN)
        while GPIO.input(Canal) == GPIO.LOW:
                continue
        while GPIO.input(Canal) == GPIO.HIGH:
                continue
        #------------------------------------------------#
        #Recibe los pulsos del sensor
        while j < 40:
                k = 0
                while GPIO.input(Canal) == GPIO.LOW:
                        continue
                while GPIO.input(Canal) == GPIO.HIGH:
                        k += 1
                        if k > 100:
                                break
                if k < 8:
                        data.append(0)
                else:
                        data.append(1)
                j += 1
        #------------------------------------------------#
        #interpreta los pulsos del sensor y los convierte en decimal
        temperature_bit = data[16:24]
        temperature = 0
        for i in range(8):
                temperature += temperature_bit[i] * 2 ** (7 - i)
        #------------------------------------------------#
        #Inicia el bloque de mostrar resultado enciende los leds dependiendo del nivel
        print(temperature)
        GPIO.output(17, True) ## Enciendo el 17
        time.sleep(0.3)
        if temperature>5:
            GPIO.output(27, True) ## Enciendo el 27
            time.sleep(0.3)
        if temperature>10:
            GPIO.output(22, True) ## Enciendo el 22
            time.sleep(0.3)
        if temperature>15:
            GPIO.output(23, True) ## Enciendo el 23
            time.sleep(0.3)
        if temperature>20:
            GPIO.output(24, True) ## Enciendo el 24
            time.sleep(0.3)
        if temperature>=25:
            GPIO.output(25, True) ## Enciendo el 25
            time.sleep(0.3)
        if temperature>30:
            GPIO.output(5, True) ## Enciendo el 5
            time.sleep(0.3)
        if temperature>35:
            GPIO.output(6, True) ## Enciendo el 6
            time.sleep(0.3)
        #------------------------------------------------#
        #Una vez mostrado el resultado apaga los leds 
        GPIO.output(17, False) ## Apagando el 17
        GPIO.output(27, False) ## Apagando el 27
        GPIO.output(22, False) ## Apagando el 22
        GPIO.output(23, False) ## Apagando el 23
        GPIO.output(24, False) ## Apagando el 24
        GPIO.output(25, False) ## Apagando el 25
        GPIO.output(5, False)  ## Apagando el 5
        GPIO.output(6, False)  ## Apagando el 6
        time.sleep(0.3)
        #------------------------------------------------#
        #Vuelve a iniciar el ciclo
    #limpia las declaraciones de los GPIO
    GPIO.cleanup() 
Una vez escrito el código se corre y listo, un ejemplo básico para conocer un poco mas del uso del raspberry pi 3.

 
Comentarios
Publicar un comentario