Esempio n. 1
0
    def update(self, temperature, weather):
        if temperature and weather:
            self.temp = temperature
            self.weather = weather
            self.active = True
        else:
            self.active = False
        self.update_colors()
        try:
            inkyphat.set_colour(self.color)
        except ValueError:
            print('Invalid colour "{}" for V{}\n'.format(
                self.color, inkyphat.get_version()))
            if inkyphat.get_version() == 2:
                sys.exit(1)
            print('Defaulting to "red"')

        inkyphat.set_border(inkyphat.BLACK)

        # Load our backdrop image
        inkyphat.set_image("resources/backdrop.png")

        # Let's draw some lines!
        inkyphat.line((69, 36, 69, 81))  # Vertical line
        inkyphat.line((31, 35, 184, 35))  # Horizontal top line
        inkyphat.line((69, 58, 174, 58))  # Horizontal middle line
        inkyphat.line((169, 58, 169, 58), 2)  # Red seaweed pixel :D

        # And now some text

        dt = (datetime.datetime.now() +
              datetime.timedelta(seconds=self.tz)).strftime("%m/%d %H:%M")

        inkyphat.text((36, 12), dt, inkyphat.WHITE, font=font)

        inkyphat.text((72, 34), "T", inkyphat.WHITE, font=font)
        inkyphat.text(
            (92, 34),
            u"{:.2f}°".format(self.temp),
            inkyphat.WHITE if self.temp < WARNING_TEMP else inkyphat.RED,
            font=font)

        inkyphat.text((72, 58),
                      "Active" if self.active else "Disconn",
                      inkyphat.WHITE,
                      font=font)

        # Draw the current weather icon over the backdrop
        if self.weather is not None:
            inkyphat.paste(icons[icon_mapping[self.weather]], (28, 36),
                           masks[icon_mapping[self.weather]])

        else:
            inkyphat.text((28, 36), "?", inkyphat.RED, font=font)

        self.display()
Esempio n. 2
0
    def update(self, status_id):
        try:
            inkyphat.set_colour("Black")
        except ValueError:
            print('Invalid colour "{}" for V{}\n'.format(self.color, inkyphat.get_version()))
            if inkyphat.get_version() == 2:
                sys.exit(1)
            print('Defaulting to "red"')
        inkyphat.clear()
        inkyphat.set_border(inkyphat.BLACK)

        # Load our backdrop image
        # inkyphat.set_image("resources/backdrop.png")

        # Let's draw some lines!
        # And now some text
        status = statuses[status_id]

        w, h = inkyphat._draw.multiline_textsize(status, font)
        x = (inkyphat.WIDTH / 2) - (w / 2)
        y = (inkyphat.HEIGHT / 2) - (h / 2)
        inkyphat._draw.multiline_text((x, y), status, inkyphat.BLACK, font)

        self.display()
Esempio n. 3
0
response = urllib.urlopen(url)
d = json.loads(response.read())
d = ast.literal_eval(json.dumps(d))
#print(d)

Rtime = roundTime(datetime.now(), timedelta(minutes=5))
Rdate = strftime('%a, %d %b', Rtime.timetuple())
Rhour = strftime('%H:%M', Rtime.timetuple())

degSign = u'\N{DEGREE SIGN}'

inkyphat.set_colour('red')
inkyphat.set_border(inkyphat.BLACK)

# Partial update if using Inky pHAT display v1
if inkyphat.get_version() == 1:
    inkyphat.show()

# FONTS
font10 = ImageFont.truetype(
    '/var/www/html/temperino_v2_data/fonts/Bitter-Regular.ttf', 10)
font10b = ImageFont.truetype(
    '/var/www/html/temperino_v2_data/fonts/Bitter-Bold.ttf', 10)
font22 = ImageFont.truetype(
    '/var/www/html/temperino_v2_data/fonts/Bitter-Bold.ttf', 22)
font28 = ImageFont.truetype(
    '/var/www/html/temperino_v2_data/fonts/Bitter-Bold.ttf', 28)

# TOP infos
Rdatew, Rdateh = font10.getsize(Rdate)
inkyphat.text((3, -2), str(Rhour), inkyphat.RED, font22)
Esempio n. 4
0
Displays the Inky pHAT logo.

""")

if len(sys.argv) < 2:
    print("""Usage: {} <colour>
       Valid colours: red, yellow, black
""".format(sys.argv[0]))
    sys.exit(0)

colour = sys.argv[1].lower()

try:
    inkyphat.set_colour(colour)
except ValueError:
    print('Invalid colour "{}" for V{}\n'.format(colour,
                                                 inkyphat.get_version()))
    if inkyphat.get_version() == 2:
        sys.exit(1)
    print('Defaulting to "red"')

inkyphat.set_border(inkyphat.BLACK)

if colour == 'black':
    inkyphat.set_image(Image.open("InkyPhat-212x104-bw.png"))
else:
    inkyphat.set_image(Image.open("InkyPhat-212x104.png"))

inkyphat.show()
Esempio n. 5
0
text = """In the old #BILGETANK we'll keep you in the know,
In the old #BILGETANK we'll fix your techie woes.

https://www.youtube.com/pimoroniltd"""

if len(sys.argv) < 2:
    print("""Valid colours for v2 are: red, yellow or black
Inky pHAT v1 is only available in red.""".format(sys.argv[0]))
    sys.exit(1)

colour = sys.argv[1]

try:
    inkyphat.set_colour(colour)
except ValueError:
    print('Invalid colour "{}" for V{}\n'.format(colour, inkyphat.get_version()))
    if inkyphat.get_version() == 2:
        sys.exit(1)
    print('Defaulting to "red"')

if len(sys.argv) > 2:
    text = sys.argv[2]


class InkyQR(qrcode.image.base.BaseImage):
    def new_image(self, **kwargs):
        self.offset_x = kwargs.get("offset_x", None)
        self.offset_y = kwargs.get("offset_y", None)

        if self.pixel_size - (self.border * 2) > min(inkyphat.WIDTH, inkyphat.HEIGHT):
            print("QR code is too large for Inky pHAT, it probably wont scan! Try `box_size=1`")