大潮でも釣れないときは釣れないんですけどね。
前回は潮汐情報のWebサービスを見つけました
全国各地のポイントの潮汐情報を日付を指定して取得できるすごい子でした。
今回は、これを使ってM5Stackに潮汐情報(とりあえず、大潮、中潮、・・・など)を表示させてみようと思います。
環境と実装
- 実装環境:UIFlow(Betaのほう、v1.7.2)
- デバイス:M5Stack Basic
ここで、UIFlowはBetaのほうを使っているのがミソです。Betaの方だとNTPが使えるため、こちらを使用しています。(それに合わせて、M5Stackのファームウェアも更新しています)
こんな感じでブロックを組み立てていきます。やっていることとしては、
このような処理です。
画像は予め準備
macのKeynoteとかで、大潮用、中潮用、・・・の320x240な画像を予め準備して、M5Stackに流し込んでおきます。
ローディング画面用も一応作成。流し込んだ画像をコードから参照して表示させています。
早速動作確認
うーん、今日は中潮!ちゃんと動いてそうですね!
こういうガジェットを作ったからと言って、釣果が良くなるかは別の話なので、あしからず。
MicroPythonのコードはこちら
from m5stack import * from m5ui import * from uiflow import * import wifiCfg import ntptime import urequests import time setScreenColor(0x222222) url = None wifiCfg.doConnect('*****', '*****') image0 = M5Img(0, 0, "res/loading.jpg", True) while not (wifiCfg.wlan_sta.isconnected()): pass ntp = ntptime.client(host='jp.pool.ntp.org', timezone=9) while True: image0.changeImg("res/loading.jpg") url = 'http://fishing-community.appspot.com/tidexml/index?portid=112&year=YYYY&month=MM&day=DD' url = url.replace('YYYY', str((ntp.year()))) url = url.replace('MM', str((ntp.month()))) url = url.replace('DD', str((ntp.day()))) try: req = urequests.request(method='GET', url=url) if 0 < (req.text).count('大潮'): image0.changeImg("res/ooshio.jpg") if 0 < (req.text).count('中潮'): image0.changeImg("res/nakashio.jpg") if 0 < (req.text).count('小潮'): image0.changeImg("res/koshio.jpg") if 0 < (req.text).count('若潮'): image0.changeImg("res/wakashio.jpg") if 0 < (req.text).count('長潮'): image0.changeImg("res/nagashio.jpg") except: pass wait(3600) wait_ms(2)