Arduino UNO R4 WIFIをArduino Cloudに接続してIoTを体験する方法
こんにちは、せでぃあ(@cediablog)です。
Arduino UNO R4 WIFIを使って、手軽にIotを体験できる方法を紹介します。
必要なもの
- Arduino UNO R4 WIFI
- スマートフォン
- パソコン
- USB TypeCケーブル
IoT(Internet of Things)とは、あらゆるモノがインターネットに接続されることを言います。
家電製品がネットワークと接続して情報提供したり、スマホから制御できる機能もIoTの活用事例になります。
- Arduino Cloudの設定方法と使い方
- Arduino動作プログラムの作り方
- スマホアプリ「Arduino IoT Cloud Remote」の使い方
せでぃあはこんな人物です
✅プライム企業に勤める電気・機械設計エンジニア
✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作
✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞
✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中
✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中
Arduino UNO R4 WiFiはここで買えます
スマホアプリからLEDマトリクス表示を制御する
スマホアプリ「Arduino IoT Cloud Remote」から、LEDマトリクス表示を制御するプログラム動作を説明します。
- プログラム動作を開始する。
- スイッチウィジェットが「OFF」のとき、LEDマトリクスに「OFF」を表示。
- スイッチウィジェットが「ON」のとき、LEDマトリクスに「ON」を表示。
プログラム転送後、または本体のリセットボタンを押すとプログラム動作を開始します。
プログラム動作を開始すると、WiFiネットワークへの接続動作を行います。
ウィジェットスイッチが「OFF」のとき、LEDマトリクスに「OFF」が表示されます。
ウィジェットスイッチが「ON」のとき、LEDマトリクスに「ON」が表示されます。
WiFiネットワークに接続して、スマホアプリ画面のスイッチを操作することでArduino UNO R4 WIFI本体のLEDマトリクス表示を制御することができます。
スマホとArduino本体がネットワーク経由で接続されており、IoTを活用した動作を体験していることになります。
IoTの世界が手っ取り早く体験できるテーマだと思います。
Arduino Cloudの設定方法と使い方
今回の動作を行うための設定方法と使い方を紹介します。
Arduino Cloudの設定項目
- Devices
接続するマイコンボード - Things
制御やデータ収集を行うデバイス - Dashboards
情報を見える化して操作可能なツール - Sketches
Arduinoを動作させるプログラム
Arduino Cloudで設定すべき項目は上記の4項目になります。
それぞれの設定方法を解説していきます。
Arduino Cloudへのサインイン
まずはじめに、Arduino Cloudサイトにログインします。
ユーザー登録方法については、こちらの記事にて詳しく説明しています。
「SIGN IN」をクリックして、サインインページに移動します。
登録したユーザー名またはメールアドレスとパスワードを入力し、「SIGN IN」ボタンをクリックします。
Arduino CloudのHome画面に移動したらサインイン完了です。
Devicesの設定
Devicesでは、接続するマイコンボードの選択と設定を行います。
Home画面のメニューからDevicesを選択して、「ADD DEVICE」をクリックします。
Arduino boardをクリックします。
USBケーブルで接続されたArduino UNO R4 WIFI本体との接続が行われます。
Arduino Create Agentがパソコンにインストールされていない場合は、インストール要求がされます。
「INSTALL」ボタンをクリックして、インストールを進めます。
ダウンロードフォルダに保存された、インストール実行ファイルを起動します。
「NEXT」をクリックします。
承認ボタンをONにして、「NEXT」をクリックします。
インストールフォルダを選択して「承認ボタンをONにして、「NEXT」をクリックします。
特にこだわりがなければ、初期表示フォルダのまま進めてOKです。
「NEXT」をクリックします。
インストールが行われるので、待ちます。
インストールが完了したら「Finish」をクリックします。
Arduino UNO R4 WIFIを検出したら「CONFIGRE」をクリックします。
デバイス名を入力して、「NEXT」をクリックします。
任意のデバイス名を入力してください。
デバイスIDとシークレットキーが表示されるので、控えます。
画面下のチェックを入れて「CONTINUE」をクリックします。
セットアップが開始されます。
「CONFIRM」をクリックします。
セットアップが完了したら「DONE」をクリックします。
Home画面のDevicesをクリックすると、登録したデバイスが表示されます。
Thingsの設定
Thingsでは、接続するデバイス「モノ」の選択と設定を行います。
Home画面のメニューからThingsを選択して、「CREATE THING」をクリックします。
Thing名がUntitledになっているので、Renameをクリックして名前を変えます。
Thing名を変えなくても動作に支障はありませんが、変えておくとデータを紐づけるときにわかりやすいです。
新しいThing名を入力して、RENAMEをクリックします。
Thing名が「Trigger」に変更されました。
SetupタブのADDをクリックします。
クラウド変数情報を設定して、「ADD VARIABLE」をクリックします。
クラウド変数の設定内容
- 変数名:event
- 変数の型:Boolean
- 権限:Read & Write
- 更新頻度:On change
クラウド変数が追加されました。
Select Deviceリンクボタンをクリックします。
ASSOCIATEをクリックして、登録済のデバイス「Arduino UNO R4 WiFi」を紐づけます。
Arduino UNO R4 WiFiが紐づけられました。
Configureリンクボタンをクリックします。
ネットワーク接続設定情報を入力して、SAVEをクリックします。
ネットワーク情報が設定されました。
Metadataタブをクリックして、Timezoneを設定します。
sketchタブをクリックすると、自動でプログラムが作られています。
このプログラムを編集して、動作させたいプログラムを作り上げていきます。
プログラムが作れたら検証ボタンをクリックして、プログラムコードを検証します。
転送ボタンをクリックして、プログラムコードをArduino本体に転送します。
Dashboardsの設定
Dashboardsでは、デバイスから得た情報を見える化して操作可能なツールの設定を行います。
Dashboard名がUntitledになっているので、Renameをクリックします。
新しいDashboard名を入力して、RENAMEをクリックします。
Dashboard名が「event」に変更されました。
ADDボタンをクリックしてウィジェットウィンドウを開き、Switchボタンをクリックします。
スイッチウィジェットが表示されました。
Link Variableボタンをクリックします。
Variablesにinput_eventを選択して、LINK VARIABLEボタンをクリックします。
DONEボタンをクリックして設定を完了させます。
スイッチウィジェットをクリックして、ON-OFF表示が切り替わることを確認してください。
これでダッシュボードの設定が完了しました。
Arduino UNO R4 WIFIにプログラムデータを転送済であれば、スイッチをOFFーON切り替えることでLEDマトリクス表示が切り替わることが確認できます。
スイッチの他に、Arduino Cloudでは様々なウィジェットが用意されています。
慣れてきたらいろいろなウィジェットを使って遊んでみてください。
スマホアプリからの操作方法
先ほどはArduino Cloud画面に設置したスイッチウィジェットから、Arduino本体のLEDマトリクス表示を遠隔制御しました。
ここではスマホアプリ「Arduino IoT Cloud Remote」を使った、スマホ画面上のスイッチウィジェットからLEDマトリクス表示を遠隔制御する方法を紹介します。
Arduino UNO R4 WIFIに電源を供給して、オンライン接続状態にしてください。
Arduinoが提供するアプリ「Arduino IoT Cloud」をインストールします。
インストールができたらアプリを開きます。
アプリの初回起動画面が出るので、しばらく待ちます。
パソコンで登録したArduino Cloud登録情報を入力して、サインインします。
ダッシュボード画面から、先ほど作成した「event」を選択します。
先ほど作成したスイッチウィジェットが配置されています。
スイッチをタップすると、OFFーONが切り替わります。
スイッチの状態に応じて、LEDマトリクス表示が変わることを確認してください。
スマホから制御できるとIoTを体感しやすいと思います。
LEDマトリクス表示の作り方
メインプログラムを作る前に、LEDマトリクス点灯パターンプログラムを取得しておきます。
今回作成するマトリクスLED表示
- 「ON」表示
- 「OFF」表示
これらの表示パターンはLEDマトリクスエディタを使って作ります。
これらの作り方を説明していきます。
ON・OFF表示パターンコードを生成する
アニメーションではなく、単独表示パターンであってもLEDマトリクスエディタを使ってコード生成すると、32ビット整列のデータを確認できるため便利です。
LEDマトリクスエディタを使って、ON表示パターンを作ります。
パターンを作ったら画面右上のコードファイル生成ボタンを押して、ファイル生成します。
今回ファイル名を「matrix_ON」にしましたが、他ファイル名と重複しなければ何でも良いです。
生成したコードファイルは、ダウンロードフォルダに保存されています。
生成ファイルを右クリックして、プログラムから開くからメモ帳を使ってファイルを開きます。
すると、コードの中身をかくにんすることができます。
中かっこ内の4列のうち、上から1~3列目までがマトリクス表示コードです。
4列目はアニメーション表示時間のため、今回は使用しません。
ON表示と同様に、OFF表示パターンも作成します。
作成できたらコードを生成します。
生成したコードをメモ帳で開いて、OFF表示させるためのコードを確認します。
確認したコードは、プログラム作成時に使用します。
これでLEDマトリクス表示コードの確認作業は完了です。
マトリクスエディタの使い方については、こちらの記事にて詳しく説明しています。
動作プログラムの解説
プログラムの内容を解説します。
プログラム(スケッチ)はある程度自動で作成されるので、自分が動作させたい部分を追加編集して作っていきます。
/*
Sketch generated by the Arduino IoT Cloud Thing "Cloud_LED_MATRIX"
Arduino IoT Cloud Variables description
The following variables are automatically generated and updated when changes are made to the Thing
bool input_event;
Variables which are marked as READ/WRITE in the Cloud Thing will also have functions
which are called when their values are changed from the Dashboard.
These functions are generated with the Thing and added at the end of this sketch.
*/
#include "thingProperties.h"
// Arduino_LED_Matrixライブラリをインクルードする
#include "Arduino_LED_Matrix.h"
// マトリックスパネルのオブジェクトを作成する
ArduinoLEDMatrix matrix;
// LEDマトリクスに表示「ON」
const uint32_t matrix_on[] = {
0x7a24b,
0x24aa4a64,
0xa27a2000,
};
// LEDマトリクス表示「OFF」
const uint32_t matrix_off[] = {
0xf7794,
0x49779449,
0x44f44000,
};
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
// LEDマトリクス動作を開始する
matrix.begin();
}
void loop() {
ArduinoCloud.update();
if (input_event == HIGH) {
matrix.loadFrame(matrix_on);
} else {
matrix.loadFrame(matrix_off);
}
}
/*
Since Button is READ_WRITE variable, onButtonChange() is
executed every time a new value is received from IoT Cloud.
*/
/*
Since InputEvent is READ_WRITE variable, onInputEventChange() is
executed every time a new value is received from IoT Cloud.
*/
void onInputEventChange() {
// Add your code here to act upon InputEvent change
}
これが完成したプログラムです。
このプログラムをコピペして、Arduino本体に転送すればすぐ動作確認することが可能です。
自動作成されたプログラムから追加・変更した部分を解説していきます。
初期化プログラム
初期化プログラム部で追加・変更した部分を抜き取って解説します。
// Arduino_LED_Matrixライブラリをインクルードする
#include "Arduino_LED_Matrix.h"
// マトリックスパネルのオブジェクトを作成する
ArduinoLEDMatrix matrix;
// LEDマトリクスに表示「ON」
const uint32_t matrix_on[] = {
0x7a24b,
0x24aa4a64,
0xa27a2000,
};
// LEDマトリクス表示「OFF」
const uint32_t matrix_off[] = {
0xf7794,
0x49779449,
0x44f44000,
};
ここでは、LEDマトリクス表示させるためのライブラリのインクルードを行います。
マトリクス型のオブジェクトを作成します。
LEDマトリクス表示パターンのコードを定義します。
setupプログラム
setup関数内のプログラムは、プログラム演算開始後1回だけ実行されます。
setupプログラム部で追加・変更した部分を抜き取って解説します。
void setup() {
// LEDマトリクス動作を開始する
matrix.begin();
}
ここではLEDマトリクス動作を開始するためのbeginメソッドを実行します。
loopプログラム
loop関数内のプログラムは、繰り返し演算されます。
loopプログラム部で追加・変更した部分を抜き取って解説します。
void loop() {
ArduinoCloud.update();
if (input_event == HIGH) {
matrix.loadFrame(matrix_on);
} else {
matrix.loadFrame(matrix_off);
}
}
}
ここでは、ウィジェットスイッチの状態「input_event」が「ON=LOW」か「OFF=HIGH」かによって、LEDマトリクス表示内容を切り替えるプログラムを追加しています。
LEDマトリクス表示プログラムについては、こちらの記事にて詳しく説明しています。
Arduino CloudはIoTを手軽に始められる
今回はArduino UNO R4 WIFIをArduino Cloudに接続し、スマホアプリを使って遠隔操作する方法を紹介しました。
Arduino Cloudで提供されているウィジェットの種類が多く、いろいろな使い方ができそうです。
Arduino Cloudには4つのプランがあり、無料のプランも提供されています。(今回紹介した内容も無料プランを使った実例を紹介しています)
Arduino Cloudのプランについては、こちらの記事にて詳しく説明しています。
Arduino UNO R4 WiFiで遊んでみたい!と思った方は下記サイトで購入できますのでご検討ください。
Arduino UNO R4 WIFIが買える国内サイト
通信ケーブルは別売りですので、本体と併せて購入すると送料がお得になる場合があります。
最後まで読んでいただき、ありがとうございました。
Arduino UNO R4シリーズはビジュアルプログラミングには対応していません。
Arduino UNO R3はビジュアルプログラミングにも対応していますので、小学生にはこちらがおすすめです。
ELEGOOのArduino互換キットは、コスパに優れた初心者向けキットです!
コメント