見出し画像

【GASでIoT】スプレッドシートと連携する「かんたんスマート・カレンダー」を試作する(最終)~点灯部について~

WEBネイティブのアプリである、Googleスプレッドシートは、ネットに繋がる他のデバイスで容易に情報を利用することができます。

そのシンプルな応用例として、スプレッドシートに記載した、イベントが有るか/無いか程度の簡単なカレンダー情報を、LEDの点灯情報で掲示することを試作してみました。



題して「かんたんスマート・カレンダー」です。

このカレンダーのシステムは、サーバ側がGAS、クライアント側がラズベリーパイになっており、受け取った情報をもとに、ラズベリーパイが発光デバイスのNeoPixcelを制御して点灯させています。

ラズベリーパイには、安価なPicoWを使用しています。

ーーーーーーーーーー

「かんたんスマート・カレンダー」のデータべースとなるスプレッドシートのご紹介はこちら。こちらはいわばサーバ側で、今回はシートをWEBページとして公開することで外部からアクセス可能にしました。

そして、こちらはクライアント側となる「ラズベリーパイPico W」側の
プログラム(スケッチ)です。

ラズベリーパイPico Wは通信機能があるマイコンですが、クライアント側としてSSL認証の必要なHTTPSではじまるURLにアクセスしたプログラム例がまだそれほど多くありません。(スプレッドシートにアクセスするには、HTTPSアドレスへのアクセスが必要です)

たまたま見つかったのが、ArduinoIDE環境下でのC言語による実装例だったため、今回は、メジャーやMicoPythonではなく、C言語で実装しています。

通信で受け取ったカレンダー情報を元に、ラズベリーパイPico WはがNeoPixcelを制御して点灯させます。


今回の記事では、この発光部分について、ごく簡単に触れた説明をするものです。このシリーズの最終記事になります。

システムでデータベースとして使用するスプレッドシートは、試作版ですので、まともなカレンダーとしてはまだ使えません。

本記事では実装コードをご紹介していますが、様々な理由により、この説明通りにいかない場合がしばしばあります。こうした場合の対応は、申し訳ありませんが、自己責任・自己解決でお進めくださるよう、お願いいたします。 

GASによるプログラムはの内容は、個人や小規模なグループ内での利用を想定しており、規模の大きなグループや商用での利用は想定しておりませんのでご注意下さい。


NeoPixelと工作用厚紙、3Dプリンタを使った前面パネルのメイキング


表示部については、過去の記事で紹介した以下のものの単純なスケールアップです。

ほぼ再掲になりますが、以下ご説明します。

発光デバイス

この記事でご紹介しているカレンダー表示部のデバイスはNeoPixcelというIC付きカラーLEDです。これが発光デバイスとなります。

NeoPixcelは、フルカラーLEDが数珠つなぎにしたテープ状の製品ですが、1灯ずつに内蔵されたICによって、個々のLEDの明るさや色を制御できます。

また、外部との配線は、LED数にかからわらず3本(内1本は電源線)だけで良くラズベリーパイPico Wの様に、端子数が限られたマイコンで制御する際に重宝します。

加えて数珠つなぎになったデバイスのどこを切り出して使っても良いという、とても便利なデバイスです。(テープには銅はくがあり、途中で切った場合はここに配線できます)

ラズベリーパイPico Wでこの発光デバイスを制御した例は、以下の記事で詳しく紹介しております。今回の記事ではこれの灯数を増やしたものです。

ラズベリーパイPico Wとの配線

下図で水色部分がNeoPixcelで、3本の配線の内、中央の一本が信号線となっており、GP端子に接続し、アースをGND端子に接続して電位を合わせてやります。

電源はラズベリーパイPico Wからも取れますが、点灯数が増えた場合に過剰な電流がラズベリーパイPico Wの中を通らない様に、モバイルバッテリーからプラス側の配線を分岐させて直結しています。



実際の写真(裏から見たところ)はこちら。

折り返し部分は、NeoPixcelを一旦カットして3芯のリボンケーブルで接続し、物理的に曲げやすい様にしています。


NeoPixcelはそのまま使っても良いのですが、光っている部分を大きくみせたい事などがあり、一工夫しています。工夫の内容は冒頭の紹介記事(お天気インジゲータ)と全く同じなのですが、本記事でも改めて紹介します。

以下、点灯部について、その各パーツをご紹介します。(メイキングの写真を撮っておかなかったため、途中の写真は過去の記事の再掲です)

正面パネル

大きな目立つ正面パネルは、工作用厚紙で作りました。

A4サイズの厚紙に四角い穴をあけてカットし、テープでつないだものです。色が付いているのは、カラー画用紙を同様にカットして重ねています。

文字はカッティングシートで切り出しました。


このパネルの裏側には、一本のNeoPixcelが、蛇行して取り付けられています。(写真はバッテリーを外した状態です)右端にはラズベリーパイPico Wの本体があり、ここから点灯をコントロールしています。



ラズベリーパイPico Wは、プログラム書き込みのために時々取り外してPCに接続する必要があるので、コネクタ代わりに、ジャンパー線のオス・メス端子を半田づけしています。

写真は以下の記事の再掲です。


NeoPixcel発光部のレンズカバー

さて、NeoPixcelは小さなフルカラーLEDが数珠つなぎになったデバイスですが、一つづつのLEDは小さいため、できればレンズカバーを付けて点灯部を大きく見せたいものです。


そこで、光造形タイプの3Dプリンタで、透き通ったレジンを使ってレンズカバーを自作しました。

以下はTinkerCadで作図した3Dモデルの画像です。

これを造形した写真です。

これを、前面パネルに空けた穴の裏からセットします。(写真は別の記事のものですが、内容は同じです)

表からみると、発光部が凸レンズになっていて、光らせると大きな光源として認識できます。

NeoPixcelの取り付けカバー

さて、NeoPixcelには、テープ状のデバイスの裏面に粘着材が塗布されていて、何かの基材に固定できる様になっています。しかし、今回はLEDを上にして前面カバーにセットしたいので、粘着面は利用できません。


そこで、LED面を上にして、前面カバーに固定するための取り付けカバーを、3Dプリンタで作りました。

両側にツメが飛び出していて、ちょうどNeoPixcelを間に挟み込める様になっています。また、LED部がカバーから覗ける様に穴をあけています。

レンズカバーと一体成形したいところですが、3Dプリンタには造形が得意な面があり、ツメの細かい造形と、レンズの造形を両面に配すると、どちらかの仕上がりがサポート材などで汚くなってしまいます。そのため、本記事の様に別パーツにしています。

  
以下はNeoPixcelを取り付けた状態です。

表から見た状態。LEDが空けた穴に嵌まっているのが判りますか。

この状態で、前面パネルの裏側から、カバー材をグルーガンで接着固定します。(写真は別の記事の引用です)

NeoPixcelそのものをグルーガンで接着したいところですが、クセが付いていてなかなか平らにセットできないため、こうして、カバー材を介してセットすることで平らになり、接着も容易になります。

以上、ラズベリーパイPico Wを使って、スプレッドシートの情報を外部表示させた例でした。

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