見出し画像

【GASでIoT】(その1)スマホを離れ、自由なデバイスからアクセスしよう!

スマートフォンやタブレットPCの普及により、今日では様々なWEBアプリを利用する機会が増えてきました。

WEBアプリの最大の利点は場所に縛られずどこからでもアクセスできる事です。昔の様に、デスクトップパソコンのある所でしか使えない、という事はなくなり、ノートパソコンやスマートフォンがあれば、いつでも、どこでもアクセスできる様になりました。

しかし、ちょっとした情報の確認や、単純な数値の入力の場合でも、わざわざスマートフォンなどを取り出して、起動させなければならないのは不便です。

ライトの点灯で確認したり、押しボタンから入力したり、その時々で自由なデバイスからアクセスできると便利ですね!

さまざまなデバイスからインターネットを介して情報をやりとりする考えを「IoT(モノのインターネット)」と言います。近年、IOTの為のツールが出回り、素朴なものであればアマチュアでもこれを実装する事ができる様になりました。

そこで、GAS(GoogleAppsScript)を使ってIoTを実現する方法について、ご紹介しようと思います。


IoT事はじめ ~ボタンを押して、ON-OFFの状態をスプレッドシートに記録する~


手始めに、以下の様な、ごくごく素朴なIoTを実装してみます。

1.ボタンを押下すると、発行ダイオード(LED)の、点灯(ON)と消灯(OFF)を繰り返される。

2.この時、ON-OFFの情報をインターネットを通じてスプレッドシートに「1」「0」で記録する。

3.スプレッドシートからは、何行目まで記録されたかの情報をレスポンスとして受け取る。(これを表示するデバイスの実装は難しいので、今回はPCなどでの確認までとします)

画像1

これを実現するためには、ボタンやLEDの状態をインターネットへ流すデバイスが必要です。そのデバイスに ラズベリーパイ(Raspberry Pi )Zero WH という小さなコンピュータを使う事にしました。


ラズベリー・パイ(Raspberry Pi) Zero WHについて

ラズベリーパイ(Raspberry Pi )Zero WH は、以下の様な外観をした小さな電子部品で、大きさは長さ方向で7cm少々です。

画像2

なりは小さくても一つの立派なコンピュータですが、軽くて小さくて、コンピュータというよりも「電子部品」というという方が、見た目にはぴったりします。

1枚の基板の上にいくつかのIC部品、ピン、各種ソケットを有しており、電子部品や各種ケーブルを接続して、ユーザが簡単なプログラムを組む事で、さまざまな処理を行う事ができます。

このような1枚の基板上に全てが実装されたコンピュータは「シングルボード・コンピュータ」と呼ばれ、IoTを実装する時に広く使われています。

これにボタン、ライト、モータ、カメラ、スピーカといった、さまざまな「モノ」をつないで、インターネットに接続すると、アマチュアでも容易にIoTを実現できます

シングル・ボード・コンピュータには他にも色々ありますが、ラズベリーパイ Zero WHを採用したのは、広く普及していてアマチュア向けの文献が多数あり、仕様があまり変わる事なく一貫していて、かつ値段が手ごろだからです。

値段について・・・。ラズベリーパイ Zero WH の本来の価格は2~3千円ですが、2021年現在、日本では実売価格が高騰していて、有名な通販サイトであるamazonなどでみても1万円を超えるものが散見されます。しかし、よく探すと、以下の様な本来の?値段で売っているサイトが見つかると思いますので、手ごろな販売サイトがないかよく探してみる事をお奨めします。

画像4

上記は中国の通販サイトでの例です。国内でも同じ様な価格のサイトはありました。

ラズベリーパイには、他にも色々なタイプがあります。

以下はモデルBと呼ばれる高機能タイプ。価格はZeroより高額で、2021年現在で6~8千円ほど。ちょっと高いですね。動画のやりとりなど、もっと高度な用途に向いています、

画像3

以下はpicoと呼ばれる低機能タイプ。値段は2021年現在で1千円を切っており、安価なのが魅力です。残念ながら通信機能が無いため、今回の用途には使えません。

画像5


IOT用のもう一つのデバイス「プログラム組み込みマイコン」について


アマチュアがIOTに利用するデバイスには、ラズベリー・パイの様な「シングル・ボード・コンピュータ」以外に、「プログラム組み込みマイコン」もよく使われます。

このカテゴリーのデバイスは、ラズベリー・パイに似た用途で利用できる上、値段がもっと安いものが数多くあります。今回の用途に使用できそうですが、どうでしょうか?

実は、このカテゴリーのデバイス(以下マイコンと称します)は、インターネットへのアクセスする際の設定がやや難しく、とりわけGASの様に、HTTPSで始まるURLにアクセスするのは櫃筋縄ではできず、初心者には少々荷が重い。そのため、今回は採用しませんでした。

ユーザー観点で、シングルボード・コンピュータとマイコンの一番大きな違いは、「オペレーション・システム」という、データ通信やプログラム稼働を制御してくれる機能が、前者にはあり、後者には無いという点です。

「シングルボード・コンピュータ」の場合は、HTTPSへのアクセス設定はデバイス側で自動的な対処してくれる一方で、「マイコン」ではユーザが設定しなければならないため、通信環境づくりの負担がぐっと増えてしまいます。

GoogleAppsScriptを利用する場合、URLはhttpsで始まるものばかりですので、この事はかなり大きな欠点になると判断した次第です。

自分でも行ったのですが、HTTPSで始まるURLにアクセスするための、SSL認証の設定に非常に手間取りました。セキュリティ認証のための長い長い文字列をプログラム中に書き込むのですがなかなかやっかいで、何度も失敗しました。また、SSL認証の必要なURLへの通信に関する文献も少なく、初学者には厳しかったです。 GASとは異なる「HTTP(Sなし)」で始まるURLを介してGASにアクセスする方法も考えられますが、あまり仕組みを複雑化させたくありませんでした。

なお今回は採用しなかったのですが、このカテゴリーの製品(以下、マイコンと称します)には、安価で魅力的なものが多数あります。そこで横道にそれますが、いくつかここでご紹介します。

有名なのがアルデュイーノ・ウノ(Arduino Uno)というマイコンです。このカテゴリーの製品の走りとなった製品で、仕様が公開されているため類似の互換製品が多数あります。

画像6

このカテゴリーが普及する走りとなった製品です。

以下は、イチゴ・ジャム(Ichigo Jam)という日本製のもの。参考文献が多い事と、BASICという初心者に優しいプログラムで制御できる点が魅力です。

画像7

日本製で、制御プログラムでBASICを使えるのが魅力です。

以下はマイクロビット(MicroBit)です。教育目的に開発され、初学者向けの支援環境が充実し、また、タクトスイッチや簡単なLED表示器などがはじめからセットされている点が特徴です。

画像9

プログラムにスクラッチ(Scratch)という、子どもにも扱いやすい言語を使っています。ブルートゥース(Bluetooth)というデバイス間の無線通信機能もあります。

そして、今回の目的に一番近い仕様を持つのがESP32という、アルデュイーノ・ウノの互換製品で、かつ通信機能を兼ね備えたマイコンです。(結局は採用しませんでしたが、購入して色々トライはしてみました)

画像9

通信機能が初めから備わっています。多くのメーカーから類似品が販売され、ピンの位置などが一貫していないのが欠点です。メーカーによって少しずつピンの機能が異なるので、初学者は迷ってしまいそうです。



ここで一旦記事を切ります。

なかなか本題に行けませんが、次回はIOTの要(かなめ)となる、ラズベリーパイの準備作業についてご紹介する予定です。

211113_記事末




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