所定のYouTubeチャンネルの配信予定をLEDで通知する(M5StickC)

できたもの 動画の出来が色々とアレだが、動作時の様子を以下の動画の後半で確認できる。 動画だと映りが悪いが、写真だとLEDをつけた時の様子は以下のような感じになる。 作成目的 M5系列からYouTube Data APIを使った作例を作ってみたくて、作成した。 使用部品 M5StickC 1個 PCA9685 16チャンネル PWMモジュール 3個 フルカラーLED 12個 筐体設計 STLデータは以下に公開してある。 M5StickCとPCA9685モジュールが3個入るような箱を設計した。最初はだいぶコンパクトに設計していたのだが、配線が箱に収まらないことが分かり、途中で拡張した。もともとはM5StickCも箱の中に収める想定だったのだが、入らなかったので、横につけることにした。 フルカラーLEDは配置する場所に自由度を持たせられるように、個別に格納する箱を作成して、それぞれ4本の配線でM5StickC側の箱と接続するようにした。 配線 今回の配線の概要図を以下に示す。 PCA9685モジュールとフルカラーLEDの接続部分はテキトーになっているが、LEDについてはRGB順で1個目のLEDは1個目のPCA9685モジュールの0,1,2chに接続、2個目のLEDは1個目のPCA9685モジュールの3,4,5chに接続…という形で接続している。 ここが一番しんどかった。PCA9685モジュールを3個使っているのでやろうと思えば最大16個のフルカラーLEDを接続できるが、12個配線したところで力尽きた。 ソフト実装 ソフト全体は以下のリポジトリに置いてある。 src/main.cppについて以下の部分は各ユーザー毎に書き換える必要がある。 APIキー アクセスポイントのSSID アクセスポイントのパスワード あと、src/main.cpp中のchannelsをいじれば対象とするYouTubeチャンネルとLEDの色を変更できる。 M5StickCからYouTube Data APIを利用する部分は、以下のAPIラッパーを利用させていただいた。 ただし、このままではチャンネル情報しか取得できないため、以下の関数等を追加している。 std::vector<String> YoutubeApi::getUpcomingBroadcasts(char *channelId) 指定されたChannelIDのチャンネルの配信予定(VideoID)を取得する。 BroadcastDetails YoutubeApi::getBroadcastDetails(char *videoId) 指定されたVideoIDの動画の配信詳細情報を取得する。 配信開始予定時刻は詳細情報からしか取れない。 課題 きちんと検証はしていないが、現状のソースだと、YouTube Data APIのクォータを異常に消費する。本当は1分ごとに情報取得とかをしたかったが、無料枠ではクォータが足りなくなる。 各LEDに紐づくチャンネルIDと、LEDの色がハードコーディングされているので、外部から設定できるようにしたい。 アフィリエイト M5Stack M5StickC ESP32ミニIoT開発ボードm5stack iotキット フィンガーコンピューターカラー0....

April 3, 2021 · 1 min

Ambientを使って、PowerCに接続されているバッテリーの情報を記録する

Ambientとは 本当にすばらしいサービス。 Ambient – IoTデーター可視化サービス データをテキストでダウンロードできるということで、今回使用させていただくことを決めた。 データーのダウンロード機能をリリースしました – Ambient PowerCとは M5StickCと接続できるバッテリー充電モジュール。 16340バッテリー(3.7V/700mAh)を2個搭載できる。 USB Type-A端子から、外部へ電源供給(5V/1.5A)ができる。 Ambientを使ってバッテリーの電圧を記録する 今回はAmbientの使い方の勉強を兼ねて、PowerCを使ってバッテリーの情報を記録する。 PowerCは電源管理IC IP5209 が付いており、I2C通信によってバッテリーの情報を確認できる。 IP5209から取得できる情報 PowerCのサンプルスケッチをみると、電圧値と電流(電気量)を取得できるらしい。 スイッチサイエンスの紹介ページには M5StickCと接続すると、I2C(アドレス0x75)を通じて、電圧、電流、その他の情報を確認できます。 とあり、その他も取得できるとあるので、他にどんな情報を取得できるかIP5209の以下のデータシートを読んでみた。 IP5209-Injoinic.pdf このデータシートには The built-in 14bit ADC in IP5209 measures battery voltage and current accurately. ADC data are available on I2C interface. IP5209 has integrated a fuel gauge algorithm, acquiring battery’s state of charge precisely. とあり、バッテリーの電圧と電流が測定できるとしか書かれていない。 私が見つけたこのデータシートにはレジスタの情報が(私が読んだ範囲では)見つからなかった。 もうちょっと探せば他の形式のデータシートがあるかもしれない。 少し調べてみると、M5Stackで使われている電源IC IP5306 はカスタム品で、出回っているデータシートにはレジスタの情報がないらしい。 以下のようなTweetを見つけたので引用させていただく。...

June 6, 2020 · 1 min