Screen fully working
TODO : Daemon mode to run in background.
This commit is contained in:
parent
d256a78fef
commit
85185e4d81
121
pivelib.py
121
pivelib.py
@ -1,4 +1,5 @@
|
|||||||
#! /usr/bin/env python3.3
|
#! /usr/bin/env python3.3
|
||||||
|
#-*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Auteur : Phyks (phyks@phyks.me)
|
# Auteur : Phyks (phyks@phyks.me)
|
||||||
# Site web : http://phyks.me
|
# Site web : http://phyks.me
|
||||||
@ -15,7 +16,10 @@ import sys
|
|||||||
import urllib3
|
import urllib3
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
import datetime
|
import datetime
|
||||||
import wiringpi2
|
import wiringpi2 as wp2
|
||||||
|
import time as time_lib
|
||||||
|
|
||||||
|
wp2.wiringPiSetup()
|
||||||
|
|
||||||
# ===========
|
# ===========
|
||||||
# Pins du LCD
|
# Pins du LCD
|
||||||
@ -27,8 +31,8 @@ PIN_DC = 5
|
|||||||
PIN_SDIN = 6
|
PIN_SDIN = 6
|
||||||
PIN_SCLK = 7
|
PIN_SCLK = 7
|
||||||
|
|
||||||
LCD_C = HIGH
|
LCD_C = 0
|
||||||
LCD_D = LOW
|
LCD_D = 1
|
||||||
LCD_X = 84
|
LCD_X = 84
|
||||||
LCD_Y = 48
|
LCD_Y = 48
|
||||||
|
|
||||||
@ -134,16 +138,16 @@ ASCII = [
|
|||||||
|
|
||||||
|
|
||||||
def writeLCD(dc, data):
|
def writeLCD(dc, data):
|
||||||
wiringpi2.digitalWrite(PIN_DC, dc)
|
wp2.digitalWrite(PIN_DC, dc)
|
||||||
wiringpi2.digitalWrite(PIN_SCE, LOW)
|
wp2.digitalWrite(PIN_SCE, 0)
|
||||||
wiringpi2.shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data)
|
wp2.shiftOut(PIN_SDIN, PIN_SCLK, 1, data)
|
||||||
wiringpi2.digitalWrite(PIN_SCE, HIGH)
|
wp2.digitalWrite(PIN_SCE, 1)
|
||||||
|
|
||||||
|
|
||||||
def characterLCD(character):
|
def characterLCD(character):
|
||||||
writeLCD(LCD_D, 0x00)
|
writeLCD(LCD_D, 0x00)
|
||||||
for i in range(0, 5):
|
for i in range(0, 5):
|
||||||
writeLCD(ASCII[character - 0x20][i])
|
writeLCD(LCD_D, ASCII[ord(character) - 0x20][i])
|
||||||
writeLCD(LCD_D, 0x00)
|
writeLCD(LCD_D, 0x00)
|
||||||
|
|
||||||
|
|
||||||
@ -151,27 +155,32 @@ def stringLCD(string):
|
|||||||
for character in string:
|
for character in string:
|
||||||
characterLCD(character)
|
characterLCD(character)
|
||||||
|
|
||||||
|
# X ranges from 0 to 84
|
||||||
|
# Y ranges from 0 to 5
|
||||||
|
def gotoXYLCD(x, y):
|
||||||
|
writeLCD(0, 0x80 | x)
|
||||||
|
writeLCD(0, 0x40 | y)
|
||||||
|
|
||||||
def initLCD():
|
def initLCD():
|
||||||
wiringpi2.pinMode(PIN_SCE, OUTPUT)
|
wp2.pinMode(PIN_SCE, 1)
|
||||||
wiringpi2.pinMode(PIN_RESET, OUTPUT)
|
wp2.pinMode(PIN_RESET, 1)
|
||||||
wiringpi2.pinMode(PIN_DC, OUTPUT)
|
wp2.pinMode(PIN_DC, 1)
|
||||||
wiringpi2.pinMode(PIN_SDIN, OUTPUT)
|
wp2.pinMode(PIN_SDIN, 1)
|
||||||
wiringpi2.pinMode(PIN_SCLK, OUTPUT)
|
wp2.pinMode(PIN_SCLK, 1)
|
||||||
wiringpi2.digitalWrite(PIN_RESET, LOW)
|
wp2.digitalWrite(PIN_RESET, 0)
|
||||||
wiringpi2.digitalWrite(PIN_RESET, HIGH)
|
wp2.digitalWrite(PIN_RESET, 1)
|
||||||
|
|
||||||
wiringpi2.writeLCD(LCD_C, 0x21) # LCD Extended commands
|
writeLCD(LCD_C, 0x21) # LCD Extended commands
|
||||||
wiringpi2.writeLCD(LCD_C, 0x98) # Set LCD Vop (contrast)
|
writeLCD(LCD_C, 0x98) # Set LCD Vop (contrast)
|
||||||
wiringpi2.writeLCD(LCD_C, 0x04) # Set Temp coefficient
|
writeLCD(LCD_C, 0x04) # Set Temp coefficient
|
||||||
wiringpi2.writeLCD(LCD_C, 0x13) # LCD bias mode (1:48)
|
writeLCD(LCD_C, 0x13) # LCD bias mode (1:48)
|
||||||
wiringpi2.writeLCD(LCD_C, 0x0C) # LCD in normal mode
|
writeLCD(LCD_C, 0x0C) # LCD in normal mode
|
||||||
wiringpi2.writeLCD(LCD_C, 0x20)
|
writeLCD(LCD_C, 0x20)
|
||||||
wiringpi2.writeLCD(LCD_C, 0x0C)
|
writeLCD(LCD_C, 0x0C)
|
||||||
|
|
||||||
|
|
||||||
def clearLCD():
|
def clearLCD():
|
||||||
for i in range(0, LCD_X*LCD_Y/8):
|
for i in range(0, int(LCD_X*LCD_Y/8)):
|
||||||
writeLCD(LCD_D, 0x00)
|
writeLCD(LCD_D, 0x00)
|
||||||
characterLCD(' ')
|
characterLCD(' ')
|
||||||
|
|
||||||
@ -192,6 +201,10 @@ base_url = ('http://www.velib.paris.fr/service/stationdetails/paris/')
|
|||||||
# Initialisation des librairies
|
# Initialisation des librairies
|
||||||
# =============================
|
# =============================
|
||||||
http = urllib3.PoolManager()
|
http = urllib3.PoolManager()
|
||||||
|
initLCD()
|
||||||
|
clearLCD()
|
||||||
|
gotoXYLCD(0,0)
|
||||||
|
stringLCD("Loading...")
|
||||||
|
|
||||||
# ====
|
# ====
|
||||||
# Date
|
# Date
|
||||||
@ -269,8 +282,62 @@ if r.status == 200:
|
|||||||
# ============================
|
# ============================
|
||||||
# Afficher les infos à l'écran
|
# Afficher les infos à l'écran
|
||||||
# ============================
|
# ============================
|
||||||
|
running = True
|
||||||
wiringpi2.wiringPiSetup
|
while running:
|
||||||
|
for station in stations:
|
||||||
initLCD()
|
clearLCD()
|
||||||
|
gotoXYLCD(0, 0)
|
||||||
|
stringLCD("Station:")
|
||||||
|
gotoXYLCD(0, 1)
|
||||||
|
stringLCD(str(station))
|
||||||
|
gotoXYLCD(0, 3)
|
||||||
|
stringLCD("Avail.: "+str(available[station]))
|
||||||
|
gotoXYLCD(0, 5)
|
||||||
|
stringLCD("Free: "+str(free[station]))
|
||||||
|
time_lib.sleep(2)
|
||||||
|
|
||||||
|
clearLCD()
|
||||||
|
gotoXYLCD(0, 0)
|
||||||
|
stringLCD("[Weather]")
|
||||||
|
gotoXYLCD(0, 1)
|
||||||
|
stringLCD("Now:")
|
||||||
|
gotoXYLCD(0, 2)
|
||||||
|
stringLCD(weather_now.capitalize())
|
||||||
|
gotoXYLCD(0, 4)
|
||||||
|
stringLCD(str(temp_now)+"C")
|
||||||
|
time_lib.sleep(2)
|
||||||
|
|
||||||
|
clearLCD()
|
||||||
|
gotoXYLCD(0, 0)
|
||||||
|
stringLCD("[Weather]")
|
||||||
|
gotoXYLCD(0, 1)
|
||||||
|
stringLCD("In 3h:")
|
||||||
|
gotoXYLCD(0, 2)
|
||||||
|
stringLCD(weather_3h.capitalize())
|
||||||
|
gotoXYLCD(0, 4)
|
||||||
|
stringLCD(str(temp_3h)+"C")
|
||||||
|
time_lib.sleep(2)
|
||||||
|
|
||||||
|
clearLCD()
|
||||||
|
gotoXYLCD(0, 0)
|
||||||
|
stringLCD("[Weather]")
|
||||||
|
gotoXYLCD(0, 1)
|
||||||
|
stringLCD("In 6h:")
|
||||||
|
gotoXYLCD(0, 2)
|
||||||
|
stringLCD(weather_6h.capitalize())
|
||||||
|
gotoXYLCD(0, 4)
|
||||||
|
stringLCD(str(temp_6h)+"C")
|
||||||
|
time_lib.sleep(2)
|
||||||
|
|
||||||
|
clearLCD()
|
||||||
|
gotoXYLCD(0, 0)
|
||||||
|
stringLCD("[Weather]")
|
||||||
|
gotoXYLCD(0, 1)
|
||||||
|
stringLCD("In 9h:")
|
||||||
|
gotoXYLCD(0, 2)
|
||||||
|
stringLCD(weather_9h.capitalize())
|
||||||
|
gotoXYLCD(0, 4)
|
||||||
|
stringLCD(str(temp_9h)+"C")
|
||||||
|
time_lib.sleep(2)
|
||||||
|
|
||||||
clearLCD()
|
clearLCD()
|
||||||
|
Loading…
Reference in New Issue
Block a user