知的好奇心 for IoT

IoT関連の知的好奇心を探求するブログです

IoTメッセージボードの活用例2 天気予報と運行情報の自動表示方法

IoTメッセージボードの活用例として、天気予報と運行情報をスケジュールに従って自動表示できるようにしてみました。

 

今回は元のコードを修正して対応するのではなく、クラウド変数の同期機能を利用して、天気予報と運行情報をスケジュールに従って取得するプログラムを動かすマイコンを追加する形態にしてみました。

 

クラウド変数の定義

今回は、新たにマイコンを加えることになるので、Arduino Cloudで新たにThingsを作る必要があります。

 

Thingsを作ったら、クラウド変数を追加します。

上の図で、上下に回転している矢印が付いている「message」と「power」が同期している変数です。

 

変数を同期させるには、変数名を入力後に「Sync with other Things」をクリックして、他のThingsの変数を選ぶと同期できます。

 

「morning」と「night」はスケジュール用の変数です。変数の型に「Schedule」を選ぶと「CloudSchedule」の変数が作られます。

 

ダッシュボードの定義

ダッシュボードはThingsとは独立しているので、新たなダッシュボードを作らずにスケジュールウィジットを既存ダッシュボードに加えてもOKです。

 

「morning」変数と結びつける「今日の天気と運行情報」スケジュールと、「night」変数と結びつける「明日の天気」スケジュールの2つのウィジットを追加してください。

 

スケッチ

Arduino Cloudでは、Thingsのセットアップタブでクラウド変数とマイコンを追加後、スケッチタブを表示するとスケッチが自動生成されますが、ここに載せたコードに置き換えて使うことができます。

スケッチは外部GPIOを使用していないので、ESP32搭載のマイコンであればどれでも動くと思います。

 

天気予報の設定

まず、次のURLにアクセスして、使用したい地域の6桁のID番号を入手してください。

https://weather.tsukumijima.net/primary_area.xml

 

スケッチの7行目のURLを、入手したID番号に変更します。

例:札幌の天気予報を取得したい場合(ID番号:016010)

#define WATHER_API  "https://weather.tsukumijima.net/api/forecast/city/016010"

 

運行情報の設定

Yahoo!路線情報の運行情報から、運行情報を知りたい路線を表示します。

運行情報(JR、私鉄、地下鉄、新幹線、フライト) - Yahoo!路線情報

 

スケッチの12行目のURLを、表示したページのURLに置き換えます。

例:京浜東北根岸線の運行情報を取得したい場合

#define TRAIN_URL  "https://transit.yahoo.co.jp/diainfo/22/0"

 

スケッチの13行目の路線名も、12行目に合わせて変更します。

ただし、IoTメッセージボードで表示できない漢字が含まれている場合があるので、次のツールでチェックして適切な文字に変更します。

IoTメッセージボード用の文字変換ツール - 知的好奇心 for IoT

例:京浜東北根岸線の場合

#define TRAIN_LINE "京ヒン東北根岸線"

 

スケッチ