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()
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()
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)
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()
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`")