ELab de Hackerspace GSM sistema de Control de acceso (7 / 8 paso)

Paso 7: Aplicación de Python para enviar datos a hojas de cálculo de Google

Como se menciona, para crear una entrada en línea registro y crear un registro público de las entradas diarias, usamos un ordenador antiguo para enviar los datos a una hoja de cálculo en Google Docs. Por supuesto que prefieren usar un Raspberry Pi para este propósito, pero no pudimos encontrar ni un Raspberry Pi en nuestras casillas de basura ni 40€ a comprar uno: P además, como prueba de concepto de un ordenador antiguo funciona perfectamente bien. El equipo está ejecutando una distro de Linux liviana: Lubuntu 12.04. Todo el código para enviar datos a la hoja de cálculo fue desarrollado en Python y es aconsejable que en este momento el código no es bastante y no comentado, puesto que fue escrito rápidamente sólo para conseguir el sistema de trabajo. Para poder enviar y recibir datos desde un Google spreadsheets tenemos que primero instalar la API de datos de Google. Para instalarlo, sólo tienes que ir aquí, descargue la última versión, extraiga los archivos en una carpeta y luego ejecutar el setup.py script dentro de la carpeta introduciendo el siguiente comando en la consola:
instalar./setup.py < pre > < / pre >
Antes de comenzar la codificación, tuvieron que instalar dos archivos de hoja de cálculo de Google: uno para almacenar la lista de miembros de eLab, con columnas de sus nombres, números de teléfono celular y algunos otros datos; y otra que la eLab registro de entrada, que contiene columnas para fecha, horas, número de teléfono, nombre de miembro, y si la entrada fue aceptada o rechazada. El segundo archivo de hoja de cálculo contiene también dos otras hojas de cálculo, siendo uno de ellos al realizar operaciones con datos para la visualización y el segundo que solía ser el registro diario de entrada, con las entradas del día actual se trajo de la primera hoja de cálculo. Aquí puedes ver y descargar hojas de cálculo de muestra:
-Miembros - https://docs.google.com/spreadsheet/ccc?key=0Amc7BxnuFafkdDBXc0pOcDVBRUV2VUt1bHJJWE9ldWc&usp=sharing
-Registro de entrada - https://docs.google.com/spreadsheet/ccc?key=0Amc7BxnuFafkdG1kc0NyOWZZRHVkLXJNODJIRkFBc1E&usp=sharing
Para las comunicaciones del puerto serie también tuvimos que instalar pyserial usando el siguiente comando:
< pre > sudo Apto-conseguir instalar python-serial < / pre >
Una vez que tuvimos el funcionamiento del sistema que pensamos que sería divertido si cada miembro puede tener su propia música de entrada :) Así, tenemos instalado pygame utilizando el comando
< pre > sudo apt-get instal python-pygame < / pre >
y añadió una nueva columna para el nombre de la canción en la hoja de cálculo de los miembros de eLab y también agregar unas líneas más de código a la aplicación Python para jugar la canción. Por supuesto al principio tuvimos la broma alrededor y poner música estúpida para algunas entradas de los miembros de eLab: P como un ejemplo, cuando uno de nosotros entra juega las épicas piratas del Caribe tema, para otro miembro toca el tema de la Liga de campeones y así sucesivamente...

Ahora a describir lo que hace el código fuente de Python, de manera general. Cuando la aplicación Python recibe un mensaje de "A: < 9_DIGIT_NUMBER >" desde el PIC16F88, recupera los datos de la hoja de cálculo de Google que contiene la información de los miembros de Hackerspace de eLab y verifica que el usuario tiene el número telefónico recibido. Después de comprobar que el usuario tiene el número de teléfono recibidos, reproduce la música de entrada correspondiente y envía la información de entrada a la hoja de registro de entrada de Hackerspace de eLab. En caso de que reciba un "< 9_DIGIT_NUMBER > R:", suena la alarma de sonido y envía la información de entrada rechazada a la hoja de registro de entrada de Hackerspace de eLab. A continuación puede ver el código de la aplicación Python. Si intenta utilizar no olvides cambiar el correo electrónico, contraseña, clave de la hoja de cálculo y título de los miembros de una lista de hoja de cálculo. La clave de la hoja de cálculo puede consultarse en la url de la hoja de cálculo después de la cadena "clave =".
< pre >
tiempo de importación
importación gdata.spreadsheet.service
Import pygame
serial de importación

Pygame.init()
Pygame.mixer.init()

CORREO ELECTRÓNICO DE CUENTA DE GOOGLE DE #YOUR
correo electrónico = ' usuario
CONTRASEÑA DE LA CUENTA DE GOOGLE DE #YOUR
Password = 'password'

DATOS DE #TEST
auth = 'concedido'
número = '913564168'
#END DE DATOS DE PRUEBA

CONFIGURACIÓN DEL PUERTO #SERIAL
ser = serial. Serial("/dev/ttyS0",9600)
#END DE CONFIGURACIÓN DEL PUERTO SERIE

var = 'X'
Acción = 'X'
número de teléfono = 'X'

#START DE ACCESO DE REGISTRO

# ENCONTRAR este valor en la URL con ' clave = XXX' y copia el XXX abajo
spreadsheet_key = 'XXX'
# HOJAS DE CÁLCULO TODOS TIENEN HOJAS DE TRABAJO. CREO QUE LA HOJA DE TRABAJO #1 POR DEFECTO SIEMPRE
# TIENE un valor de ' 0 d 6'
worksheet_id = 'od6'

spr_client = gdata.spreadsheet.service.SpreadsheetsService()
spr_client.email = correo electrónico
spr_client.password = contraseña
spr_client.Source = 'Ejemplo hoja de cálculo aplicación de escritura'
spr_client. ProgrammaticLogin()
#END DE REGISTRO LÍNEA

# DATOS NECESARIOS PARA REPRODUCIR SONIDO DE MIEMBROS

Lista de miembros #Query
gd_client = gdata.spreadsheet.service.SpreadsheetsService()
gd_client.email = correo electrónico
gd_client.password = contraseña
gd_client.Source = spr_client.source
gd_client. ProgrammaticLogin()

while(1):
var = ser.read()
pnumber = 0
Si var == "A" o var == "R":
Si var == "A":
auth = "concedido"
otra cosa:
auth = "rechazado"
var = ser.read()
Si var == ":":
pnumber = ser.read(9)
número = str(pnumber)
imprimir auth
número de impresión
q = gdata.spreadsheet.service.DocumentQuery()
Relace #Below con el nombre de la hoja de cálculo de lista de miembros
q ['title'] = 'eLab miembros'
q ['exacto de título'] = 'true'
alimentación = gd_client. GetSpreadsheetsFeed(query=q)
spreadsheet_id = feed.entry[0].id.text.rsplit('/',1) [1]
alimentación = gd_client. GetWorksheetsFeed(spreadsheet_id)
worksheet_id = feed.entry[0].id.text.rsplit('/',1) [1]

filas = gd_client. GetListFeed(spreadsheet_id, worksheet_id).entry

teléfono = ''
SOM = ''
nombre = "Desconhecido"
= False
de fila de filas:
Si == True:
= False
rotura
# impresión "%s %s" % (row.custom['telefone'], row.custom['nome'].text)
de clave en la row.custom:
Si clave == 'nombre':
nombre = row.custom[key].text
imprimir nombre
Si clave == 'som':
SOM = row.custom[key].text
imprimir som
Si clave == 'telefono':
Telefono = row.custom[key].text
imprimir telefono
Si telefono == número o nome == "Desconhecido":
# Preparar el diccionario para escribir
dict = {}
dict ['fecha'] = time.strftime('%d/%m/%Y')
dict ['hora'] = time.strftime('%H:%M:%S')
dict ['numero'] = número de
dict ['auth'] = auth
dict ['nombre'] = nome
imprimir dict

entrada = spr_client. InsertRow (dict, spreadsheet_key, worksheet_id)
Si isinstance (entrada, gdata.spreadsheet.SpreadsheetsList):
Imprimir "Insertar fila tuvo éxito".
otra cosa:
Imprimir "Insertar fila fallada."
Si no isinstance (som, basestring):
rotura
Pygame.mixer.Music.Load(SOM)
Pygame.mixer.Music.set_volume(1)
Pygame.mixer.Music.Play()
Imprimir "Jugar canción!"
= True
Aunque la verdad:
evento de #for en pygame.event:
mientras que pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
rotura
Imprimir "Final de la canción!"
imprimir

#END DE SONIDO MIEMBRO
< / pre >
Publicar el registro diario de la entrada en una página web sólo tienes que abrir la hoja de cálculo en Google Drive, haga clic en archivo -> publicar web y elija que desea publicar y haga clic en el botón para iniciar la publicación de la hoja. Luego, en la parte inferior de la ventana emergente elegir HTML para incrustar en una página web y copiar el código HTML y pégalo en tu página web.

Artículos Relacionados

Sistema de Control de acceso RFID

Sistema de Control de acceso RFID

Este Instructable es para un sistema de Control de Rasberry Pi acceso, que utiliza un sistema de etiqueta RFID para la entrada automática a través de una puerta. Utilizamos este sistema para miembros para acceder a nuestro makerspace y mantener acces
Lector de RFID – sistema de control de acceso

Lector de RFID – sistema de control de acceso

Este dispositivo es un sistema de control de acceso simple que utiliza tarjetas RFID. Está diseñado con microcontrolador PIC12F1822 correr el oscilador interno a 16MHz. Genera frecuencia 125 KHz y decodifica el stream de datos responde – formato de m
Cómo hacer un sistema de control de acceso RFID alimento de animal doméstico

Cómo hacer un sistema de control de acceso RFID alimento de animal doméstico

en este instructable voy a explicar cómo hacer un sencillo sistema de control de acceso RFID alimento de animal doméstico. Este sistema utiliza un sistema RFID independiente que puede adquirirse previamente armados o en kit forma si desea hacer la so
HACCSY - Control de acceso de Hackerspace y verificación en sistema

HACCSY - Control de acceso de Hackerspace y verificación en sistema

HACCSY abreviatura está parado para el Control de acceso de Hackerspace y verificar en el sistema y que es bastante lo que hace.HACCSY app está destinado a ejecutar en un RaspberryPi que está conectado a internet y la huelga eléctrica bloqueada la pu
Sistema de Control ambiental

Sistema de Control ambiental

En este proyecto os muestro la construcción de un sistema de Control de entorno que se controla con un Raspberry Pi.Esto era para mi proyecto de grado octavo STLP (tecnología liderazgo estudiantil). Más información acerca STLP programa de Kentucky es
Aerobox - un sistema de Control robótica suave

Aerobox - un sistema de Control robótica suave

Suave robótica es un nuevo campo de la robótica que ha sido realmente calentando últimamente. Muchos robots suaves son accionados neumáticamente, significa que se mueven cuando están llenos de aire. Para rellenar estos robots con aire, muchos proyect
Sistema de Control de hogar

Sistema de Control de hogar

Este instructable es controlar tus electrodomésticos utilizando un Control remoto. He hecho este sistema combinando mi anteriores 7 intructables.IncluyeUn mando a distancia ventilador.Controlador de nivel de agua con control automático o manual.Contr
Sistema de control de temperatura usando Labview (Atmega32)

Sistema de control de temperatura usando Labview (Atmega32)

RESUMENEste trabajo describe un marco de encendido, sistemas de control de temperatura proporcional y lineal. El diseño e implementación de este proceso se realiza utilizando LABVIEW, el software de banco de trabajo virtual. El proyecto incluye la ad
Sistema de seguridad y Control de acceso con Arduino y RFID

Sistema de seguridad y Control de acceso con Arduino y RFID

sistema de seguridad y Control de acceso con Arduino y RFIDEste proyecto es un evolotuin de mi primer proyecto llamado "Arduino – sistema de seguridad y acceso Control"Como se puede ver en el http://arduinobymyself.blogspot.com.br/2012/03/arduin
Impresos 3D, sistema de Control de movimiento de Time-lapse Modular ultraligero, 3 ejes

Impresos 3D, sistema de Control de movimiento de Time-lapse Modular ultraligero, 3 ejes

Esta es la historia de mi primer proyecto de impresión 3D y cómo ayudó a reducir drásticamente el peso total de mi sistema de Time-lapse dolly de control de movimiento 3-axis para fácil transporte en varios día de travesía, excursiones con mochila. N
Bases del sistema de control

Bases del sistema de control

en el primer concurso de robótica, el sistema de control del robot es único porque los equipos tienen una lista de las piezas que deben utilizar para alimentar y controlar su robot.  Hay variación en cómo equipos usan partes permitidas, pero en su nú
Con el Edison de Intel en un sistema de Control de reacción de Gas frío para un cohete de sondeo

Con el Edison de Intel en un sistema de Control de reacción de Gas frío para un cohete de sondeo

¿Cuál es el propósito de hacer un sistema de control de la reacción?Sistemas de control de la actitud convencional para cohetes amateurs utilizan aletas adjuntas, que ofrecen control de estabilidad pasiva. Para realizar maniobras y estabilización act
Basados en Arduino - sistema de Control para la PC del coche del RPi

Basados en Arduino - sistema de Control para la PC del coche del RPi

Hola a todos! Michalis Vasilakis de www.ardumotive.com y en esta guía de le mostrará cómo hacer un simple - basados en Arduino - sistema de Control para la PC del coche del RPi.Este sistema está diseñado para evitar el cierre abrupto del PRi coche si
Concepto de sistema de Control de casa de habitación

Concepto de sistema de Control de casa de habitación

mi proyecto se basa en el control automatizado de aparatos domésticos comunes, no solo creo que este sistema sería una gran ayuda en mi dormitorio pero también se podría ampliar a otras áreas de la casa. Así que la idea es que este sistema montado en