とだくにおーオフィシャルブログー

戸田晋央と申します。内科系の専門医&ITエンジニアとして思ったままに記事を書かせていただきます!

自動水やり機械〜Raspberry pi picoを使って〜

病院の当直などで、家を空けることも多いので、

植木鉢に自動で水をあげる機械を作ってみました。

 

f:id:joykunio:20220314124341j:plain

下の緑色の基盤が
Raspberry Pi Picoという500円くらいのもの

Raspberry Piシリーズは使用できるセンサー類が豊富です。

今回は土の乾燥具合をチェックするセンサーを使用。

 

 

f:id:joykunio:20220316092640j:plain

装置の全容

Raspberry Pi Picoに土壌センサーを接続します(図の黒い尖ったもの)。土壌センサーにより土が乾いたと判定されたら、白いポンプが作動して、水をまきます。

土の渇きが改善されるまで繰り返します。

 

今回使ったポンプは9Vの電圧が必要で、Raspberry Pi Picoは5Vや3Vの出力しか対応していないです。

したがって、リレー(図の青いやつ)を用いて9Vの電池(図の黒い箱)とポンプの接続on-offを制御します。

 

 

完成像はこんな感じ、

f:id:joykunio:20220314124802j:plain

土が乾いたら、牛乳パックの中のポンプが作動して自動で水やりしてくれます。

f:id:joykunio:20220314124657j:plain

にんじんの芽が出たところ。

土壌の乾燥を判定するセンサーの閾値設定が、個人的にはプログラム上のポイントでした。

Thonyを利用して作成したPythonのコードは下部に載せておきますね。

 

皆様の参考になれば幸いです。

 

【結論】

センサーは繊細(センサーい)だと思いました。

 

  1. import machine
  2. import utime
  3.  
  4. sensor_moisto = machine.ADC(0)
  5. conversion_factor = 3 /(65535)
  6. cutoff = 0.9
  7. sensor_pin = machine.Pin(15, machine.Pin.OUT)
  8.  
  9. while True:
  10.     reading = sensor_moisto.read_u16()
  11.     voltage = reading * conversion_factor
  12.     
  13.     if voltage > cutoff:
  14.         sensor_pin(1)
  15.     else:
  16.         sensor_pin(0)
  17.     
  18.     utime.sleep(1)