toyoshiの日記

株式会社トクイテンを有名にするための日記です

クワガタの土の水分管理

クワガタが冬眠しています。土の水分を保たないといけません。忘れます。そこでIoTです。M5AtomS3とモバイルバッテリーで青・赤・黄色のサインでわかるようにしました。

材料

ATOMS3www.switch-science.com

マイコンはなんでもいいと思います。M5ATOMS3は手元にあるので使いましたが、消費電力が大きいのでこの方法で動くなら別のものを検討します。

大事なのは意外とバッテリーで、家に置いておくので信頼できて、自動で給電が止まらないかつ過放電もしないものとなると上記製品ぐらいしかないです。会社の人に教えてもらいました。

コード

#include <M5Unified.h>

int moistureSensorPin = 5; // 土壌水分センサーのピン番号を指定

void setup() {

  auto cfg = M5.config();
  M5.begin(cfg); 

  M5.Display.setTextSize(1);               // テキストサイズを変更
  pinMode(moistureSensorPin, INPUT);
}

void loop() {
  // 土壌水分センサーからの値を読み取る
  int sensorValue = analogRead(moistureSensorPin);

  float moisturePercent = (float)(sensorValue - 1360) / (2700 - 1360);
  moisturePercent = (1 - moisturePercent) * 100; // 乾燥が0%、完全に湿った状態を100%とする

  // 土壌の湿度に応じてディスプレイの背景色を設定
  if (moisturePercent >= 66) { // 66%以上で湿っていると判断
    M5.Display.fillScreen(TFT_BLUE); // 背景を青に
  } else if (moisturePercent >= 33) { // 33%以上66%未満は中間の湿度
    M5.Display.fillScreen(TFT_YELLOW); // 背景を黄色に
  } else { // それ未満は乾燥している
    M5.Display.fillScreen(TFT_RED); // 背景を赤に
  }

  M5.Display.setTextColor(TFT_WHITE); 
  M5.Display.setCursor(0, 0);     
  M5.Display.printf("Moisture: %.2f%%\n", moisturePercent); // 土壌水分センサーの値をパーセンテージで画面に表示
  
  delay(1 * 1000);                           
}

クワガタがセンサーをかじったりしないか心配です。