Androidのメモとか

ポキオの日記です。今日も遅延してない。

神奈川県内のCovid-19の新規陽性者数をM5StickCで表示してみる

スポンサードリンク

減ったり増えたり。

ポキオ M5StickC Node-RED Covid-19

前回はM5StickC”もどき”に表示させてました

前回はこちら。

relativelayout.hatenablog.com

眠っていたM5StickCの火入れを行ったので、UI Flowでちょっぱやで実装して、神奈川県のCovid-19陽性者数をM5StickCでも表示してみようと思います。

今回も裏ではNode-REDが活躍しています

前回、Node-RED上に神奈川県のCovid-19陽性者数の情報を取得しパースする仕組みを作りました。

ポキオ Covid-19 Node-RED ESP32

今回も、これを利用していきます。具体的には、M5StickCでNode-RED経由で情報を取得し、その結果をM5StickCのディスプレイに表示させてみようと思います。

UI Flowで爆速実装

気安く爆速という単語を多用してますが、UI Flowは本当に爆速でした。

ポキオ M5StickC Node-RED Covid-19

とはいえ、最初はBlockyで実装していたものの、簡単な文字列操作ができなかったので結局Pythonで実装しちゃいました。ただ、Blockyのおかげで、フルスクラッチPythonを書くよりかは簡単に実装できたので、まずはBlockyで大まかに実装してしまって、細かい部分をPythonで実装するのがいいのかもしれないですねぇ。

さっそく実行

いい感じで動いてますね。データが更新されるのが毎日夕方〜夜なので、ポーリングはせずにボタン押下時にデータ更新を行うようにしています。

そして、今日(2020/09/26)は91人でした。早く収まるといいなぁ。

この投稿をInstagramで見る

今日は91人。

pokio(@pokiiiiio)がシェアした投稿 -

M5StickC

M5StickC

  • メディア:

実際のコード

クソコードはこちらです。

from m5stack import *
from m5ui import *
from uiflow import *
import wifiCfg
import urequests
import time

setScreenColor(0x000000)

label0 = M5TextBox(79, 10, "connecting", lcd.FONT_DejaVu18,0xFFFFFF, rotate=90)
label1 = M5TextBox(49, 10, "to Wi-Fi", lcd.FONT_DejaVu18,0xFFFFFF, rotate=90)
label2 = M5TextBox(19, 10, "access point...", lcd.FONT_DejaVu18,0xffffff, rotate=90)

def buttonA_wasPressed():
  # global params
  label0.setText('getting')
  label1.setText('covid-19')
  label2.setText('data...')
  try:
    req = urequests.request(method='GET', url='http://xx.xx.xx.xx:1880/covid', headers={})
    label0.setText(str(req.text.split('\n')[0]))
    label1.setText(str(req.text.split('\n')[1]))
    label2.setText(str(req.text.split('\n')[2]))
  except:
    label0.setText('*****')
    label1.setText('error')
    label2.setText('*****')
  pass
btnA.wasPressed(buttonA_wasPressed)

wifiCfg.doConnect('MASARU-Wi-Fi_elecom', 'linkinpark123')
label0.setText('press')
label1.setText('button A')
label2.setText('to get data...')
「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。