No.122 今日の天気は?
動画URL: https://youtu.be/aX_WHgqxGYQ
iPhoneのアプリで天気予報APIから天気予報データを取ってきて、micro:bitへbluetoothでデータを送信し、micro:bitを使って天気、最低気温、最高気温を表示するプログラムを作りました。
さと(小6)
プログラムのページをひらく
どんな さくひんか
iPhoneのアプリとmicro:bitの2つを作りました。
iPhoneアプリ
iPhoneのプログラムは、ここのページにあります。
iPhoneアプリは、無料の天気予報API Open-Meteoを使い、天気予報データを取ってきて、micro:bitへbluetoothを使い「晴れ」、「雨」などの天気の情報と最低気温、最高気温を送ります。
micro:bit
micro:bitのプログラムは、ここのページにあります。
micro:bitは受信した、bluetoothのデータから、サーボモータを利用して、天気情報と最低気温、最高気温を表示します。
つくりかた
iPhoneアプリ
無料の天気予報API Open-Meteo に選択されている地域情報の座標情報を送り、天気予報情報を取ってきます。
取ってきた、天気予報から、天気の情報を抜き出し、天気予報のデータは
- 雪のときは 1
- 曇のときは 2
- 晴れ時々くもりのときは 3
- 晴れのときは 4
というかたちにし、最低気温、最高気温は数字を文字列にして、カンマ区切りの文字列にし、最後に改行を追加してbluetoothで接続しているmicro:bitへ送ります。
micro:bit
bluetoothで受け取った情報をもとに、天気の情報は、受け取った数値に合わせて、サーボモータの0番の角度をだいたい45度ずつ回転させ、天気の絵を切替えています。
最低気温、最高気温はそれぞれサーボモータ1番、2番を-15℃〜45℃が角度0°から180°になるように変換してモータを回転させます。
くふうしたところ
iPhoneアプリ
天気予報APIは座標情報を指定することしかできないので、都道府県の県庁所在地の座標をアプリに入れておくことで、天気予報の場所を分かりやすく表示できるようにしました。
micro:bit
天気を表示する部分で、45度毎に絵を書いておいたのですが、実際にサーボモータで45度を指定しても、ぴったり45度に回転しなかったので、正しく絵が表示されるように、角度の微調整をして見やすくしました。
最低気温と最高気温で針の色を変えることで分かりやすくしました。
大変だったところ
iPhoneアプリとmicro:bitをbluetoothで接続する所がなかなかできなくて、大変でした。
最初はうまく動かなかったのですが、iPhoneのプログラムが悪いのか、micro:bitのプログラムが悪いのか分からずとても時間がかかりました。
また、工夫した所にもかきましたが、サーボモータが数値で指定した角度ぴったりに動かなかったので、自分が書いた絵が正しく表示されるように別のプログラムを作って角度を調整するのも大変でした。
てつだってもらった ところ
iPhoneのプログラムを作る所を手伝ってもらってつくりました。