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の軌道や軌跡の見える方角を計算できます。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?