Last active
August 22, 2017 11:27
-
-
Save jonasryberg/8904232 to your computer and use it in GitHub Desktop.
Pythonkod för att med hjälp av en Raspberry Pi, en PiGlow från Pimoroni och api från Trafiklab visa tid till nästa avgång i tunnelbanan
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# coding=latin1 | |
import urllib # behövs för att hämta data från nätet | |
import requests # behövs för att hämta data från nätet installeras med instruktioner från http://docs.python-requests.org/en/latest/user/install/#install | |
from pyglow import PyGlow #hämtas på https://github.com/benleb/PyGlow | |
from xml.dom.minidom import parse, parseString #för att kunna tolka xml-informationen | |
pyglow = PyGlow() | |
url = 'https://api.trafiklab.se/sl/realtid/GetDepartures.xml?siteId=XXXX&key=DIN API-NYCKEL' #ersätt XXXX med önskad stations id och sätt in din api-nyckel sist i webbadresen. Båda hämtas hos trafiklab.se | |
r = requests.get(url) | |
avg = r.text | |
avg = avg.encode('utf-8') | |
# Här öppnar vi XML-filen med minidom | |
dom = parseString(avg) | |
DisplayRow1 = dom.getElementsByTagName('DisplayRow1') # här väljer vi att hämta info från Displayrow1, dvs samma info som finns på första raden i t-banans infoskyltar | |
mot = DisplayRow1[1].firstChild.nodeValue # här har vi valt den andra skylten på aktuell station | |
# koden nedan väljer ut bara minut-siffran från strängen, kan säker göras mycket effektivare och säkrare | |
mot = mot[18:len(mot)] | |
mot = mot[0] | |
if mot.isdigit(): | |
mot = int(mot) | |
else: | |
mot = int(0) | |
pyglow.all(0) | |
# tand led-lamporna på pyglow | |
start = 1 | |
while mot > 0 and mot < 19: | |
pyglow.led(start,100) | |
mot = mot -1 | |
start = start + 1 | |
if mot > 19: | |
pyglow.all(100) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment