ELab Hackerspace GSM toegangscontrolesysteem (7 / 8 stap)

Stap 7: Python application om gegevens te verzenden naar Google spreadsheets


Genoemd, om het maken van een on line ingang Log en een publieke logboek van dagelijkse ingangen, maken we gewend een oude computer sturen de gegevens naar een spreadsheet op Google Docs. Natuurlijk zouden we liever met behulp van een Raspberry Pi voor dit doel, maar we konden geen vinden noch een Raspberry Pi in onze Prullenbak vakken noch 40€ te kopen: P verder voor bewijs van een oude computer perfect prima werkt concept. De computer wordt uitgevoerd een lichtgewicht Linux distro: Lubuntu 12,04. Alle code voor het verzenden van gegevens naar het werkblad werd ontwikkeld in Python en adviseren wij dat op dit moment de code is niet vrij en niet heeft gereageerd, omdat het snel alleen geschreven was om het werkend systeem te krijgen. Om te kunnen verzenden en ontvangen van gegevens via een Google spreadsheets moesten we eerst installeren van de gegevens-API van Google. Te installeren, ga enkel hier, download de nieuwste versie, de bestanden uitpakken in een map en voer het script setup.py binnen de map door het invoeren van het volgende commando in de console:
het installeren van < pre >./setup.py < / pre >
Voordat u begint met coderen, we moesten twee Google Spreadsheet-bestanden instellen: een voor het opslaan van de lijst van eLab leden, met kolommen voor hun namen, mobiele telefoonnummers en sommige andere contactinformatie; en een andere als de eLab ingang Log, met kolommen voor de datum, uur, telefoonaantal, naam van lid, en indien de vermelding is goedgekeurd of geweigerd. Het tweede werkbladbestand bevat ook twee andere werkbladen, wordt één van hen gewoon om bewerkingen uitvoeren op gegevens voor visualisatie en de tweede wordt gebruikt om de dagelijkse ingang log, met de vermeldingen van de huidige dag wordt opgehaald van het eerste werkblad. Hier kunt u zien en monster werkbladen downloaden:
-Leden - https://docs.google.com/spreadsheet/ccc?key=0Amc7BxnuFafkdDBXc0pOcDVBRUV2VUt1bHJJWE9ldWc&usp=sharing
-Ingang Log - https://docs.google.com/spreadsheet/ccc?key=0Amc7BxnuFafkdG1kc0NyOWZZRHVkLXJNODJIRkFBc1E&usp=sharing
We moesten voor seriële communicatie ook installeren pyserial met de volgende opdracht:
< pre > sudo ad rem-worden installeren python-serial < / pre >
Zodra we had de werking van het systeem we dachten dat zou het leuk zijn als elk lid had een eigen toevoerzijde-muziek :) Dus, we installeerden pygame met behulp van de opdracht
< pre > sudo ad rem-worden installeren python-pygame < / pre >
toegevoegd een nieuwe kolom voor de bestandsnaam van het lied in het werkblad eLab leden en ook een paar meer lijnen van code aan de toepassing van de Python om het nummer te spelen toegevoegd. Natuurlijk aan het begin moesten we grap rond en zet sommige domme muziek voor sommige eLab leden ingangen: P als een voorbeeld, als een van ons binnenkomt het speelt nu de epische piraten van het Caraïbische thema, voor andere lidstaten het speelt het thema van de Champions League, enzovoort...

We zullen nu beschrijven wat de Python source code doet, op een algemene manier. Wanneer de Python toepassing een bericht "A: < 9_DIGIT_NUMBER >" van de PIC16F88 ontvangt, het haalt de gegevens uit de Google-spreadsheet met de eLab Hackerspace leden informatie en controleert welke gebruiker heeft het ontvangen telefoonnummer. Nadat u hebt gecontroleerd die de gebruiker heeft het ontvangen telefoonnummer, speelt de overeenkomstige toevoerzijde-muziek en de vermeldingsgegevens verzendt naar de eLab Hackerspace ingang logboek werkblad. In het geval dat zij ontvangt een "R: < 9_DIGIT_NUMBER >", klinkt het alarm geluid en de geweigerde vermeldingsgegevens stuurt naar het eLab Hackerspace ingang logboek werkblad. Hieronder ziet u de code voor de toepassing van de Python. Als u probeert te gebruiken het niet vergeet om te veranderen van de e-mail, wachtwoord, werkblad sleutel en titel van de leden lijst werkblad. De werkblad-sleutel vindt u op de url van de spreadsheet na de tekenreeks "sleutel =".
< pre >
importeren
gdata.spreadsheet.service importeren
pygame importeren
seriële importeren

pygame.init()
pygame.mixer.init()

#YOUR GOOGLE ACCOUNT E-MAIL
e-mail = ' gebruiker
#YOUR GOOGLE ACCOUNTWACHTWOORD
wachtwoord = 'wachtwoord'

#TEST GEGEVENS
auth = 'toegekend'
aantal = '913564168'
#END VAN TESTGEGEVENS

INSTALLATIE VAN DE POORT VAN DE #SERIAL
ser seriële =. Serial("/dev/ttyS0",9600)
#END VAN SERIAL PORT SETUP

var = 'X'
actie = 'X'
telefoonnummer = 'X'

#START VAN TOEGANG VASTLEGGEN IN LOGBOEK

# FIND THIS waarde IN de URL met "sleutel = XXX' en kopie de XXX hieronder
spreadsheet_key = 'XXX'
# ALLE SPREADSHEETS HEBT WERKBLADEN. IK DENK DAT WERKBLAD #1 STANDAARD ALTIJD
# HEEFT een waarde van "0 d 6'
worksheet_id = 'od6'

spr_client = gdata.spreadsheet.service.SpreadsheetsService()
spr_client.email = e-mail
spr_client.password = wachtwoord
spr_client.source = 'Voorbeeldapplicatie Spreadsheet schrijven'
spr_client. ProgrammaticLogin()
#END VAN LOG LIJN

# DE NOODZAKELIJKE GEGEVENS OM GELUID AFSPELEN-LID

De lijst van de leden van de #Query
gd_client = gdata.spreadsheet.service.SpreadsheetsService()
gd_client.email = e-mail
gd_client.password = wachtwoord
gd_client.source = spr_client.source
gd_client. ProgrammaticLogin()

while(1):
var ser.read() =
pnumber = 0
Als var == "A" of var == "R":
Als var == "A":
auth = "toegekend"
anders:
auth = "verworpen"
var ser.read() =
Als var == ":":
pnumber = ser.read(9)
aantal = str(pnumber)
afdrukken van auth
aantal afdrukken
q = gdata.spreadsheet.service.DocumentQuery()
#Below relace met de naam van het lid lijst werkblad
q ['title'] = 'eLab Members'
q ['titel-exacte'] = 'true'
voeden = gd_client. GetSpreadsheetsFeed(query=q)
spreadsheet_id = feed.entry[0].id.text.rsplit('/',1) [1]
voeden = gd_client. GetWorksheetsFeed(spreadsheet_id)
worksheet_id = feed.entry[0].id.text.rsplit('/',1) [1]

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

telefone = ''
som = ''
Nome = "Desconhecido"
= False
voor rij in rijen:
als gedaan == True:
= False
pauze
# print "%s %s" % (row.custom['telefone'], row.custom['nome'].text)
sleutel in row.custom:
Als belangrijkste == 'nome':
Nome = row.custom[key].text
nome afdrukken
Als belangrijkste == 'som':
som = row.custom[key].text
afdrukken van de som
Als belangrijkste == 'telefone':
telefone = row.custom[key].text
telefone afdrukken
Als telefone nummer of nome == == "Desconhecido":
# Bereiden het woordenboek te schrijven
dict = {}
dict ['datum'] = time.strftime('%d/%m/%Y')
dict ['tijd'] = time.strftime('%H:%M:%S')
dict ['nummer'] = getal
dict ['auth'] = auth
dict ['nome'] = nome
afdrukken van dict

entry = spr_client. InsertRow (dict, spreadsheet_key, worksheet_id)
Als isinstance (post, gdata.spreadsheet.SpreadsheetsList):
Print "rij invoegen geslaagd."
anders:
Print "rij invoegen mislukt."
zoniet isinstance (som, basestring):
pauze
pygame.mixer.Music.load(som)
pygame.mixer.Music.set_volume(1)
pygame.mixer.Music.Play()
afdrukken "Playing lied!"
= True
terwijl juist:
#for evenement in pygame.event:
terwijl pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
pauze
afdrukken "End of lied!"
afdrukken

#END VAN LID GELUID
< / pre >
Voor het publiceren van het dagelijkse toegang logboek in een webpagina die je alleen maar te openen van het werkblad op Google Drive, klik op Bestand -> publiceren naar Web en kies vervolgens welke blad dat u wilt publiceren en klik op de knop om te beginnen met publiceren. Kies vervolgens HTML insluiten in een webpagina en de HTML-code kopiëren en plakken in uw webpagina in de bodem van het pop-upvenster.

Gerelateerde Artikelen

3D gedrukte Edward geïnspireerd verborgen Blade

3D gedrukte Edward geïnspireerd verborgen Blade

Hier is iets dat ik heb altijd al wilde doen! Een verborgen mes van Assassin's Creed!Ik weet, zijn er geen een miljoen van die al op het internet? Goed soort, er zijn een heleboel verborgen bladen online, en mensen hebben het maken van geweldige ontw
3D afgedrukt Bobblehead - hoge resolutie Full Body gescand en Hand geschilderd

3D afgedrukt Bobblehead - hoge resolutie Full Body gescand en Hand geschilderd

In dit instructable, ik zal u tonen hoe u uw eigen 3D gedrukte bobblehead kunt maken met een bouwtijd van een / twee dagen. Ik zal u tonen hoe te doen een volledige lichaam van de 3D scannen in hoge resolutie, hoe te doen 3D modeling software reparat
3D afgedrukt DNA Lamp

3D afgedrukt DNA Lamp

Een paar maanden geleden die ik online via sommige 3D-modellen voor 3D surfen was printen en ik had het idee van het maken van een koele roterende lamp van de DNA-Helix. Ik was geïnspireerd door de traditionele lavalampen maar ik wilde iets een beetj
HACCSY - Hackerspace toegangscontrole en Check-in systeem

HACCSY - Hackerspace toegangscontrole en Check-in systeem

HACCSY abreviation staat voor Hackerspace toegangsbeheer controleren in systeem en dat is vrij veel wat het doet.HACCSY app is bedoeld om te draaien op een RaspberryPi die verbonden met internet en de voordeur elektrische staking lock. Het doet het w
GSM Arduino Relay arrêtering

GSM Arduino Relay arrêtering

Hallo en welkom op mijn eerste instructable. Ik hoop dat het heeft iedereen ok!Anyways, dit instructable is over het maken van een eenvoudige GSM latching Relais.Het idee is simpel genoeg, de telefoon wordt gebeld, en de output is ingeschakeld, de te
GSM zonne-aangedreven Wind Station

GSM zonne-aangedreven Wind Station

Het doel van dit project is het bouwen van een autonome station waarmee windsnelheid en windrichting.Het station zal beantwoorden van telefoontjes en informatie leveren over spraaksynthese.Stap 1: Materiaal gebruikt:1 x windsensor (ebay.ch Davis Vant
Je eigen Himalaya zout kristallen lamp maken van een GSM-lader

Je eigen Himalaya zout kristallen lamp maken van een GSM-lader

dit artikel wordt beschreven hoe een mooi Himalaya zout kristallen lamp kan worden gemaakt van een paar goedkope onderdelen en een oude mobiele telefoon oplader.Vindt u altijd de nieuwste versie van dit instructable op mijn site op http://8el.eu/2010
Fiets GSM houder

Fiets GSM houder

dit is een instructable over hoe te maken van een GSM houder voor uw fiets die past in uw bidon houder. Geld en andere kleine items kunnen worden verstopt in het zo goed.Stap 1: materialen Dingen die je zal nodig om dit project te voltooien:-Bidon (m
Hoe maak je een draagbare USB-GSM-lader

Hoe maak je een draagbare USB-GSM-lader

https://www.YouTube.com/watch?v=TExXyea5Jpc&feature=Youtu.beStap 1: om te doen een draagbare USB-GSM-lader hebt! Hoe maak je een draagbare USB-GSM-lader voor iPhone, iPod, MP3, MP4 met uw eigen handen.Stap 2: Uw telefoon dood is en er zijn geen stopc
Arduino + GSM + PIR = Awesome

Arduino + GSM + PIR = Awesome

In dit moment thuis-/ kantoorgebruik en vele andere plaats is veiligheid het belangrijkste. In onze afwezigheid zijn deze plaatsen niet veilig. Voor make deze paleizen secure vele volkeren houden bewakers en vele mensen verkiezen elektronische beveil
Interfacing SIM900A GSM Modem met Arduino

Interfacing SIM900A GSM Modem met Arduino

Dit is een zeer goedkope en eenvoudige Arduino GSM- en GPRS-module. We gebruiken de module SIMCom SIM900A. Het is de goedkopere module nu beschikbaar in de markt. Dit bericht kunt u bellen met arduino gecontroleerd en ook het verzenden van tekstberic
DIY GSM Dangle Charms

DIY GSM Dangle Charms

Hoi allemaal! In deze gevraagde video, zullen we leren hoe te maken van uw eigen DIY GSM dangle charmes. Ik heb twee verschillende stijlen getoond: stof plug stijl en riem stijl. Beide stijlen worden weergegeven omdat men beter voor uw telefoon boven
GSM-houder/mount voor fiets/fietsarrangement-met gemak oortelefoon extensie hack camera hack camera hack en gps (bonusmateriaal!)

GSM-houder/mount voor fiets/fietsarrangement-met gemak oortelefoon extensie hack camera hack camera hack en gps (bonusmateriaal!)

Dit instructible toont hoe te maken van een GSM-etui voor je fiets/fiets/cyclus (welke u noemen! lol)... de kenmerken van de bonus van deze zo genoemd-'hack' zijn veel!!1. moe van het houden van de telefoon in uw zak met kans op het vallen wanneer u
GSM Shield huis Alarm

GSM Shield huis Alarm

Volg mijn BLOG > bengoncalves.netZie mijn andere ISTRUCTABLES > Ben Hur van profielDe andere dag mijn vader en ik bespraken over de problemen van het leven in een derde wereldland. Vanwege de sociale ongelijkheid is er weinig veiligheid op straat. O