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