今回は、mBot2プログラミングシリーズ(mBlock編)の第15回です。
mBot2のCyberPiには、IoT(Internet of Things)機能が搭載されており、より高度なプログラミングが可能です。
本記事では、mBlockを使用してIoT機能の日時取得・気象情報取得プログラムを作成し、mBot2のIoT機能を体験していきます。
この記事で分かること
- CyberPiのIoT機能について
- IoT機能に関するブロックとその使い方
- IoT機能を活用した制御プログラムの作成方法
CyberPiとIoT機能
CyberPiは、mBot2に搭載された多機能モジュールで、ディスプレイ、センサー、マイク、スピーカーなどが一体となっています。
これにより、音の再生や制御、ディスプレイ表示、センサー入力の処理など、さまざまな機能を実現することができます。
CyberPiでは、インターネットに接続することで、Makeblockが提供する様々なクラウドサービスを使用して、AI機能やiIoT機能を実装することができます。
IoT機能では、Wi-Fi接続を利用してデータをクラウドに送信したり、クラウド上のデータを取得して制御することが可能です。これは、遠隔地でのデータ監視や制御を可能とする技術です。
また、CyberPiでは、天気情報や日時の取得が可能となっています。
mBlockで扱える、IoT機能に関するブロックは『IoT』パレットに入っており、内容は大きく次の3つに分類できます。
- Wi-Fiの接続
- ユーザークラウドメッセージ
- 気象情報と日時の取得
それぞれ解説していきます。
mBlockとは?『スクラッチ(Scratch)』との違い
mBlockは、小学校や学習塾で取り入れられている『スクラッチ(Scratch)』をベースとしたビジュアルプログラミングツールです。
スクラッチの基本的な操作感を引き継ぎながら、ロボットやハードウェアの制御に特化しているため、mBlockを使えば、プログラミング初心者でも簡単にロボットプログラミングを始めることができます。
Wi-Fiの接続
CyberPiのIoT機能を使用するには、次の3つの条件を満たす必要があります。
- mBlockのアカウントにログイン
- mBlockのアップロードモード=オン
- Wi-Fiを接続
ここでは、Wi-Fiの接続について解説します。
mBlockで使用するブロック

Wi-Fi接続を開始します。
ssid:Wi-Fiアカウントを設定する
password:Wi-Fiパスワードを設定する
このブロックを実行しても、Wi-Fi接続が完了しているとは限りません。
接続の完了は、次のブロックを用いて確認します。

Wi-Fiの接続状態を検出します。

最後に接続したWi-Fiアカウントとパスワードで、ネットワークに再接続します。

Wi-Fiネットワークから切断します。
Wi-Fi接続プログラム
『Wi-Fi接続して、接続に成功したらブザーを鳴らす』プログラムを作ってみます。

「ssid」と「password」の部分には任意の値を設定します。
『ネットワークに接続するまで待つ』処理を入れて、その後にブザー処理を追加します。
このようにしておくことで、確実にネットワーク接続が完了してから、その後の処理を開始することができます。

ユーザークラウドメッセージ
ユーザークラウドメッセージとは
ユーザークラウドメッセージを使用することで、デバイス間、及びプロジェクト間でデータ通信が可能になります。
例えば、複数のPCで同一のmBlockアカウントでサインインすることで、任意のPCからデータを送信しえて、他のPCでそのデータを受け取ってCyberPiやスプライトを制御することができます。
mBlockで使用するブロック

指定されたユーザークラウドメッセージを送信するブロックです。

指定されたユーザークラウドメッセージと指定された値を送信するブロックです。

指定されたユーザークラウドメッセージを受信したとき、後続のブロックを実行するブロックです。

指定されたユーザークラウドメッセージを通じて、受信した値を返すブロックです。
ユーザークラウドメッセージの送受信プログラム
以下は、『ユーザークラウドメッセージの送受信をおこなう』プログラムです。
※事前にWi-Fi接続する必要があります。


このプログラムは、CyberPiのBボタンを押すと、mBlockのスプライト(初期状態ではパンダ)が10歩動くプログラムです。
ユーザークラウドメッセージをCyberPiが送信し、mBlockのスプライトが受信して動作する例です。
初期状態では、スプライト側に『ユーザークラウドメッセージ』のパレットは表示されていません。
ブロックパレットの[+拡張]ボタンを押し、拡張センターで『ユーザークラウドメッセージ』を追加してください。


ユーザークラウドメッセージの値を使用したプログラム
先ほどのプログラムにおいて、ユーザークラウドメッセージを送信する際に値を付加して送信します。
※事前にWi-Fi接続する必要があります。


このプログラムは、CyberPiのBボタンを押すと、mBlockのスプライト(初期状態ではパンダ)が受信したメッセージの値分、動くプログラムです。
このように、値を付加することで、その値を活用した制御が可能となります。

気象情報と日時の取得
mBlockで使用するブロック

指定された場所のリアルタイムの気象データを返すブロックです。
[場所]をクリックすると、街を選ぶ画面になります。
入力してすると候補が出てくるため、任意の場所を選択します。

[最高気温(℃)▼]をクリックすると、次の選択が可能です。


指定された場所の大気質情報を返すブロックです。
[場所]をクリックすると、任意の場所を選択が可能です。
[AQI▼]をクリックすると、次の選択が可能です。


指定された場所の日の出・日没の時間を返すブロックです。
[場所]をクリックすると、任意の場所を選択が可能です。
[日の出▼]をクリックすると、[日の出/夕日]の選択が可能です。
[時間▼]をクリックすると、[時間/時/分]の選択が可能です。

指定されたタイムゾーンの、指定された日時情報を返すブロックです。
[(0)UTC▼]をクリックすると、タイムゾーンの選択が可能です。
日本の標準時は、UTC(協定世界時)+9時間です。
[年▼]をクリックすると、次の選択が可能です。

※「週」は曜日を返します。

指定されたタイムゾーンの日時情報を返すブロックです。
1つ上で紹介したブロックの日時情報の選択肢(年、月、日、週、時、分、秒)を全て表示します。
[(0)UTC▼]をクリックすると、タイムゾーンの選択が可能です。
日本の標準時は、UTC(協定世界時)+9時間です。

1つ上のブロックで取得した日時情報の、指定された日時情報を再度取得するブロックです。
[年▼]をクリックすると、次の選択が可能です。

日時・気象データを取得するプログラム
『今日の日時と、気象データをディスプレイに表示する』プログラムを作ってみます。
※事前にWi-Fi接続する必要があります。

日本(UTC+9)の日時と、蟹江町の気象データを表示するプログラムです。
[天気]の値は英語でとなるため、AI機能で日本語に翻訳した上で表示させています。
[最高気温]と[最低気温]の値は数字のみのため、表示した後に「℃」の表示を加えています。


まとめ
今回は、CyberPiのIoT機能を使ってクラウドメッセージの送受信や、日時情報・気象データを取得する方法を紹介しました。
IoTを活用することで、ロボットがよりインテリジェントに動作し、さまざまな環境に適応できるようになります。
特にセンサーのデータをクラウドでやりとりすることで、遠隔地でのデータ監視や制御が可能となり、プログラミングの可能性が一層広がります。
これらのIoT機能を活用することで、プログラミングの楽しさと可能性が広がります。
ぜひ、今回のプログラムを参考にして、自分だけのオリジナルプログラムに挑戦してみてください。
mBlockを使ったmBot2のプログラミング方法を丁寧に解説していておススメです。
CyberPi単体でもプログラミング教育に非常に役立ちます!
