ELab Hackerspace GSM système de contrôle d’accès (7 / 8 étapes)

Étape 7: Python application pour envoyer des données sur Google Tableur

Visée, afin de créer une entrée en ligne journal et créer un journal public des entrées tous les jours, nous avons utilisé un vieil ordinateur pour envoyer les données vers une feuille de calcul sur Google Docs. Bien sûr, nous préférerions utilisant un Raspberry Pi à cet effet, mais nous n’avons trouvé ni un Pi de framboise dans nos boîtes à ordures ni 40€ pour en acheter un: P d’ailleurs, pour preuve de concept, un vieil ordinateur fonctionne parfaitement bien. L’ordinateur exécute une distro Linux léger : Lubuntu 12.04. Tout le code pour envoyer des données dans la feuille de calcul a été développé en Python, et il est recommandé que pour l’instant le code n’est pas assez et pas commenté, puisqu’il a été écrit rapidement juste pour obtenir le système de travail. Pour pouvoir envoyer et recevoir des données d’un tableur de Google, nous avons dû tout d’abord installer le Google Data API. Pour l’installer, il suffit d’aller ici, télécharger la dernière version, extraire les fichiers dans un dossier et puis exécutez le script setup.py dans le dossier en entrant la commande suivante dans la console :
Installez < pre >./setup.py < / pre >
Avant de commencer le codage, il fallait mettre en place deux fichiers de feuille de calcul Google : un pour stocker la liste des membres eLab, avec des colonnes pour leurs noms, numéros de téléphone cellulaire et quelques autres infos contact ; et l’autre d’être l’eLab entrée journal, contenant des colonnes de date, heures, numéro de téléphone, nom de membre, et si l’entrée a été acceptée ou rejetée. Le deuxième fichier de feuille de calcul contient également deux autres tableurs, étant l’un d'entre eux vient d’effectuer des opérations sur les données pour la visualisation et l’autre servant à la fiche journalière de l’entrée, avec les entrées du jour actuel est extraite de la première feuille de calcul. Ici vous pouvez voir et télécharger les feuilles de calcul échantillon :
-Membres - https://docs.google.com/spreadsheet/ccc?key=0Amc7BxnuFafkdDBXc0pOcDVBRUV2VUt1bHJJWE9ldWc&usp=sharing
-Entrée Log - https://docs.google.com/spreadsheet/ccc?key=0Amc7BxnuFafkdG1kc0NyOWZZRHVkLXJNODJIRkFBc1E&usp=sharing
Pour les communications de port série, il fallait aussi installer pyserial en utilisant la commande suivante :
< pre > sudo apt-get installer python-serial < / pre >
Une fois que nous avons eu le travail de système, nous avons pensé que ce serait amusant si tout membre pourrait avoir sa propre musique d’entrée:) Ainsi, nous avons installé pygame à l’aide de la commande
< pre > sudo apt-get installer python-pygame < / pre >
et ajouté une nouvelle colonne pour le nom de fichier de la chanson dans le tableur de membres eLab et également ajouté quelques lignes de code à l’application Python à jouer la chanson. Bien sûr, au début, nous avons eu de plaisanter et de mettre une musique stupide pour certaines entrées de membres eLab: P comme un exemple, quand l’un d'entre nous arrive il joue maintenant les Pirates épiques du thème des Caraïbes, pour les autres membres, il joue le thème de la Ligue des Champions et ainsi de suite...

Nous allons maintenant décrire ce que fait le code source Python, d’une manière générale. Chaque fois que l’application Python reçoit un message « A: < 9_DIGIT_NUMBER > » de la PIC16F88, il récupère les données de la feuille de calcul Google contenant l’eLab Hackerspace membres des renseignements et vérifie que l’utilisateur possède le numéro de téléphone reçu. Après avoir vérifié que l’utilisateur a le numéro de téléphone reçu, il joue la musique d’entrée correspondante et il envoie les informations à la feuille de calcul eLab Hackerspace entrée journal. Dans le cas où il reçoit un « R: < 9_DIGIT_NUMBER > », il déclenche une alarme sonore et envoie les informations d’entrée rejetés à la feuille de calcul eLab Hackerspace entrée journal. Ci-dessous vous pouvez voir le code d’application Python. Si vous essayez d’utiliser il n’oubliez pas de changer l’email, le mot de passe, la clé de la feuille de calcul et titre des membres liste feuille de calcul. La clé de la feuille de calcul peut être trouvée sur l’url de la feuille de calcul après la chaîne "key =".
< pre >
moment de l’importation
importation gdata.spreadsheet.service
Import pygame
importation de série

pygame.init()
pygame.Mixer.init()

#YOUR GOOGLE COMPTE E-MAIL
email = ' utilisateur
#YOUR DES MOT DE PASSE DE COMPTE GOOGLE
mot de passe = « password »

#TEST DONNÉES
AUTH = « accordée »
nombre = « 913564168 »
#END DES DONNÉES D’ESSAI

CONFIGURATION DU PORT De #SERIAL
SER = serial. Serial("/dev/ttyS0",9600)
#END DE CONFIGURATION DU PORT SÉRIE

var = « X »
action = « X »
Numéro de téléphone = « X »

#START DU JOURNAL DES ACCÈS

# TROUVER cette valeur dans l’URL de ' clé = XXX "et copie le XXX ci-dessous
spreadsheet_key = « XXX »
# TOUTES LES FEUILLES DE CALCUL ONT DES FEUILLES DE CALCUL. JE PENSE QUE LA FEUILLE DE CALCUL #1 PAR DÉFAUT TOUJOURS
# A une valeur de ' 0 d 6'
worksheet_id = « od6 »

spr_client = gdata.spreadsheet.service.SpreadsheetsService()
spr_client.email = email
spr_client.password = mot de passe
spr_client.source = « Exemple de feuille de calcul écrit Application »
spr_client. ProgrammaticLogin()
#END DE BILLES

# DONNÉES NÉCESSAIRES POUR JOUER UN SON MEMBRE

Liste des membres #Query
gd_client = gdata.spreadsheet.service.SpreadsheetsService()
gd_client.email = email
gd_client.password = mot de passe
gd_client.source = spr_client.source
gd_client. ProgrammaticLogin()

while(1) :
var = ser.read()
JNombre = 0
Si var == « A » ou var == « R » :
Si var == « A » :
AUTH = « accordée »
autre chose :
AUTH = « rejeté »
var = ser.read()
Si var == ":" :
JNombre = ser.read(9)
nombre = str(pnumber)
imprimer auth
Numéro d’édition
q = gdata.spreadsheet.service.DocumentQuery()
Remplacement de #Below avec le nom de la feuille de calcul liste membres
q ['titre'] = « eLab Members »
q ['titre exacte'] = « true »
alimentation = gd_client. GetSpreadsheetsFeed(query=q)
spreadsheet_id = feed.entry[0].id.text.rsplit('/',1) [1]
alimentation = gd_client. GetWorksheetsFeed(spreadsheet_id)
worksheet_id = feed.entry[0].id.text.rsplit('/',1) [1]

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

telefone = ''
Som = ''
nome = « Desconhecido »
fait = False
pour ligne de lignes :
Si fait == True :
fait = False
rupture
# impression « %s %s » % (row.custom['telefone'], row.custom['nome'].text)
pour clé dans row.custom :
Si la clé == « nome » :
nome = row.custom[key].text
nome d’impression
Si la clé == « som » :
Som = row.custom[key].text
imprimer la som
Si la clé == "telefone" :
telefone = row.custom[key].text
imprimer le telefone
Si telefone == nombre ou nome == « Desconhecido » :
# Préparer le dictionnaire pour écrire
dict = {}
dict ['date'] = time.strftime('%d/%m/%Y')
dict ['temps'] = time.strftime('%H:%M:%S')
dict « [numéro] = nombre
dict ["auth"] = auth
dict ['nome'] = nome
imprimer la dict

entrée = spr_client. InsertRow (dict, spreadsheet_key, worksheet_id)
Si isinstance (entrée, gdata.spreadsheet.SpreadsheetsList) :
imprimer « Insérer une ligne réussi. »
autre chose :
imprimer « Insérer une ligne qui a échoué. »
Si ce n’est pas isinstance (som, basestring) :
rupture
pygame.Mixer.Music.Load(SOM)
pygame.Mixer.Music.set_volume(1)
pygame.Mixer.Music.Play()
imprimer « Chanson jouer! »
fait = True
While True :
épreuve de #for de pygame.event :
tout en pygame.mixer.music.get_busy() :
pygame.time.Clock().tick(10)
rupture
imprimer « Fin de la chanson! »
imprimer

#END DU MEMBRE DE SON
< / pre >
De publier le journal entrée quotidiens dans une page Web, vous avez juste à ouvrir la feuille de calcul sur Google Drive, cliquez sur fichier -> publier sur le Web, puis choisissez quelle feuille que vous souhaitez publier et cliquez sur le bouton pour lancer la publication. Puis, en bas de la fenêtre contextuelle choisissez HTML à intégrer dans une page Web, copiez le code HTML et collez-le dans votre page Web.

Articles Liés

Système de contrôle d’accès RFID

Système de contrôle d’accès RFID

Ce Instructable est pour un système de contrôle de l'accès de Pi des framboise, qui utilise un système de tag RFID pour la saisie automatique par une porte. Nous utilisons ce système aux membres d'accéder à nos makerspace et de maintenir un accès séc
Lecteur RFID – système de contrôle d’accès

Lecteur RFID – système de contrôle d’accès

Cet appareil est un système de contrôle d'accès simple qui utilise des cartes RFID. Il est conçu avec microcontrôleur PIC12F1822 en cours d'exécution sur l'oscillateur interne à 16MHz. Il génère la fréquence porteuse de 125 KHz et décode le flux de d
HACCSY - contrôle d’accès Hackerspace et vérifier dans le système

HACCSY - contrôle d’accès Hackerspace et vérifier dans le système

Abreviation HACCSY est synonyme de contrôle d'accès Hackerspace et vérifier dans le système et c'est à peu près ce qu'il fait.HACCSY app est destiné à être exécuté sur un RaspberryPi qui est connecté à internet et de la gâche électrique serrure de fr
Comment faire un système de contrôle de l’accès RFID Petfood

Comment faire un système de contrôle de l’accès RFID Petfood

dans ce instructable je vais vous expliquer comment faire un système de contrôle d'accès RFID Petfood simple. Ce système utilise un système RFID autonome qui peut être acheté soit préassemblés ou en kit formulaire si vous désirez faire de la soudure
Base d’Arduino - système de contrôle de puissance pour RPi voiture PC

Base d’Arduino - système de contrôle de puissance pour RPi voiture PC

Bonjour à tous ! Je suis Michalis Vasilakis du www.ardumotive.com et dans le présent guide je vais vous montrer comment faire un système de contrôle électrique simple - base d'Arduino - pour RPi Car PC.Ce système est conçu pour éviter l'arrêt brutal
Système de contrôle d’environnement

Système de contrôle d’environnement

Dans ce projet, je montre la construction d'un système de contrôle de Evironment qui est contrôlée avec un Pi de framboise.Ce fut pour mon projet STLP (programme de Leadership étudiant Technology) de huitième année. Plus d'informations sur le program
Système de sécurité et contrôle d’accès avec Arduino et RFID

Système de sécurité et contrôle d’accès avec Arduino et RFID

système de sécurité et contrôle d'accès avec Arduino et RFIDCe projet est un evolotuin de mon premier projet appelé « Arduino – sécurité et contrôle d'accès système »Comme vous pouvez voir à l'http://arduinobymyself.blogspot.com.br/2012/03/arduino-si
Concept de système de contrôle de Chambre/Maison

Concept de système de contrôle de Chambre/Maison

mon projet repose sur un contrôle automatisé des appareils électroménagers courants, non seulement je pense que ce système serait une grande aide dans ma chambre, mais il pourrait également être élargie à d'autres espaces de la maison. Si l'idée est
Aerobox - un système de contrôle robotique doux

Aerobox - un système de contrôle robotique doux

La robotique douce est un nouveau domaine de la robotique qui a été vraiment chauffer ces derniers temps. De nombreux robots mous sont commande pneumatique, ce qui signifie qu'ils se déplacent lorsqu'ils sont remplis avec de l'air. Pour remplir ces r
Système de contrôle de température à l’aide de Labview (Atmega32)

Système de contrôle de température à l’aide de Labview (Atmega32)

RÉSUMÉCet ouvrage décrit un cadre de ON/OFF, systèmes de contrôle de température proportionnelle et linéaire. La conception et la mise en œuvre de ce processus se fait à l'aide de LABVIEW, logiciel virtual workbench. Le projet comprend l'acquisition
Impression 3D, système de contrôle de mouvement de Time-lapse modulaire 3 axes, ultra-léger

Impression 3D, système de contrôle de mouvement de Time-lapse modulaire 3 axes, ultra-léger

Il s'agit de l'histoire de mon premier projet d'impression 3D et comment il a aidé à réduire considérablement le poids total de mon système de Time-lapse dolly de contrôle 3 axes pour faciliter le transport sur plusieurs jours dans l'arrière-pays, ra
Bases du système de contrôle

Bases du système de contrôle

dans la première compétition de robotique, le système de contrôle de robot est unique parce que les équipes ont une liste des pièces qu'ils doivent utiliser pour alimenter et contrôler leur robot.  Il y a variation dans Comment les équipes utilisent
Système de contrôle de cafard (via une manipulation psychologique)

Système de contrôle de cafard (via une manipulation psychologique)

permet à un micro-ordinateur (timbre à base par exemple) contrôler les sens de cafard du mouvement autonome. Vous pouvez aussi faire un système de contrôle à distance. Le timbre de base envoie des signaux TTL à un circuit uLN2803 qui amplifie le cour
Allumer le système de contrôle de luminosité de capteur LED avec ATMEGA328 UNO V3.0 R3 pour Arduino

Allumer le système de contrôle de luminosité de capteur LED avec ATMEGA328 UNO V3.0 R3 pour Arduino

L'équipe ICStation vous présenter ce capteur de lumière LED système de contrôle de luminosité avec notre produit self-developed ICStation V3.0 de UNO ATMEGA328 R3 Board Compatible Arduino. Il utilise DC5V pour travailler et qu'il peut changer la lumi