I have this Pi Zero W for a while doing nothing but now it has a use case. :) I started monitoring my small GPU rig with it.
Scenario 1: Rig is up, everything is OK.
Scenario 2: Rig is down, alarm!
It was pretty cool to play with inky phat. I'll definitely try to hack more sophisticated things on it.
I use hiveon
as pool, so it gathers stats from there. Based on the reported hash rate, one of the two different drawings shows up on the e-ink screen. If you want to try this, make sure you have libraries installed. (arrow, requests, etc.)
Here is the full script:
import requests
import inkyphat
import arrow
import os
wallet = os.environ['WALLET']
font_file = inkyphat.fonts.PressStart2P
font = inkyphat.ImageFont.truetype(font_file, 11)
inkyphat.set_colour('red')
def main():
r = requests.get(f"https://hiveon.net/api/v0/miner/{wallet}?currency=ETH")
r.raise_for_status()
data = r.json().get("data")
hash_rate = int(data.get("hashrate"))
utc = arrow.utcnow()
local = utc.shift(hours=2)
last_update = local.format('HH:mm')
if hash_rate > 0:
mh = round(hash_rate / 1e6, 2)
msg = f"MINING { mh} MH"
inkyphat.set_border(inkyphat.WHITE)
text_colour = inkyphat.BLACK
else:
msg = "Rig is DOWN!"
inkyphat.set_border(inkyphat.RED)
text_colour = inkyphat.RED
print(msg)
msg2 = last_update
w, h = font.getsize(msg)
msg_x = int((inkyphat.WIDTH - w) / 2)
msg_y = int((inkyphat.HEIGHT - h) / 2)
inkyphat.text((msg_x, msg_y - 11), msg, text_colour, font=font)
inkyphat.text((inkyphat.WIDTH - 66, inkyphat.HEIGHT - 15), msg2, text_colour, font=font)
inkyphat.show()
main()