1.3inch LCD HATにMackerelのグラフを表示する

公開日時

MH-Z19でCO2濃度をリアルタイム計測してMackerelでアラート通知するにてCO2濃度をMackerelに蓄積できるようになった。

今回は「1.3inch IPS LCD display HAT for Raspberry Pi」を使ってMackerelのグラフを表示することにする。

以前、1.3inch LCD HATにCloudWatchメトリクスのグラフを表示するようにしたのを参考にMackerel版を作成。

事前にMackerelのグラフ画面を開いて「共有」メニューから「グラフの公開」にチェックを入れて、画像URLを発行しておく。

Mackerelは手軽にURL共有ができるのでCloudWatchより楽。

画像URLから画像を取得して、240x240にリサイズして表示するスクリプトを作成。

# coding:utf-8
import spidev as SPI
import ST7789
import time
import sys
import subprocess
import datetime
from pytz import timezone

from PIL import Image,ImageDraw,ImageFont
def metrics_graph():
  try:
    subprocess.check_call("curl -s -o mackerel.png 'https://mackerel.io/embed/public/embed/xxxxx.png?period=1h'", shell=True)
  except Exception as e:
    print e

def main():
  # Raspberry Pi pin configuration:
  RST = 27
  DC = 25
  BL = 24
  bus = 0
  device = 0
  
  # 240x240 display with hardware SPI:
  disp = ST7789.ST7789(SPI.SpiDev(bus, device),RST, DC, BL)
  
  # Initialize library.
  disp.Init()

  font = ImageFont.truetype('/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', 30)
  
  try:
    while True:
      try:
        metrics_graph()

        ## Clear display.
        disp.clear()
        
        print "***draw graph"
        image = Image.open('./mackerel.png')
        disp.ShowImage(image.resize(size=(240, 240)),0,0)
        time.sleep(60)
      except Exception as e:
        print e
  except KeyboardInterrupt:
    print('exit') 
    sys.exit()

main()

縦横比を無視して無理やり240にリサイズしているので若干見づらいが今の濃度は分かるのでよしとする。

これでMackerelのグラフを1.3inch LCD HATに表示できるようになった。


Related #iot

Echo Dot 2台をステレオペアとして設定する

BGM再生端末としてちょうど良い

YAS-109でAlexaを使う

本体のマイクの無効化を解除する必要があった

ルンバの電源をオフにする

HOMEボタンを10秒長押しでオフにできた

M5StickCで血中酸素飽和度(SpO2)を測定する

手軽にSpO2が計測できるようになって便利

Alexa、関西弁でしゃべって

まいど。Alexaです

Alexa非対応テレビをAlexa対応にする

基本的な操作は音声のみで完結できるようになって快適