見出し画像

BOCCO APIをつかってみよう!-Web APIと国際宇宙ステーション-

エンジニアのたくろーどんです。
前回、BOCCO APIをESP32からつかえるようにして、簡単な定型文ボタンをつくってみました。

BOCCOでは、天気や防災情報をおしゃべりしてくれる機能がついています。上記のような情報や定型文だけでなく、いろいろな情報をおしゃべりしてくれればもっと楽しそうですね。

本記事はこんな人向けです!

・天気や防災情報の通知だけでは物足らない人
・Web APIを連携してBOCCOにおしゃべりさせたい人

やってみたこと

Web APIをつかって国際宇宙ステーション(ISS)が近づく時刻を教えてくれる機能を追加してみました。
※詳細なISSが近づく方角を知りたい場合は軌道計算が必要になります。

デモではボタン操作でおしゃべりさせていますが、現在時刻を取得するライブラリがあるので、ある時間になったなら通知してくれるようにもできます。

国際宇宙ステーションのこと

サッカー場のほどの大きさがあるISSは約90分に1度、地球を一周しています。なので、頻繁に私たちの上空を通過していますが、日中は目視することは難しいです。

しかし早朝や夕方で、なおかつISSの高度や天候といった条件があうと、ISSの太陽光パネルが太陽光を反射して、その光がまるで流れ星のようにスーッと空を通り過ぎて行きます。なかなか綺麗です。

つかうもの

BOCCO
ESP32
Web API  

Web APIには、こちらのAPIをつかっています。
リンク先に「International Space Station Pass Times」とあるように、緯度と経度をAPIのURLに入力すると、ISSがだいたい頭上に通る時間をAPIが返してくれます。

たとえば、ユカイ工学の緯度(35.691°)と経度(139.71°)をAPIのURLに入力してみます。

http://api.open-notify.org/iss-pass.json?lat=LAT&lon=LON

http://api.open-notify.org/iss-pass.json?lat=35.691&lon=139.71

このURLをブラウザで入力すると、文字列がかえってきて、その中の項目の1つに「risetime」とあります。これが次に頭上付近を通過する時刻(Unix時間)になります。

これを普段見慣れた日付に変換すると、ISSの通過時刻がわかります。

詳しいAPIの説明は先ほどのリンクから読んでみてください。


技術的なこと

サンプルコードはgithubにあげてあります。
BOCCO APIの取得やプログラム上の設定は、前回の記事を参考にしてください。

ポイントは、

・ISSの通過時刻がUnix時間でかえってくるのでそれを日付にすること
・APIのJSONデータから必要なデータを取り出すこと

です。


おわりに

ISSだと、午前2時に天体望遠鏡をかついでいく必要もないですし、時間と条件があえば確実に人工天体の流れ星がみられますね。

ほかにも便利なWeb APIが公開されているので、ESP32と連携させてBOCCOで通知させてみると面白いかもしれません。

電源にESP32をぶっさして、お好みのAPIを連携させてればかなりハードウェアをさわるほうが得意という方にはお手軽です。


もっと正確に軌道計算したいなら

北アメリカ航空宇宙防衛司令部(NORAD)がCelestrakというサイトで、人工衛星やスペースデブリの軌道情報が随時公開されています。

こちらから、2行軌道要素形式(TLE)を真面目に計算すれば、正確なISSの軌道や軌跡の見える方角を計算できます。


画像1

この記事が参加している募集

つくってみた

この記事が気に入ったらサポートをしてみませんか?