注目キーワード

【Arduino】ディスプレイ付きマイコン「M5StickC Plus」 土壌水分センサー値をBluetoothでPCに送信する!

すけろく
以前、Bluetooth Serialを使って
データをPCに送信したが、何か良い使い方はないかな。
げんろく
最近、土壌水分センサーとやらを手に入れた。
これで計測した水分量をPCに送信してみるか?
すけろく
それは良いな。
今後、使い道が広がっていきそうな予感がする。
この記事では、ディスプレイ付きマイコン「M5StickC Plus」に搭載されている「Bluetooth」を使って、パソコンとの通信してみます。今回は、土壌水分センサーである「M5Stack EARTH UNIT」を使って計測した水分量データを送信してみます。
PCへのデータ送信には、以前の記事でも使った、「Bluetooth Serial」を使います。
Bluetooth Serialについては次の記事で紹介しています。
関連記事

すけろく これまで、M5StickC PlusでWi-Fi接続を使ったデータの やり取りは見てきたが、Bluetoothはまだだな。 げんろく 確かに。 Bluetoothについてはまだだった。 […]

今回使用するマイコンはこちら!

M5StickC Plus
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。Amazonで確認

これからはじめる方にお勧めの参考図書はこちら!

 

土壌水分センサーって何?

今回使う、「M5Stack EARTH UNIT」とはどのようなものでしょうか。

M5Stack EARTH UNIT」は、土壌などの水分を測定する土壌水分センサーです。

土壌水分センサーの使用法は非常に簡単で、2 つの大きな露出パッドがセンサーのプローブとして機能することで、可変抵抗器として機能します。

土壌中の水分が多いほど、2 つの露出パッド間の導電率が高くなるため、センサーの抵抗が低くなり、出力される値が高くなります。

センサーとの接続は、Grove端子が用意されています。M5StickC Plusであれば、Groveコネクタで簡単に接続できます。(ケーブルも同梱されています。)

M5Stick EARTH UNITには、デジタル出力用の10K の調整可能な抵抗(可変抵抗)が含まれていて、しきい値の調整が可能です。

アナログとデジタルの出力に対応していますが、今回は、アナログ出力値を使ってみます。

 

土壌水分センサーをM5StickC Plusを接続する

M5StickC Plusと土壌水分センサーを接続するには、「M5Stack EARTH UNIT」に同梱されているGroveケーブルを使います。

M5StickC PlusのGrove端子と、「M5Stack EARTH UNIT」のGrove端子を接続します。

土壌水分センサー値をBluetooth Serialで送信する

それでは、実際にプログラミングしてみましょう。

Bluetooth Serialを使うためには次のヘッダーをプログラムに追加して、生成します。

#include "BluetoothSerial.h"
BluetoothSerial SerialBT;

 

Bluetooth Serialでデータを送信する際には、次の関数で制御します。

関数 説明
begin(“DeviceName”); シリアル接続を開始します。DeviceNameで識別されます。
println(“出力内容”); 出力内容を送信します。

 

Bluetooth Serialを使った土壌水分センサー値の送信プログラム

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

 

 M5StickC Plusへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、M5StickC Plusであるか確認します。
    この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  3. 「ツール」メニューから「Patition Scheme」を「”No OTA(Large APP)”」にします。
    ※ここを変更しないと、スケッチが大きいというエラーになります。
  4. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。
  5. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 

 プログラム実行結果

プログラムの書き込みが終了したら、シリアルモニタで値を確認します。

プログラム内で、「dev_name」で設定した名前が「デバイス名」になります。

次の手順で、WindowsOSにデバイスをペアリングして、シリアルモニターでデータを確認します。


メインメニューから「設定」を選択します。

「Bluetoothとデバイス」の設定を確認し、Bluetoothが「オン」になっていることを確認します。
確認後、「デバイスの追加」ボタンを押します。

「デバイスを追加する」ウィンドウで、「Bluetooth」を選択します。

デバイスが検知されますので、M5StickC Plusの画面上にあるデバイス名と同じものを選択してください。
ペアリングができたら「完了」を押します。

次にメインメニューを右クリックして表示されるメニューから「デバイスマネージャー」を開きます。

デバイスマネージャー画面から、ポート(COMとLPT)を展開します。
「Bluetoothリンク経由の標準シリアル(COM~)」というものが2つ追加されます。
※後で接続に使うのは番号の大きいほうなのでそちらを覚えます。

Arduino IDEで「ツール」から「シリアルポート」を選択して、先ほど追加されたCOMポートを選択します。

Arduino IDEで「ツール」から「シリアルモニタ」を選択して起動します。

シリアルモニタが起動して、左の画像のようにデータが表示されればOKです。

 

シリアルモニタにデータが出力されたのを確認した後に、土壌水分センサー「M5Stick EARTH UNIT」を植木鉢に刺して、水やりをしました。

取得タイミング センサー値
植木鉢に刺す前(水分なし) 4095
植木鉢に刺したとき(乾燥) 2576付近
植木鉢に水をあげた時 1200 付近

※水を上げた際に一時的に「900」付近まで下がりますが、水がいきわたると「1200」付近に落ち着きました。

 

取得したデータをグラフにしてみました。

 

時間の経過とともに、土の水分がなくなり、センサーの値が、徐々に上昇していきました。

試した環境では、約1日で乾燥状態に戻りました。水を上げると値は下がりました。

このデータをもとに、水分値の状態を把握することができるので、これを使うと面白いものができるかもしれませんね!

 

 

編集後記

いかがだったでしょうか。

M5StickC Plusと、M5Stick EARTH UNITを使って、土壌の水分状態をPCへ送信することができました。

無線(Bluetooth)を使ってデータを送受信しているので、有線によるPCへの接続はせずにデータのロギングが可能です!

今後、いろいろと使えそうです。

 

記事は以上になります。

最後までご覧いただきありがとうございました。

今回使用するマイコンはこちら!

M5StickC Plus
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。Amazonで確認

これからはじめる方にお勧めの参考図書はこちら!