🌡️

【農系IoT】温度測定用防水プローブをM5で使う【その1】

2024/10/22に公開

いざ農業の現場でセンサを使おうと思ったときに最初に困るのが「防水」ということは多いのではないでしょうか。
今回はそんなときにおススメな「防水プローブを複数個使って温度を取得してその結果をパソコンやスマホから確認する。」ことを目標にします。

seeedstudioのOne-Wire-Temperature-SensorはM5シリーズで使いやすいGroveコネクタが採用されています。
https://jp.seeedstudio.com/One-Wire-Temperature-Sensor-p-1235.html
【参考】私はMouserというサイトから購入しました。※この手の海外サイトは登録怖いという声も聞きましたので紹介してます。
https://www.mouser.jp/ProductDetail/Seeed-Studio/101990019?qs=SElPoaY2y5Ky9dE%252BHKhgVw%3D%3D&mgh=1&vip=1&utm_id=17751816858&gad_source=1&gclid=CjwKCAjw_4S3BhAAEiwA_64YhrLj8Q9JC7MBdY-SjhSdTZ8OMuSGXuZW1BlQKfUJWMxZz1jhK9lQPBoCb0kQAvD_BwE

防水プローブは1つのマイコンで複数のプローブを使用することが可能です。
下記のパーツも手元に用意してください。
https://jp.seeedstudio.com/Grove-I2C-Hub-6-Port-p-4349.html
こちらは秋月通商やスイッチサイエンスでも購入できます。
【参考】私はプローブと一緒にMouserで購入しました。
https://www.mouser.jp/ProductDetail/Seeed-Studio/103020272?qs=wnTfsH77Xs5XV9biP9YyPQ%3D%3D

マイコンは「M5AtomLite」、開発環境は「Arduino」を使用することを前提として、まずは簡単な使い方を紹介します。
下記記事と同じ手順でまずはArduinoの環境のセットアップをしてください
【農系IoT勉強会#1】
https://zenn.dev/tokuiten_dev/articles/b200bd5e561b3c

マイコンはM5AtomLiteを使用しますので気を付けてください。
https://www.switch-science.com/products/6262

まずは防水プローブの個体識別に使用する「アドレス」を調べます。
マイコンとプローブを接続してマイコンをPCに繋ぎます。
【接続写真】

温度センサ用のライブラリをインストールします。

LibraryManagerを開いて検索窓に
OneWireと入力しましょう。

OneWireが見つかったらインストールします。

こちらのコードをコピーして実行してみましょう。
【サンプルコード】

#include <M5Atom.h>
#include <OneWire.h>

uint8_t deviceAddress[8];  // 1つのデバイスIDを格納する配列

void setup() {
  delay(500);
  Serial.begin(115200);
  int pin = 32;  // センサが接続されているピンを指定
  OneWire ow(pin);
  delay(500);

  // デバイスを検索して結果を処理
  if (ow.search(deviceAddress)) {
    // デバイスが見つかった場合、IDを出力
    Serial.print("デバイスID: ");
    for (int i = 0; i < 8; i++) {
      Serial.print("0x");
      if (deviceAddress[i] < 0x10) Serial.print("0");
      Serial.print(deviceAddress[i], HEX);
      if (i < 7) Serial.print(", ");
    }
    Serial.println();
  } else {
    // デバイスが見つからなかった場合のメッセージ
    Serial.println("デバイスが見つかりませんでした。");
  }
}

void loop() {
}

こちらに実行ボタンがあります。

実行が出来たらシリアルモニタを見てみましょう。

センサとの通信がうまくいっていればデバイスIDが表示されるはずです。

次に防水プローブのサンプルコードを使って動作確認をします。
【接続写真】
動作確認の前にライブラリ【DallasTemperature】をインストールします。

こちらのサンプルコードをArduinoに書き込んで実行してみましょう
https://github.com/nono112002/IoT_workshops_for_agriculture/blob/main/OneWire_sample_code.ino

シリアルモニタを確認してみてください
【ツール】⇒【シリアルモニタ】で起動

温度情報が流れてきましたか??

次に取得した温度情報をAmbientというサービスを使ってパソコンやスマホから確認することにチャレンジしましょう。
下記の記事を見ながらAmbientのセットアップをします。
【農系IoT勉強会#2】
https://zenn.dev/tokuiten_dev/articles/0747e32abfa71e

こちらが作成したコードの例です。
【サンプルコード】
https://github.com/nono112002/IoT_workshops_for_agriculture/blob/main/temperture_moniter.ino
表示されました

Discussion