Inalámbrico de temporizador de luz de Navidad con Python y frambuesa Pi (7 / 11 paso)

Paso 7: Código de Python

Otro descargo de responsabilidad: tampoco soy un informático o programador, mucho menos un experto en Python. Si el código de abajo se ve horrible, ineficiente, o sólo hace usted cringe, no dude en enviar un enlace al mejor código, por el bien de la gente leyendo esto en el futuro.

Actualización 13/12/2013: ver comentario de mluna debajo un enlace a un código más limpio.

Ahora que tienes el circuito construido, es hora de empezar a usar el Raspberry Pi! Esta es otra parte que era confuso para un usuario frambuesa Pi - no era inmediatamente obvio cómo controlar realmente los pines GPIO, porque al parecer hay más de una forma de hacerlo. Una búsqueda en Google para "python gpio de frambuesa pi" revela varios tutoriales diferentes y puede descargar los paquetes Python. También puede controlar las clavijas directamente desde un terminal sin usar Python en todos. Por lo tanto, me tomó un tiempo para darse cuenta de que la distribución de la Raspbian por defecto ya viene con un módulo de Python para controlantes pins GPIO. ¡ UF!

Recuerde que supongo ya tienes un Raspberry Pi para arriba y corriendo este punto, utilizando Raspbian, que viene con tanto Python 2.x y 3.x (a partir de diciembre de 2013). Escribí el código en Python 3.2.3 utilizando inactivo 3 (integrado desarrollo biblioteca) - hay un acceso directo para él en el escritorio predeterminado de Raspbian.

Para ejecutar el código:

1. Abra un terminal ("LXTerminal" icono en el escritorio), escriba sudo idle3y pulse Entrar. Esto va en marcha lenta "como raíz", que se requiere para el acceso GPIO con Python.
2. descargar christmas_timer.py (abajo) y luego ábrelo en el ralentí 3, o crear un nuevo archivo de Python y copia y pega el código a continuación.
3. Tome un minuto para mirar el código y los comentarios. La única parte que necesita para editar es la sección hacia el principio con todos los "on" y "off" veces (MonOn MonOff, TueOn, etc.).
4. estás casi listo para ejecutar el código! Pero primero... (ir al siguiente paso)

# Frambuesa Pi personalizados Navidad temporizador de luz

módulo de GPIO de importación #
importación RPi.GPIO como GPIO

# configurar pines GPIO como salidas
# Este Convenio es para la Convención de pin header "P1"
# donde las patillas comienzan con P1 en la parte superior izquierda
# y a P26 en la parte inferior derecha, con las probabilidades en la
columna de la izquierda # y eventos en la columna de la derecha.
# Así, pins 11 P1 y P1-12 corresponden a GPIO17 y
# GPIO18 respectivamente.
GPIO.setmode (GPIO. JUNTA)
GPIO.setup (11, GPIO. HACIA FUERA)
GPIO.setup (12, GPIO. HACIA FUERA)

módulos de fecha y hora de importación #
fecha y hora de la importación
tiempo de importación

# Entrar en los tiempos que desea las luces para activar y desactivar para
# cada día de la semana. Por defecto es para que luces encender a
# 17:30 y a las 22:30 en días laborables, en a 17:00 y apagado
# en 23:30 los fines de semana. Tenga en cuenta que esto es usando un reloj de 24 horas.

MonOn = datetime.time(hour=17,minute=30,second=0)
MonOff = datetime.time(hour=22,minute=30,second=0)
TueOn = datetime.time(hour=17,minute=30,second=0)


TueOff = datetime.time(hour=22,minute=30,second=0)
WedOn = datetime.time(hour=17,minute=30,second=0)
WedOff = datetime.time(hour=22,minute=30,second=0)
Thuan = datetime.time(hour=17,minute=30,second=0)
ThuOff = datetime.time(hour=22,minute=30,second=0)
FriOn = datetime.time(hour=17,minute=30,second=0)
FriOff = datetime.time(hour=22,minute=30,second=0)
SatOn = datetime.time(hour=17,minute=0,second=0)
SatOff = datetime.time(hour=23,minute=30,second=0)
SunOn = datetime.time(hour=17,minute=0,second=0)
SunOff = datetime.time(hour=23,minute=30,second=0)

# Guardar estos momentos en una matriz para facilitar el acceso más adelante.
OnTime = [MonOn, TueOn, WedOn, Thuan, FriOn, SatOn, SunOn]
OffTime = [MonOff, TueOff, WedOff, ThuOff, FriOff, SatOff, SunOff]

# Establecer un "tiempo de espera" en segundos. Esto asegura que el programa hace una pausa
# brevemente después de él enciende las luces encendido o apagado. Por otra parte, desde el
# bucle se ejecutará más de una vez por segundo, intentará mantener
# Encienda las luces cuando ya están encendidos (o desactivar cuando son
# ya apagado.

waitTime = 3

# Iniciar el bucle que se ejecutará hasta que deja el programa o girar a la
# de la Raspberry Pi.

Aunque la verdad:

# obtener la hora actual en horas, minutos y segundos
currTime = DateTime.DateTime.Now
# consigue el día de la semana (0 = el lunes, 1 = el martes, 2 = el miércoles...)
currDay = datetime.datetime.now().weekday()

#Check para ver si es el momento de encender las luces
Si (currTime.hour - OnTime [currDay] .hour == 0 y
currTime.minute - OnTime [currDay] .minute == 0 y
currTime.second - .segundo OnTime [currDay] == 0):

# establece el pin GPIO en alta, equivalente a
# la tecla ON del mando a distancia
GPIO.output (11, GPIO. ALTA)

# esperar un período muy corto de tiempo establezca
# el valor bajo, el equivalente de liberar el
Botón #
Time.Sleep(.5)
GPIO.output (11, GPIO. BAJO)

# Espere unos segundos para que el bucle no viene
# volver a través y presione nuevamente el botón "on"
# mientras el ae de luces ya en
Time.Sleep(waitTime)

#check a ver si es momento de apagar las luces
Elif (currTime.hour - .hour OffTime [currDay] == 0 y
currTime.minute - .minute OffTime [currDay] == 0 y
currTime.second - .segundo OffTime [currDay] == 0):

# establece el pin GPIO en alta, equivalente a
# presiona el botón OFF en el mando a distancia
GPIO.output (12, GPIO. ALTA)

# esperar un período muy corto de tiempo establezca
# el valor bajo, el equivalente de liberar el
# Botón de apagado
Time.Sleep(.5)
GPIO.output (12, GPIO. BAJO)

# Espere unos segundos para que el bucle no viene
# volver a través y presione nuevamente el botón de "off"
# mientras la luces ae ya apagado
Time.Sleep(waitTime)

Artículos Relacionados

Sensor de movimiento inalámbrico portátil ha activado la alarma con un timbre inalámbrico y un sensor de movimiento de airwick

Sensor de movimiento inalámbrico portátil ha activado la alarma con un timbre inalámbrico y un sensor de movimiento de airwick

tuvo la idea de combinar estos dos elementos por una cierta hora ahora, así que cuando una tienda tiene el timbre inalámbrico para unos 11, 50USD yo solo tenía que comprarlo...Piezas y herramientas necesarias:Estación de soldaduraDestornilladorAlgo p
Inalámbrico de distorsión de la guitarra con un teléfono inalámbrico

Inalámbrico de distorsión de la guitarra con un teléfono inalámbrico

Con "línea tierra" cableada telefonía haciendo una salida elegante en el escenario justo, yo he acumulado una variedad de teléfonos inalámbricos. Yo he estado reflexionando sobre las ideas, y experimentando con maneras de reutilizar estos todaví
Inalámbrico de temperatura y Monitor de humedad con ESP8266

Inalámbrico de temperatura y Monitor de humedad con ESP8266

El objetivo de este proyecto es para que un monitor de temperatura y humedad que forma inalámbrica registra la temperatura y la humedad a un servidor remoto. Vamos a utilizar un Arduino Uno (o clon), un DHT11, ESP8266 y ThingSpeak.com para este proye
Sensor de temperatura inalámbrico simple actualización de sitio web con electric imp y termistor

Sensor de temperatura inalámbrico simple actualización de sitio web con electric imp y termistor

[Edición 2014] El planificador que fue utilizado por Imp eléctrico ya no es usado y no está disponible ya. [/Edit]Este es un pequeño proyecto para empezar con la eléctrica imp y un termistor para que pueda ver cómo puede obtener las lecturas de tempe
Inalámbrico de Control de Arduino usando el BeagleBone negro o frambuesa Pi

Inalámbrico de Control de Arduino usando el BeagleBone negro o frambuesa Pi

IntroducciónSi han estado buscando una manera fácil y barata integrar sin cables un Arduino y un BeagleBone negro (BBB) o mirada de frambuesa Pi (RPi) no más, este tutorial le mostrará cómo!Lo que se necesitaUn microcontrolador BeagleBone negro con l
LINTERNA LED EXTRA brillante soplete taladro inalámbrico conversión

LINTERNA LED EXTRA brillante soplete taladro inalámbrico conversión

De vez en cuando tengo que cambiar de unidades de consumo / tableros de fusibles y esto exige una desconexión de la red eléctrica a una propiedad. Por lo tanto, para iluminar el trabajo, tengo muchas antorchas LED / linternas, incluyendo linternas de
Hackear un timbre inalámbrico en un interruptor de alarma sin hilos o interruptor on/off

Hackear un timbre inalámbrico en un interruptor de alarma sin hilos o interruptor on/off

recientemente construyó un sistema de alarma y lo instalamos en mi casa. Utilizan interruptores magnéticos en las puertas y cableado ellos a través del ático. Las ventanas eran otra historia y dura les cableado no era una opción. Necesitaba una soluc
ESP8266 ESP-12E NodeMCU v1.0 con Arduino IDE en registrador de temperatura inalámbrico de programación

ESP8266 ESP-12E NodeMCU v1.0 con Arduino IDE en registrador de temperatura inalámbrico de programación

A finales de 2014 y 2015 temprano, su vino realmente a través deeste ingenioso ESP8266 de Chip WiFi (ESP-01) y a la batalla entre la documentación inconsistente de diversas fuentes. Para el momento del estímulo, él documentó sus frustraciones (result
Víctima y bromista inalámbrico ratón broma

Víctima y bromista inalámbrico ratón broma

El principio de esta broma es que ratón de bromista controlar el ordenador de la víctima.Es necesario:1. wireless mouse (M1) y el receptor de ratón inalámbrico (R1) - víctima2. wireless mouse (M2) y el receptor de ratón inalámbrico (R2) - bromistaCua
Hacer un Robot inalámbrico con un teléfono con Android

Hacer un Robot inalámbrico con un teléfono con Android

En este Instructable vamos a construir un MouseBot.El MouseBot es un robot pequeño arduino wireless que se puede controlar con un ordenador. No requiere un módulo Wi-Fi. En su lugar utiliza un teléfono con android para conectarse a internet. El teléf
Inalámbrico cargador y caja de almacenamiento

Inalámbrico cargador y caja de almacenamiento

Hecho esto en mi habitación y cargar el teléfono en la noche para no tener que jugar con cables de oscuridad de la noche. Además de sus trabajos bastante impresionante con cada teléfono compatible inalámbrico de carga. También funciona con el Iphone,
NRF2L401 inalámbrico sistema de transmisión de datos de PC con Arduino

NRF2L401 inalámbrico sistema de transmisión de datos de PC con Arduino

ICStation equipo presentarles cómo hacer este NRF2L401 Wireless PC datos de sistema de transmisión basado en el UNO ICStation y el ICStation mega2560 Compatible con Arduino.El sistema de transmisión de datos de NRF2L401 Wireless PC funciona bajo volt
Sistema de música de altavoces SoGo Mini inalámbrico multi

Sistema de música de altavoces SoGo Mini inalámbrico multi

Próximamente SoGo Mini altavoz portátil inalámbrico multisistema de música con Bluetooth 4.0, puede venir en tu bolsillo o puede montarse en una pared. Capacidades como color base adaptable y color de anillo, 20 horas de batería que a este altavoz mu
Modificación de ratón 555 temporizador inalámbrico

Modificación de ratón 555 temporizador inalámbrico

en primer lugar, mi blog/el original.Segundo lugar, gustaría mencionar Instructables lo fácil es utilizar. Simplemente es mucho más fácil dar instrucciones cuando se puede etiquetar tus fotos y contestar Comentarios.Permite a los negocios...Hace unos