from PIL import Image import ST7789 as ST7789 import RPi.GPIO as GPIO #import urllib3 import requests import io import time # My music server URL url = "http://192.168.0.114:6680/mopidy/rpc" # Define the display disp = ST7789.ST7789( port=0, cs=ST7789.BG_SPI_CS_FRONT, dc=9, backlight=13, spi_speed_hz=80 * 1000 * 1000, ) # First request fetches the current track info js1 = { "method": "core.playback.get_current_track", "jsonrpc": "2.0", "params": {}, "id": 1 } js2 = requests.post(url, json=js1) uri = js2.json()['result']['uri'] # Second request gets the url for the cover image js3 = { "method": "core.library.get_images", "jsonrpc": "2.0", "params": { "uris": [uri] }, "id": 1} js4 = requests.post(url, json=js3) cover = list(js4.json()['result'].values())[0][0]['uri'] WIDTH = disp.width HEIGHT = disp.height # Initialize display. disp.begin() # Setup to be able to change backlight GPIO.setmode(GPIO.BCM) GPIO.setup(13, GPIO.OUT) backlight = GPIO.PWM(13, 500) # Set max backlight backlight.start(100) # Load an image. #print('Loading image: {}...'.format(image_file)) #image = Image.open(image_file) image = Image.open(requests.get(cover, stream=True).raw) # Resize the image image = image.resize((WIDTH, HEIGHT)) # Draw the image on the display hardware. print('Drawing image') disp.display(image) time.sleep(120) backlight.ChangeDutyCycle(1)