¿Nos ayudas a pagar el Hosting?

Compartir en facebook Compartir en twitter Compartir en linkedin

Leer sensores digitales

Publicado en Septiembre de 2017

En algún momento necesitaremos leer la salida de un sensor y actuar en consecuencia. Como ejemplo más sencillo podemos tratar la información como un valor digital, es decir, Valor SI - Valor NO (1 o 0). En este caso vamos a usar un fotoresistor, que es una resistencia dependiente de la luz (en inglés LDR). También conocida como fotocélula es una resistencia cuya resistencia disminuirá cuando se incremente la intensidad de la luz incidente. Al conectarla a una entrada digital podemos saber cuando hay luz y cuando no la hay. Para este ejemplo voy a usar la fotocelula más sencilla posible.

Que necesitas:

Necesitaremos tener instalada una librería que maneje GPIO y para este ejemplo yo he usado orangepi_PC_gpio_pyH3. Para instalarla, haz click aquí para ver como.

Una vez que esté instalada, apaga la placa y conecta al GPIO a través de unos cables o con una placa de pruebas.

Esta placa tiene tres pines:

  • VCC (5v) al pin 2 del GPIO
  • GND (tierra o masa) al pin 6 del GPIO
  • OUT (señal) al pin 7 del GPIO

Ahora crea un fichero en, por ejemplo, /home/orangepi con sudo nano sensorluz.py y escribe este código:

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
# author    : "javier pérez santos para orangepiweb.es"
# credits   : "javier pérez santos, orangepiweb.es"
# copyright : "Copyright 2017, orangepiweb.es"

"""
   ___                             ____  ___        __   _
  / _ \ _ __ __ _ _ __   __ _  ___|  _ \(_) \      / /__| |__   ___  ___
 | | | | '__/ _` | '_ \ / _` |/ _ \ |_) | |\ \ /\ / / _ \ '_ \ / _ \/ __|
 | |_| | | | (_| | | | | (_| |  __/  __/| | \ V  V /  __/ |_) |  __/\__ \
  \___/|_|  \__,_|_| |_|\__, |\___|_|   |_|  \_/\_/ \___|_.__(_)___||___/
                        |___/

Leer sensores digitales
"""

import os
import sys
from time import sleep

from pyA20.gpio import gpio
from pyA20.gpio import port

sensor = port.PA6
gpio.init()

gpio.setcfg(sensor, gpio.INPUT)

try:
    print ("Pulsa CTRL+C para salir")
    while True:
        state = gpio.input(sensor)      # Lee el estado del sensor
        print state	# Muestra el estado por pantalla
        sleep (1)	# Espera un segundo

except KeyboardInterrupt:
    print ("Saliendo.")

Ejecútalo con sudo python sensorluz.py y obtendrás la lectura del sensor cada segundo. Puedes cambiar este tiempo con la línea sleep (1). Si hay luz, el valor será 1 y si no hay luz, será 0. Ten en cuenta que este sensor es lo más básico del mercado. Debido a su sencillez no se puede ajustar y el valor puede no coincidir con tus necesidades. Si necesitas más precisión existen unos sensores ajustables a través de una resistencia variable que podemos ajustar con un destornillador igual de económicos y tan fáciles de usar como estos.

Ahora puedes crear tu propio programa en el que en vez de imprimir el estado por pantalla ejecute algún comando más complejo, como puede ser activar el motor que recoje un toldo cuando ya no hay luz y lo despliega cuando si detecta luz.

Espero que te haya sido de utilidad, no dudes en escribir un comentario si ves algún error o si puedo ayudarte.


Utiliza este espacio si quieres añadir algún comentario adicional o si tienes alguna duda.
No olvides añadir tu distribución y tu placa.

Todos los comentarios serán validados antes de su publicación.

Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2024 desde 2016. Todos los derechos reservados | Diseño JaviPSantos

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

OK | Más información