raspberry pulsador protocolo leer control python raspberry-pi

python - protocolo - pulsador raspberry pi 3



Programa de iluminación: activación/desactivación de GPIO en runtimewar de raspberry pi (1)

En mi experiencia, "runtimewarning este canal ya está en uso" aparece cuando has configurado previamente el pin GPIO, pero no has llamado a GPIO.cleanup (). Lo veo en tu código, pero sospecho que por alguna razón no se está ejecutando.

A veces es útil probar un pin GPIO en el terminal ejecutando el intérprete python. Es especialmente útil para probar si ha conectado su circuito correctamente.

>>>import RPi.GPIO as GPIO >>>GPIO.setmode(GPIO.BCM) >>>GPIO.setwarnings(False) >>>GPIO.setup(2, GPIO.OUT) >>>GPIO.output(2, GPIO.HIGH) >>>GPIO.input(2) True >>>GPIO.output(2, GPIO.LOW) >>>GPIO.input(2) False >>>GPIO.cleanup()

Si su circuito está conectado correctamente, debería poder encender y apagar su luz de esta manera. Cuando llama a GPIO.input (2), el intérprete responde con el estado actual del pin. Esto le permite asegurarse de que el pin funciona incluso sin un circuito externo que funcione. Una vez que sepa que está funcionando, puede continuar desde allí.

Una forma simple de encender y apagar un interruptor de luz sería usar trabajos cron. He utilizado este método con éxito en el pasado.

Puede escribir dos scripts cortos, uno que enciende la luz y otro que lo apaga.

Ejemplo: lightOn.py (reemplace ''HIGH'' con ''LOW'' para lightOff.py)

#!/usr/bin/env python import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(2, GPIO.OUT) GPIO.output(2, GPIO.HIGH) GPIO.cleanup()

Ahora puede crear un crontab para ejecutar automáticamente el script en el momento que desee. Por ejemplo:

0 6 * * * /home/pi/lightOn.py 0 18 * * * /home/pi/lightOff.py

Encendería la luz todos los días a las 6 a.m. y se apagaría a las 6 p.m.

Hola, he estado tratando de resolverlo por mi cuenta durante más de una semana, pero creo que es hora de hacer la pregunta.

Este es mi primer programa con Python y tengo la intención de controlar mi acuario con varias funciones.

La primera función que estoy programando es un horario de iluminación (acortado el código un poco para esta publicación)

El código se ejecuta correctamente, pero el pin 2 de GPIO no se enciende y apaga correctamente. y también obtengo un "runtimewarning este canal ya está en uso"

¿Puedo por favor tener un poco de orientación, estoy seguro de que es algo simple y novato :)

aquí está mi código

#Lighting Program import RPi.GPIO as GPIO import datetime GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) #Declare Lighting On/Off Times on_time_Monday = 600 off_time_Monday = 2330

el resto de los días aquí

#Find out what day of the week it is day = datetime.datetime.now() day_of_week = day.isoweekday() #find out what time it is Current_time = datetime.datetime.strftime(datetime.datetime.now(),''%H%M'') #convert the time to an int so it can be compared Current_time_INT = int(Current_time) #Schedule on / off if (day_of_week == 1) and (Current_time_INT > on_time_Monday and Current_time_INT < off_time_Monday) : Light_on_off = ''on''

Usando ''elif'' para tues wed, etc.

else : Light_on_off = ''off''

Ahora habilita las salidas

#CALL OUTPUTS ON / OFF GPIO.setup(2, GPIO.OUT) if Light_on_off == ''on'': GPIO.output(2, GPIO.HIGH) else: GPIO.output(2, GPIO.LOW) GPIO.cleanup()