静電容量型の土壌湿度センサを使ってArduinoで土の水分量測定

静電容量型の土壌湿度センサを使ってArduinoで土の水分量測定

はじめに 静電容量型の土壌湿度センサを使ってArduinoやESP32で土の水分量を測定します。この記事では、センサの防水加工、配線、アナログ値の読み取り、0〜100への換算、自動水やり機やデータロガーへの発展までをまとめます。水やり管理に使う場合は、センサ値を絶対値として信じすぎず、土や鉢ごとに乾いた状態と湿った状態を測って基準を作るのが大事です。 まず用意するもの 静電容量式 土壌湿度センサ Arduino Uno ESP32 DevKitC ジャンパーワイヤ 最小構成なら 土壌湿度センサ と Arduino Uno か ESP32、それに ジャンパーワイヤ があれば動作確認できます。乾電池運用を考えている場合は、記事中でも触れている通り 定電圧化 のための DC-DC コンバータもあると安心です。 防水加工を施した静電容量型土壌湿度センサ 静電容量型の土壌湿度センサです。市販のCapacitive Soil Moisture Sensorを、実際の現場で使いやすいよう改造しました。 基板の防水加工 センサの反応速度の改善 ブレッドボードで刺せるジャンプワイヤーの実装 2Mのセンサケーブルを延長 植物の根を痛めないよう先端を丸く加工 ジャンプワイヤーのカラー対応は次のとおり。 ジャンプワイヤー 役割 赤 Vcc 黒 GND 白 アナログ出力電圧 土壌湿度センサの使い方 土壌湿度センサの電源電圧Vdd、アナログ出力電圧範囲、消費電流は次のとおり。ArduinoやESP32でご使用になれます。 項目 内容 電源電圧 3.3〜5.5V アナログ出力電圧範囲 0〜3V 消費電流 5mA 水分量が多い状態ではアナログ出力電圧値が低くなります。乾燥している状態ではアナログ電圧値は高くなります。 電源電圧は必ず定電圧を使用してください。乾電池で動かすと電圧降下によってアナログ出力電圧まで変化してしまいます。 乾電池を使いたい場合は、DC-DCコンバータなど使って定電圧を作って下さい。 以前乾電池で動かしてた時のこと。なぜか水分量が上昇してしまいました。不思議に思っていましたが実はこれ、電池の電圧降下が影響した結果だったんです。 土にどのくらい埋めれば良いのかですが、推奨されるのはセンサの半分程度です。 防水加工を施されたものなら気にせずに土中に埋めても大丈夫です。 センサによってはアナログ出力電圧にバラツキがあります。また土中への差し込み具合や、土の成分によっても出力が異なります。ここら辺は実際に使用しながらご研究なさってください。 マイコンボードとの配線 マイコンボードと土壌湿度センサの配線例を図に示しました。 電源電圧Vddは3.3Vまたは5Vのどちらでも構いません。アナログ電圧出力(AOUT)はマイコン側のアナログ入力へ。ADコンバータが使えるピンでしたらどこでも構いません。水分量に応じてアナログ出力電圧が0V〜3Vの範囲で変化します。 ...

公開: 2020年8月30日 · 更新: 2026年4月30日 · Toshihiko Arai

【Raspberry Pi】AirPlayで無線オーディオを実現する

はじめに こんなこと、やります。 Raspberry PiでAirPlayサーバー環境構築 iOSやmacOSの音楽を、AirPlay経由で、ラズパイからオーディオ再生 Raspberry PiでUSB DACを使う Raspberry PiでI2C対応のDACを使う(ハイレゾ対応) Raspberry PiでAirPlayサーバー環境構築 Raspberry PiでAirPlayをつかえるように、AirPlayサーバーの環境構築を行なっていきます。 AirPlayサーバーのライブラリshairport-syncをインストールします。ただし、shairport-syncは音声のみの対応で映像の再生はできません。 apt-getを最新にしておく shairport-syncをインストールする前に、いろいろなライブラリをインストールする必要があります。インストールエラーを防ぐためにも、apt-getを最新のものにします。 $ sudo apt-get update && sudo apt-get upgrade 依存ライブラリのインストール shairport-syncに必要なライブラリを、まとめてインストールします。 $ sudo apt-get install git autoconf libdaemon-dev libpopt-dev libconfig-dev libasound2-dev libpulse-dev libavahi-client-dev libssl-dev libsoxr-dev これらの依存ライブラリの役割をざっくりと調べてみました。 ライブラリ名 役割 git gitコマンドを使えるようにする autoconf configureを自動で生成してくれる libdaemon-dev 軽量な C ライブラリで、UNIX デーモンを書きやすくしてくれる libpopt-dev コマンドラインのパラメータによって変数を設定できるようにする libconfig-dev configファイルの構造をパースして扱いやすくしてくれる libasound2-dev ALSAアプリケーション開発に必要な共有ライブラリ libpulse-dev PulseAudio開発に必要なライブラリ libavahi-client-dev ローカルネットワーク上のサービスやホストを検索可能にする libssl-dev OpenSSLを使えるようにする libsoxr-dev リサンプリングして音質を良くしてくれる Tip ALSAとは、Advanced Linux Sound Architectureの略で、Linuxでサウンドカードのデバイスドライバを提供するコンポーネントです。 shairport-syncのクローン shairport-syncを、Gitを使ってクローンします。 ...

公開: 2019年9月14日 · 更新: 2026年3月19日 · Toshihiko Arai
【Raspberry Pi】10日で作る!倒立振子ロボット

【Raspberry Pi】10日で作る!倒立振子ロボット

はじめに この記事では、Raspberry Piを使って10日ほどでつくった倒立振子ロボットのご紹介をします。 とあるきっかけで、夏休みの宿題のノリで倒立振子を作ってみることにしました。 倒立振子ロボットを作るには、 ジャイロセンサや加速度センサを駆使して、モータを制御し倒立させる 必要があります。しかし、予想通りといいますか、これがなかなか大変でした。結論からいってしまうと、 相補フィルタとPID制御で倒立振子の姿勢をコントロール させました。 そんな私の倒立振子ロボット製作の葛藤の記録をご紹介します。これから倒立振子の製作に挑戦するみなさんのご参考になれば幸いです。 倒立振子とは「とうりつしんし」と読みます。二輪で自立するロボットで、近年ではセグウェイやバランススクーターなど、移動手段のロボットにも応用されてます。 Raspberry Piの操作は、MacのターミナルからSSHでリモート操作します。また、これから紹介するプログラムはすべて、Python 2.xで動かしてます。Python 3.xをお使いの方は、各自で読み替えてください。m(_ _)m 千里の道もLチカから さっそく、モータでも動かしてみたいところですが、それを実現するための予備知識がまったくないので、まずは、 とても小さな一歩であるLチカ(LED点滅) から始めてみます。 gpiozeroライブラリのインストール Raspberry PiのデジタルピンでLEDを制御するために、gpiozeroライブラリを次のようにインストールしました。 $ sudo apt install python-gpiozero LEDとRaspberry Piの配線は、Raspberry Piの11番ピンにLEDのアノードを、そして200Ω〜1kΩくらいの抵抗を介してカソード側をGNDへ接続します。 シンプルなLチカプログラム 1秒おきに5回、LEDが点滅を繰り返すプログラム を書いてみました。 from gpiozero import LED from time import sleep led = LED(11) for t in range(0, 5): led.on() sleep(1) led.off() sleep(1) ホタルのようなLチカ 次にすこし発展させて、 正弦波でなめらかな、ホタルのようなLEDの点滅 をさせてみました。そのプログラムがこちら。 from gpiozero import PWMLED from time import sleep import numpy as np led = PWMLED(11) led.value = 0 for t in np.arange(0, 100*2*np.pi ,0.01): a = 0.5 * np.sin(t-np.pi/2) + 0.5 # print(a) led.value = a sleep(0.002) ▲ aの値を0〜1に正規化するため、また、プログラムスタート時の値を0からにするため、 $ 0.5 \times sin(t-\frac{π}{2}) + 0.5 $ としてます。 ...

公開: 2019年8月25日 · 更新: 2026年7月10日 · Toshihiko Arai