0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi Pico WH×土壌湿度センサーでリアルタイム測定

Posted at

以前から興味のあった農業分野で、AWSを活用して何か便利なことができないかと考えていたところ、土壌の水分量を測定してデータを蓄積できるという記事を見かけました!
自分でも試してみたいと思います!

今回の目的

今回はセンサーの精度よりもデータをAWSに送信して蓄積することにします。

準備したもの

・プランターで育てる好きな植物
 (自分はホームセンターで見かけたブロッコリーとローズマリーにしました!)
・土壌湿度計
 Amazonで買いました (https://www.amazon.co.jp/dp/B07MC9ZGXL?ref=ppx_yo2ov_dt_b_fed_asin_title)
・Raspberry Pi Pico WH (switch scienceで購入しました)
上記だけだとだめなことに気づき下記も追加で買いました!
・サンハヤト SAD-101 ニューブレッドボード (https://www.amazon.co.jp/dp/B00DSKCS68?ref=ppx_yo2ov_dt_b_fed_asin_title)
・ELEGOO 120pcs多色デュポンワイヤー (https://www.amazon.co.jp/dp/B06Y48V9DL?ref=ppx_yo2ov_dt_b_fed_asin_title)

セットアップ

Raspberry Pi Pico WHとPCをUSB microBケーブルで繋いで中身を確認します
※BOOTSELボタンを押しながらケーブルを接続することで、エクスプローラーが表示されます
image.png

自分のは最初から「.TXT」が入っていたのですが、念のため入れなします。
エクスプローラー内の「INDEX.HTM」をクリックします
そうすると下記のような画面が現れるので、「MicroPython」をクリックします。
image.png
遷移したら、画面中部に移動して該当のものを選択します
image.png
ダウンロードされたものを「Raspberry Pi Pico」内に入れます!
※接続が一度切れるので、再度Bluetoothボタンを押しながら接続して中身が下記のようになっていれば成功です
image.png

プログラムの書きこむための設定

Raspberry Pi Picoにコードを書きこむには「Thonny」という環境をダウンロードします

image.png
自分はWindowsなので赤枠のものを選択してダウンロードします
完了したら、exeファイルを実行します
そのまま進めていき「Finish」を押して画面を閉じます

Raspberry Pi Picoを再度PCと繋いで、Thonnyを開きます。
下記の様な画面が出てくるので「MicroPython」を選択します
image.png
これにてセットアップは完了です!!
あとは好きな風にコードを書いて遊べます!

センサーを使用したデータ取得

ここからは土壌湿度計を使用した土壌内の水分量を測ってRaspberry Pi Picoでデータを取得できるように組んでいきます
・自分が購入した土壌湿度計は直接Raspberry Pi Picoと繋げないので、ブレッドボードにぶっ刺します
・センサー側の端子にオス-オスのジャンプワイヤーを刺して、対応しているブレッドボードにも刺します
【センサー側】
・GND(黒線) → 電源のマイナス側
・VCC(赤線) → 電源のプラス側
・AOUT(黄線とか) → センサーが出力するアナログ信号
【Pico側】
・GND → Pico の「GND」って書いてあるピン
・VCC → Pico の「3V3(OUT)」ピン
・AOUT → Pico の「ADC入力」ピン

AOUTとは

A = Analog(アナログ)
OUT = Output(出力)
という意味で、Raspberry Pi Pico は基本 デジタル(0 or 1)しか読めないが、アナログ信号を扱いたいときは ADCピン(GP26/27/28) を使って「数値化(0~65535)」する必要があって、AOUTをADCピンにつなぐことで、数値(0~65535)を取得できる

全体像

全体としてはこんな感じになるかと思います
image.png

データの取得

import machine, time

adc = machine.ADC(26)  # GP26 = ADC0

while True:
    value = adc.read_u16()
    print("Soil moisture:", value)
    time.sleep(1)

上記コードThonnyに記載すると、このように数値が1秒ごとに出てきます
センサーの湿度に応じて0〜65535の数値を取れます
image.png

ここまで見ていただきありがとうございました!
次回は、取得したデータをAWSに送信して、蓄積するところまでやってみたいと思います。

ちなみに初回

実際にブレッドボードにPi Pico WHを設置して、ワイヤーでセンサーと接続して、水分をあげていない土や水中の中を測ってみたが、なかなか安定した数値が出ず

見解(たぶん)
・センサーの個体差(1つ目のセンサーよりも2つ目のほうが安定はしていた)
・ワイヤーが長すぎると値がぶれることがある?
・水中に関しては手で持っていたので、揺れてしまいブレた?
・ワイヤーの接続不良?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?