こんにちは、ヨシケンです!
これまで、さまざまなArduinoを使って電子工作をおこなってきましたが、今回は、Arduino UNOの最新版R4にWi-Fiが搭載されたモデル「Arduino UNO R4 WiFi」をピックアップします。このモデルは、インターネットに接続できて、基盤上のLEDでドット絵が描けたりします。これは楽しみな製品ですね。
今回は、この「Arduino UNO R4 WiFi」の特色を活かし、リモート接続でArduino Cloudにつなげ、植物見守りデバイスを作る過程を紹介していきたいと思います!
今回の記事の流れ
1. このデバイスを作るのに必要な部品
今回必要な機器は、以下表のようになっています。
名前、説明 | デバイス |
---|---|
Arduino UNO R4 WiFi
2023年に登場したArduinoの最新版、Wi-Fiも入ってリモート接続も可能に。 |
|
センサ類 | |
接続するUSBケーブル、バッテリなど | 適宜必要に応じて |
これらの部品をそろえて、Arduino UNO R4 WiFiでデバイスを作っていきます。
2. Arduino UNO R4 WiFiについて
Arduinoは、IoT、メイカームーブメントの走りとして、2005年に登場しました。メインのデバイスとしてArduino UNO R3が長らく使われていましたが、2023年にArduino UNO R4がリリースされ、このワイヤレス接続できるWi-Fiは2023年10月に国内の技適を通って流通し始めました。
そんなArduino UNO R4 WiFiを使って、植物見守りデバイスを作っていきます。
箱を開けて取り出すと、やはり目につくのはLEDが並んだ基盤。Arduino UNO R4 WiFiは、この12 x 8のドットマトリクスが最初から使えるようになっています。気になるArduino UNO R4 WiFiのスペックはこちら。
マイコン | Renesas RA4M1 (Arm Cortex-M4) |
---|---|
メモリ | 256KB Flash、32KB RAM |
I/O |
USB Type-C 14 デジタルI/O 6 アナログ入力 1 DAC 6 PWM |
通信 |
1 UART、1 I2C、1 SPI |
電源 |
動作電圧 5V 入力電圧 6 – 24V |
サイズ | 6.9 cm x 5.3 cm |
以下のスタート資料に従って、セットアップをしていきます。
https://docs.arduino.cc/tutorials/uno-r4-wifi/r4-wifi-getting-started/
まずArduino IDEをパソコンに入れ、立ち上げます。
メニューからBoard Managerを開き、”R4”と入れて検索し、“Arduino UNO R4 Boards”を追加。
Tools > Board:のところで、Arduino UNO R4 Wifi を選択してください。Arduino UNO R4 WiFiを、USB Type-Cでパソコンとつなぐと、Port:の/dev/cu.usbのところに、Arduino R4と接続しているのが分かります。
電源が入ると、デフォルトのLEDのドットアニメーションが動き出します。
電源を入れると、ハートが動いて表示されます
次にArduino UNO R4 WiFiにあるサンプルのスケッチを流して動かしてみましょう。Arduino IDEメニューのFile > Examples > LED_Matrix > TextWithArduinoGraphics を選んで、流し込みます。
するとLEDのところに文字が流れ出します。
これで今までのArduino IDEで、Arduino UNO R4 WiFiを使うことができるようになりました。
次に、クラウドで接続するためのセットアップをします。一度ArduinoからUSBを抜いておきます。
3. Arduino Cloudを使ってみる
Arduinoが提供するクラウド環境のArduino Cloud(https://cloud.arduino.cc/)を使ってみます。
こちらのページの”GET STARTED FOR FREE”を押して、Arduino Cloudで使うためのアカウントを取得してください。
アカウントが取得できると、ホーム画面が出ます。ここから雲形のArduino Cloudのアイコンを押すか、こちらhttps://app.arduino.cc/ に移動してください。
Arduino Cloudの設定画面に遷移します。この画面で左側の“Devices”メニューから、Arduinoを登録する“ADD DEVICE”を押します。
これからArduino R4を接続するので、左側の“Arduino board”を選択。
そうするとArduinoに接続する為の Cloud Agent をダウンロード、インストールするように促されます。
Cloud Agent をパソコンにインストールする事により、Arduinoを接続できるようになります。ここでArduino UNO R4 WiFiをパソコンに再度つなぐと、接続が確認できると思います。
R4 WiFi Foundという画面が出たら、“CONFIGURE”を押してセットアップを続けます。
このデバイスに適当な名前を付けて、“NEXT”に進んでください。
そうすると接続のプロセスが進み、画面に従ってセットアップを続けていきます。
この後、再度Arduinoを外し接続し直すように促され、画面に従って進むとセットアップが完了します。
これでDeviceが定義できました。この後センサを追加するために、“Create Thing” を押して変数などの定義をします。
Cloud Variablesを“ADD”します。この時Networkの設定を求められるので、使用するWi-Fiの情報を入力してください。
センサを追加した時の変数Variablesを追加します。ここでは温湿度センサのために、Temp(温度)とHumid(湿度)を以下のように追加します。
これでThingsに、float型のtempとhumidが設定できました。
それでは次に“</> Sketch”を押して、これを動かすスケッチを作っていきます。
まず左側のLibraryボタンを押して、必要なライブラリを追加します。“DHT”と入れて、DHT sensor library をインストールしてください。
そうするとこのように、<DHT.h> などのライブラリが追加されます。先ほど設定したvariablesのfloat temp;なども使えるようになっています。
#include <DHT.h>
#include <DHT_U.h>
/*
Sketch generated by the Arduino IoT Cloud Thing "Untitled 2"
https://create.arduino.cc/cloud/things/90fb867c-d661-436c-84d1-27b034d678f1
Arduino IoT Cloud Variables description
The following variables are automatically generated and updated when changes are made to the Thing
float humid;
float temp;
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 <DHT.h>
#include <DHT_U.h>
#include "thingProperties.h"
#define DHTPIN 1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
dht.begin();
}
void loop() {
ArduinoCloud.update();
temp = dht.readTemperature();
humid= dht.readHumidity();
Serial.println(String(temp,0)+"C "+String(humid,0)+"%");
delay(1000);
}
Arduino UNO R4 WiFiとセンサは以下のように接続します(写真はPIN11ですが、実際はPIN1につないでいます)。
センサ側 | Arduino側 |
---|---|
Data |
PIN1 |
Vcc |
5V |
GND | GND |
このスケッチの“→”ボタンを押すことにより、流し込みと温湿度を計測。
“Serial Monitor”を押す事により、結果を確認する事ができます。
シリアルモニタに温度と湿度が計測され、表示されているのが分かります。
4. 植物見守りデバイスを作って、データを可視化する
さらに水分センサも追加して、植物見守りモニタとして、Arduino Cloudからグラフィカルに表示できるようにします。水分センサの設定はセンサ左からData、Vcc、GNDを以下のようにArduinoに接続してください。
センサ側 | Arduino側 |
---|---|
Data |
PIN11 |
Vcc |
3V3 |
GND | GND |
それではスケッチに、水センサのために紫色の記述を追加します。
#include <DHT.h>
#include <DHT_U.h>
#include "thingProperties.h"
#define DHTPIN 1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define WATER_SENSOR 11
void setup() {
…
dht.begin();
pinMode(WATER_SENSOR, INPUT);
}
void loop() {
…
temp = dht.readTemperature();
humid= dht.readHumidity();
Serial.println(String(temp,0)+"C "+String(humid,0)+"%");
water = digitalRead(WATER_SENSOR);
if ( water == 0 ) {
waterStatus = "WATER!";
} else {
waterStatus = "NO WATER..";
}
Serial.println(waterStatus);
delay(1000);
}
このスケッチを流し込んで、シリアルモニタを開きます。すると右側のモニタに、温湿度の数値と水分チェックの結果が出てくるでしょう。
最後に、Arduino UNO R4 WiFiで取得したデータを、Arduino Cloud上で表示してみます。左側のメニューから、Dashboardを選択。それに適当な名前を付けて、ダッシュボード作成画面を開きます。ここから追加したいWidgetを選んでいきます。
まず、数値を表示するためのValueを選んでください。
NameにはTemp、Linked Variableには、Thingsの中のTempを紐付けます。表示は小数点一位で四捨五入(Round, 0)にセットしましょう。
それ以外も、Chartなどを加え、温度を時系列で表示できるようにします。
DashboardにWidgetがこのように表示されました。
最後に、湿度や水分の表示の設定も行います。Arduinoにバッテリも付けて、植物周りにセットすれば、見守りデバイスの完成です。
これを動かして、Dashboardを見ると、温湿度や水分の状況が見られるようになりました。気温の履歴もグラフで見ることができます。
5. まとめ
今回はArduino UNO R4 WiFiを使って植物見守りデバイスを作ってみました。
センサとのつなぎ方やスケッチなどはこれまで通りにすることができましたし、リモートで接続できるArduino Cloudでセンサが設定可能になり、データの表示も簡単にできるようになりました。
Dashboardに色々なものを追加して見ることができるので、他のセンサなども追加して便利に使ってみるのも面白そうです。これからもArduinoを使ってものづくりを楽しんでいきましょう!
Happy making!