目次

TFabConnect
説明書

背景・目的

日本のプログラミング教育の背景の一つとなっている科学技術政策 Society 5.0。この中で、「Society 5.0で実現する社会は、IoT(Internet of Things)で全ての人とモノがつながり、様々な知識や情報が共有され、今までにない新たな価値を生み出すことで、これらの課題や困難を克服します。」 とされています。

授業でIoT体験を行うためは、インターネット接続されたデバイス(モノ)が必要となります。世の中には素晴らしい教育用IoTデバイスが数多くありますが、いずれもWi-Fiを使うのが一般的です。

しかしながら、日本の学校のネットワーク環境の多くは、同時接続数の問題やセキュリティの観点から、新たなWi-Fiデバイスを簡単に接続する事が出来ません。また、IoT体験だけを行うためだけに、新たな教育用IoTデバイスやWi-Fi拡張ユニットを購入する予算も難しい自治体が多いと思います。

2020年のプログラミング教育のスタートに合わせて、フィジカルコンピューティングデバイスとして、日本でもmicro:bit(マイクロビット)が広まりつつあります。micro:bitは、世界で500万台以上出荷(2020年5月現在)されている低コストな教育用デバイス(シングルボードコンピュータ。Wi-Fi非搭載。)です。

TFabConnect(ティー・ファブ・コネクト)は、このmicro:bitを使い「追加コスト不要」「追加のWi-Fi接続無し」でIoT体験が行えるようにする事を目的としています。

仕組み

PCのブラウザを踏み台にしてmicro:bitのインターネット接続を実現しています。

TFabConnectの仕組み
キャプチャ

インターネットとの通信には「クラウド変数」という概念を用います。TFabConnect用のMakeCodeの拡張機能を読み込むことで、クラウド変数への読み込みと書き込みのブロックが提供されます。自分で定義したクラウド変数に値(例えば温度)を書き込み続けると、TFabConnect Serverにデータが蓄積されます。

ダッシュボード

この蓄積されたデータは、TFabConnect Dashboardで時系列変化をグラフで確認する事ができます。

キャプチャ

また、遠く離れた場所にあるmicro:bit同士でグループを組んで、グループ内で同じクラウド変数を読み書きする事もできます。例えば地球の裏側のmicro:bitでAボタンを押してもらうと手元のサーボモーターが動く作品が数ブロックで簡単に作れるようになります。

チュートリアル

明るさの時系列変化を出先からグラフで見れるようにしよう!

タブレット

明るさの変化を出先からグラフで確認できる仕組みを構築します。

用意する物

  • micro:bit 1個+USBケーブル+PC
  • ダッシュボードにアクセス

    ログイン

    ダッシュボード https://beta.tfabconnect.com/dashboard/ にアクセスしてください。初めてアクセスする場合は、このような選択画面が表示されます。

    「サインアップ→一時利用」でも時系列変化グラフを描画する事ができます。

    永続的に利用する場合は「サインアップ→SNSでサインアップ」もしくは「ログイン→SNSでログイン」を選択してください

    ダッシュボード

    ログインすると、はじめは「無名のグループ」というグループが1つ作られています。

  • プログラム作成(MakeCode)

    MakeCodeを始める

    ダッシュボードの左メニューにある「MakeCode」をクリックします。もしくはhttp://tfab.jp/connect-bにアクセスすると、MakeCodeのページに移動します。

    MakeCodeを始める

    「Edit Code」をクリックするとTFabConnect専用ブロックが読み込まれた状態になります。(機能拡張で https://github.com/tfabworks/pxt-tfabconnect-betaを読み込む方法もあります)

    ブロック

    次に、「クラウド変数〜を〜にする」ブロックを「ずっと」の処理の中に入れ、「light」というクラウド変数に明るさの値を書き込むようにします。(クラウド変数名は自由に命名可能ですが、使える文字は半角英数字のみとなります)

    動作確認のため、LEDの反転ブロックを使って、書く度にLEDが点灯・消灯を繰り返すようにします。

    完成したらmicro:bitにダウンロード(インストール)して下さい。

  • micro:bitをインターネットに接続(ダッシュボードでWebUSB接続)

    MakeCodeをWebUSB接続している場合は、一旦、MakeCodeのブラウザのタブを閉じて下さい。

    次に、ダッシュボードでmicro:bitを「無名のグループ」にWebUSB接続します。以下の手順で操作し、micro:bitのイラストが赤くなれば「無名のグループ」に記録が開始されます。

    WebUSB
  • グラフを表示

    クラウド変数

    しばらく待つと「無名のグループ」のクラウド変数一覧に「light」という変数が登場しますので、右にあるグラフボタンをクリックして下さい。

    グラフ

    グラフが表示されたら、下部中央にある「自動更新」のボタンをクリックし、手でmicro:bitを覆ってみてください。数秒遅れて、明るさのグラフが下降すればOKです。

  • 出先からグラフを閲覧

    出先からグラフを閲覧するには2つの方法があります。

    (1) SNSログインを使う

    SNSログインを使う

    出先からPCでダッシュボード https://beta.tfabconnect.com/dashboard/ にアクセスし、SNSログインを行うと現在の明るさを確認する事ができます。

    (2) 公開機能を使う

    公開機能を使う
    • 「無名のグループ」の設定で「グラフ公開」を「許可する」に変更します
    • 出先から閲覧したいグラフを表示し、グラフ下の「公開」ボタンをクリックします
    • 出先から閲覧する用のURLが発行されます。このURLはスマートフォンからでもログイン無しに閲覧する事ができます

遠隔地の水槽の魚に餌をあげよう!

水槽

micro:bitのA,Bボタンを使って遠隔地の水槽のサーボモーターを動かし、魚に餌をあげる仕組みを作ります。

用意する物 リモコン側

  • micro:bit 1個+USBケーブル+PC

用意する物 水槽側

  • micro:bit 1個+USBケーブル+PC
  • サーボモーター1個+サーボモーター用電池ボックス(MB-SET-SB2,etc)
  • 餌を入る小型容器(小型タッパ等)
  • プログラム作成(MakeCode)

    リモコン側

    リモコン側のプログラムを作成し、micro:bitにダウンロードします。Aボタンが押されたら、クラウド変数「switch」に1を書き込み、Bボタンが押されたら0を書き込みます。

    リモコン側ブロック

    水槽側

    水槽側のプログラムを作成し、micro:bitにダウンロードします。クラウド変数「switch」が1の時はサーボモータの角度を180度。それ以外(=0)の時は0度にするプログラムです。

    水槽側ブロック
  • 工作

    サーボモータ
    • 容器に餌よりも少し大きい穴をキリで複数開けます
    • サーボモーターに容器をビニールテープ等で取り付けます
    • サーボモーターを水槽の縁に固定します
  • ダッシュボードで水槽側micro:bitをグループに招待

    リモコン側PC
    グループ追加

    ダッシュボードにアクセスし、グループの「+」ボタンをクリックします。

    グループ追加

    グループ名入力欄に「餌やり」と入力し「作成」をクリックします。

    micro:bitをインターネットに接続」と同じ手順で「餌やり」グループにmicro:bitを接続します。A,Bボタンを押すとグラフに1もしくは0が書き込まれる事を確認します。

    トークン

    micro:bitがインターネットに接続されたのを確認したところで、新しいメンバーを「餌やり」のグループに招待します。「餌やり」の「メンバー」をクリックすると、メンバーの一覧表が表示されます。表の一番下にある「メンバー追加」ボタンをクリックします。

    トークン

    トークン(6桁の数字)が表示されるので、数字をメモします。

    水槽側PC
    グループ追加

    ダッシュボードにアクセスし、グループの「+」ボタンをクリックします。

    グループに参加

    「グループへの参加」タブをクリックし、メモをしたトークン(6桁の数字)を入力し、参加をクリックします。

    グループに参加

    しばらく待つと水槽側PCのダッシュボードに「餌やり」グループが登場します。

    水槽側のmicro:bitを「micro:bitをインターネットに接続」と同じ手順で「餌やり」グループにmicro:bitを接続します。

  • 動作確認

    リモコン側のmicro:bitのA,Bボタンを押すと、数秒遅れて水槽側のサーボが動作すれば完成です。あとは餌や容器の形状にあわせて、穴の位置やサーボモーターの取り付け位置の調整をしてください。

活用事例

簡易百葉箱

1日の温度と明るさの変化を記録し遠隔地から参照する事ができます。

  • PET容器の底に穴を開け、USBケーブルをパテで固定。日陰のベランダに設置しました。
  • 写真ではmicro:bitにTFW-EN1(温度誤差±1℃)を接続していますが、温度誤差±2℃程度が許容できるのであればmicro:bit本体の温度センサーでも代用可能です。

結果、このようなグラフが描けました。日没(黒いグラフ)より少し遅れて気温(青いグラフ)が下がっていく事が見て取れます。

温度のグラフ

この測定を実現するプログラムは8個のブロックで実現する事ができます。

温度のプログラム

※600,000ミリ秒=10分間隔でクラウド上のデータベースに記録

夜行性動物の監視

動物の監視

ゴールデンハムスターは夜行性の動物です。人感センサー(赤外線)を搭載したTFW-RK2を使い、ハムスターの動きをグラフで可視化してみました。

動物監視のグラフ

このグラフは、サンプル1の簡易百葉箱の明るさ(outside-brightness)と、ハムスターの動きを検知した回数(taro-active)を重ねた物です。暗い時間帯の方が活動している事が判ります。

この測定は、このようなプログラムで実現する事が可能です。

動物監視のプログラム

左の「ずっと」は、10秒毎に人感センサーの値をチェックして、動いていたらカウンターを+1しています。右の「ずっと」は、10分(600,000ミリ秒)に1回、カウンターの値をクラウド変数”taro-active”に書き込んで、カウンターをリセットしています。

給食の食品ロスを減らす

給食のおかずが余っている事を距離が離れている他のクラスに伝える装置を作る事ができます。

このアイディアは、2018年につくば市立春日学園義務教育学校 藤原晴佳先生のクラス(当時3年生)の子供達が考えてくれました。当時はTFabConnectがまだ完成していなかったので、micro:bitの無線を使ったシミュレーションで終わっていました。

以下は、6年生は3クラスあり、自分のクラスが6年1組だった場合のプログラムです。

給食のプログラム

クラス名毎のクラウド変数を用意します。クラウド変数の値が1の場合に余りがある事を伝える物とします。ボタン操作としては、給食の余りが出たらAボタンを押します。その後、給食の余りが無くなったらBボタンを押します。

その他

チュートリアルに登場するプログラムや、設置場所やセンサーを差し替える事により、様々な私達の身の回りの問題解決に活かす事ができます。

  • 老人の一人暮らしのお部屋やトイレに設置すれば、遠隔での見守りに使う事ができます。
  • 明るさと温度を記録すれば、日照と温度の関係を可視化する事ができます。
  • ドアの隅に磁石を貼り付けます。ドア枠にmicro:bitを取り付けて、ドアが開くと磁石が遠ざかるようにします。micro:bitとTFabConnectで磁力変化を記録すれば、ドアの開閉履歴を記録する事ができます。
  • micro:bitに水温センサー(TFW-TP2,etc)を取り付ければ、ビオトープやプールの水温の現在値や変化を記録する事ができます。
  • micro:bitに人感センサー(TFW-RK2,etc)を取り付ければ、来場者記録や動物の行動記録を残す事ができます。
  • micro:bitに超音波センサー(TFW-DS1,etc)を取り付ければ、川や水田の水位変化、道路に設置すれば交通量記録を残す事ができます。
  • micro:bitに音圧センサー(TFW-SL1.etc)を取り付ければ、騒音記録を残す事ができます。
  • 人感センサーとスピーカーの組み合わせで、人が来たら音で通知する事ができます。
  • 雨センサーとスピーカーの組み合わせでで、雨が降ったら音で通知する事ができます。
  • ボタンと赤外線リモコンの組み合わせで、離れた場所からエアコンのスイッチをONにする事ができます。
  • 温度センサーと換気扇の組み合わせで、温度が高くなったらビニールハウスの換気を実施する事ができます。

詳細仕様

確認済み動作環境
【OS】
  • Windows 10
  • macOS 10.15
【ブラウザ】
  • Chrome
  • Chromium Edge
クラウド変数
【変数名】
  • 半角英数字,記号(@#-_)
  • 16文字以下
  • 作れる変数の数に制限無し
  • __で始まる変数名は利用不可(予約変数で使用)
【値】
  • 数値のみ
  • 保持期間は、β版では約1日(拡充予定)
  • micro:bit側でクラウド変数への書き込みにかかる時間は約1秒
  • micro:bit側でクラウド変数の参照にかかる時間は約3秒
グループ
  • 登録グループ数は制限無し
  • グループのメンバー数は制限無し
  • グループ名は半角英数字および日本語も可能で16文字以下
対応ソーシャルログイン
  • Google
  • Facebook

注意事項

  • micro:bitのシリアル通信機能のバグの影響で、稀にデータの読み書きに失敗する事があります。
  • 学校のネットワークで外部サイトへのアクセスがブロックされている場合は、makecodeへのアクセス以外に、TFabConnect Server へのアクセスを許可して頂く必要があります。
    ドメイン名
    iothub.mbitc.net
    ポート番号
    443
  • MakeCodeとmicro:bitがWebUSB接続している場合は、TFabConnectとmicro:bitのWebUSB接続ができません。MakeCodeを一旦、終了して下さい。