注目キーワード

【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についてはまだだった。 […]

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

created by Rinker
M5Stack
¥5,838 (2024/05/29 09:39:24時点 Amazon調べ-詳細)
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。

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

created by Rinker
¥3,089 (2024/05/29 10:16:33時点 Amazon調べ-詳細)
created by Rinker
¥2,310 (2024/05/29 00:45:20時点 Amazon調べ-詳細)
created by Rinker
技術評論社
¥3,278 (2024/05/28 10:41:39時点 Amazon調べ-詳細)
created by Rinker
¥2,420 (2024/05/29 10:16:34時点 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への接続はせずにデータのロギングが可能です!

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

 

記事は以上になります。

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

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

created by Rinker
M5Stack
¥5,838 (2024/05/29 09:39:24時点 Amazon調べ-詳細)
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。

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

created by Rinker
¥3,089 (2024/05/29 10:16:33時点 Amazon調べ-詳細)
created by Rinker
¥2,310 (2024/05/29 00:45:20時点 Amazon調べ-詳細)
created by Rinker
技術評論社
¥3,278 (2024/05/28 10:41:39時点 Amazon調べ-詳細)
created by Rinker
¥2,420 (2024/05/29 10:16:34時点 Amazon調べ-詳細)

M5StickC Plus の他の記事はこちらからどうぞ!

すけろく んーどうしたものか。 げんろく どうした? 深刻な顔をして。 すけろく M5Stackにプログラムを書き込んだら 起動しなくなってな。 電源ON/OFFでも無理なのだ。 げんろく 書き込んだプログラムか、バッテリーの 過放電か。工場出荷時に戻してみてはどうだ? この記事では、M5Stackにプログラムを書き込んだ結果、うまく動作しなくなった場合の対処方法を記載します。 ご紹介するのは「工 […]

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

すけろく 前回の記事で6軸IMUのデータをPCでグラフ化したが、 うまく傾き検知ができているようだ。 げんろく そうだな。 微細な傾きも検知できているようだ。 すけろく 傾き検知の機能を使って何かできないかな? げんろく なら、机を離れる時にノートなどの見守りを してくれる「デスク見守り君」を作るぞ! 今回の記事では、ディスプレイ付きマイコン「M5StickC Plus」を使って、「デスク見守り君 […]

すけろく これまで、M5StickC PlusでWi-Fi接続を使ったデータの やり取りは見てきたが、Bluetoothはまだだな。 げんろく 確かに。 Bluetoothについてはまだだった。 すけろく 近距離ならBluetooth通信も有効だ。 何か作れないかの。 げんろく では、今回はBluetoothを使った通信の一つ、 Bluetooth Serialについて触れてみよう。 この記事では […]

すけろく M5StickC Plusには、筐体の動きや傾きを検知する センサーが標準で搭載されているらしいな。 げんろく 6軸IMUのことか。 加速度、角速度を測るセンサーだ。 計算で姿勢角度も分かる。 すけろく んんっ!? 難しい単語が出てきたな。。 げんろく よし。 物体の動きを計測する要素について M5StickC Plusを使って試してみるぞ! この記事では、ディスプレイ付きマイコン「M5 […]

すけろく 前回作ったお天気表示プログラムは なかなか、評判が良いな。 げんろく うれしいな。 ただ、お天気情報は起動時のみ取得というところが 課題だ。 げんろく 今回は、1時間に1回お天気情報を後進するように してみよう。 この記事では、Arduino IDEを使ってM5StickC Plusのディスプレイに、お天気情報を1時間に1回更新表示する方法を紹介します。 画面描画は主に、Adafruit […]

すけろく 汎用ライブラリの「AdafruitGFX」にビットマップ画像を ディスプレイ表示するものがあるそうな。 げんろく いかにも。機能は実装されている。 ちょうど、アイコンをアニメーションさせたいと 思っておったわ。 すけろく うむ。 面白そうだな。やってみるか! げんろく わかった。 今回は、単色のアイコンを使って天気情報を 視覚的に伝える画面を作ってみよう。 この記事では、Arduino […]

すけろく 標準ライブラリでの画面描画はできた。 しかし、M5StickC Plus向けのライブラリなので 汎用性がないな。 げんろく たしかに。 M5Stackや他のAruduino機器でも使えるものが必要だな。 すけろく そのようなものがあるのか? げんろく よし。今回は、汎用的に使えるライブラリを紹介しよう。 Adafruit社が公開している「Adafruit_GFX」だ。 この記事では、Ar […]

すけろく 前回の記事でJSON形式データは取り扱うことができた。 これでインターネットにあるサービスを活用できるな。 げんろく そうだな。 今回は天気情報を提供しているサイトからJSON形式データを 取得してM5StickC Plusの画面に表示してみよう。 前回の記事では、次の画像のように、Arduino IDEを使い、M5StickC Plusのディスプレイにインターネットのサイトから取得した […]

すけろく 普段、何気なくブラウザでインターネットサイトを 見ているが、URLの最初のHttpsとはなんだ? げんろく httpsはHttpの通信を暗号化して行うものだ。 ちょっと違いを押さえてみるか。 すけろく あと、Arduino IDEでプログラムを作る際の 注意点なんかも頼む。 げんろく わかった。 プログラムに組み込む方法も見てみよう。 皆さんが普段パソコン(PC)やスマホ、タブレットのブ […]

すけろく Pythonなどでは、JSONでデータを扱っていたが、 Arduino IDEで扱うことはできるのか? げんろく それなら「ArduinoJSON」ライブラリがあるぞ! 取り扱うデータで使用するメモリサイズの 計算ツールもあるから便利だ。 この記事では、Arduino IDEを使ってM5StickC PlusのプログラムでJSON形式を取り扱う方法を紹介します。 今回使用するライブラリは […]

すけろく M5StickC Plusに英語を表示することは 画面制御の記事で行えたが、日本語は表示できないのか? げんろく いや、方法はあるぞ。 eFontライブラリをM5StickC Plusで実行できるように 修正して提供してくれているものを使うのだ。 すけろく ぜひ、やってみたいの~ この記事では、Arduino IDEを使ってM5StickC Plusのディスプレイに日本語を表示させるため […]

すけろく M5StickC Plusも時刻同期までできた。 うまくいっておるな。 げんろく ああ、「M5StickC」向けに作成したプログラムが 微修正で実行できるからありがたい。 すけろく そういえば、画面が大きくなったな。 値段も大きくなっているが。。。 げんろく 今回は新しいM5StickC Plusの 画面制御まわりを見てみるか。 この記事では、Arduino IDEを使ってM5Stick […]

  すけろく 前回はWiFi接続することができた。 次は時刻同期がしたいな。 げんろく たしかに。時刻同期は基本だからな。 以前M5StickCでやったプログラムをベースに 実装してみよう。   この記事では、M5StickC PlusをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法について紹介します。 今回使用す […]

すけろく M5StickC Plusの大まかな違いは分かった。 WiFi接続をしてみるか。 げんろく そうだな。 M5StickCと同じように使えるのか確認してみよう。 この記事では、M5StickC Plusに実装されているWiFi機能を使って、Wi-Fiルータに接続する方法について紹介します。 今回使用するマイコンはこちら! 画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレ […]

すけろく なんか、M5StickCが「在庫なし」になっている。 げんろく ああ、新しい「M5StickC Plus」が出たからな。 旧版は在庫限りになっているのだろう。 すけろく うむ。画面が大きくなったな。 値段も大きくなっておる。 げんろく そうだな。 M5StickC PlusでLチカでもしてみるか。 今回の記事では、「M5StickC Plus」を開発環境であるArduino IDEを使っ […]