温湿度センサーとArduinoで農業IoTを自作する方法

温湿度センサーとArduinoを使って農業IoTを自作する方法を徹底解説。DHT11・DHT22・BME280の違いや接続手順、スマート農業への活用まで、あなたの農場に本当に使えるシステムはどれでしょうか?

温湿度センサーとArduinoで農業IoTを自分で構築する全手順

DHT11を農業で使うと、個体差だけで湿度が10〜15%もズレて病害の見逃しにつながります。


📋 この記事の3つのポイント
🌡️
センサーの選び方が肝心

DHT11・DHT22・BME280にはそれぞれ精度や価格に大きな差があり、農業用途ではDHT22以上が推奨されます。安価なDHT11は湿度誤差±5%+個体差で実用に耐えない場合があります。

🔌
配線とスケッチは3ステップで完成

ArduinoとDHT22の接続はたった3本の配線で完了します。ライブラリを2つインストールすればサンプルスケッチをそのまま使えるので、プログラム初心者でも対応可能です。

📱
ESP32でクラウド連携・遠隔監視まで実現

Wi-Fi内蔵のESP32を使えば、ビニールハウスのデータをGoogleスプレッドシートやAmbientへリアルタイム送信でき、スマホからどこでも監視できるシステムが数千円で構築できます。


温湿度センサーのArduino向け主要3種類を比較する


農業用途でArduinoに接続できる温湿度センサーとして、特によく使われるのがDHT11、DHT22(AM2302)、そしてBME280の3種類です。それぞれの特性を正確に把握することが、農場での失敗を防ぐ第一歩になります。


まず最も安価なDHT11は、1個あたり約140〜200円で手に入ります。しかし農業環境での使用には注意が必要です。湿度の測定範囲は20〜90%RHに限られており、誤差は±5%と大きめ。さらに問題なのは、複数個を使用した際の個体差です。実際に同じ条件下で数個のDHT11を並べると、10〜15%もの値のズレが発生することが報告されています。これはビニールハウスの湿度管理には致命的な誤差になりかねません。湿度が高い場合の植物病害(灰色かび病うどんこ病など)は、70〜80%のRH域でリスクが急上昇するため、±15%の誤差は見逃しを招きます。


次にDHT22(AM2302)は、約500〜800円で購入できます。DHT11と配線・コードがほぼ同じでありながら、精度は大幅に向上しています。湿度は0〜100%RH対応で誤差は±2%、温度は−40〜+80℃に対応し精度は±0.5℃。農業現場でよく問題になる「冬場の氷点下環境」や「夏場の40℃超え」にも安心して使えます。価格はDHT11の約4〜5倍ですが、信頼性の差は絶大です。これが農業向けの基本選択です。


最後にBME280は、温度・湿度に加えて気圧まで測定できるI2C/SPI接続のセンサーです。温度精度は±1℃、湿度精度は±3%と十分な精度を持ちながら、消費電力が極めて低い(通常動作で3.6μA)のが特徴です。バッテリー駆動の野外センサーに適しており、農場全体に多数のノードを展開する場合にも向いています。


| センサー | 価格目安 | 温度精度 | 湿度精度 | 測定範囲(湿度) |
|----------|---------|---------|---------|----------------|
| DHT11 | 約200円 | ±2℃ | ±5%RH | 20〜90% |
| DHT22 | 約600円 | ±0.5℃ | ±2%RH | 0〜100% |
| BME280 | 約800円 | ±1℃ | ±3%RH | 0〜100% |


農業でビニールハウスの管理をするなら、DHT22以上が原則です。



温湿度センサーとArduinoの配線・接続手順を解説する

DHT22をArduinoに接続する作業は、シンプルで分かりやすいです。必要な部品は4つだけ(DHT22モジュール、Arduino Uno、ブレッドボード、ジャンパ線)で、工具もUSBケーブルとパソコンがあれば十分です。


配線の手順はたった3本です。


- DHT22の「VCC」ピン → Arduino の「5V」ピンに接続
- DHT22の「GND」ピン → Arduino の「GND」ピンに接続
- DHT22の「DATA」ピン → Arduino のデジタルピン「2番」に接続


なお、モジュール化されていない素のDHT22センサーを使う場合は、DATAピンと5Vの間に10kΩのプルアップ抵抗を挟む必要があります。一方、モジュール基板に組み込まれた製品(Amazonなどで「DHT22モジュール」として販売されているもの)はすでにプルアップ抵抗が内蔵されているため、3本の配線だけで完了します。農業用途では管理の手間を省くため、モジュール版の購入がおすすめです。


BME280を使う場合は接続方法が変わります。I2C接続を選択すれば、配線は「VCC、GND、SDA(Arduino A4ピン)、SCL(Arduino A5ピン)」の4本で済み、1本の信号線で複数のセンサーを同時接続できる(多点計測が可能)というメリットがあります。1棟のハウスに複数の計測ポイントを設けたい場合に非常に有効な手法です。


接続が終わったら、Arduino IDEでライブラリを2つインストールします。「ツール→ライブラリを管理」から以下を検索してインストールしてください。


- DHT sensor library(Adafruit製)
- Adafruit Unified Sensor(Adafruit製)


この2つが入っていれば動作します。


Arduino入門レッスン:温湿度センサー編(おもろ家)— ライブラリのインストールから配線図・サンプルコードまで初心者向けに丁寧に解説されています。


温湿度センサーのArduinoスケッチ(サンプルコード)を理解する

配線が完了したら、いよいよスケッチ(プログラム)を書き込みます。DHT22を使う場合の基本的なスケッチは以下のとおりです。コードは非常にシンプルです。


```cpp
#include "DHT.h"


#define DHTPIN 2 // DATAピンをデジタル2番に接続
#define DHTTYPE DHT22 // DHT22を使用する場合


DHT dht(DHTPIN, DHTTYPE);


void setup() {
Serial.begin(9600);
dht.begin();
}


void loop() {
delay(2000); // 2秒間隔で計測(DHT22は最低2秒間隔が必要)


float h = dht.readHumidity(); // 湿度を読み取る
float t = dht.readTemperature(); // 温度を読み取る(℃)


if (isnan(h) || isnan(t)) {
Serial.println("センサーからの読み取りに失敗しました");
return;
}


Serial.print("湿度: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("温度: ");
Serial.print(t);
Serial.println(" ℃");
}
```


このスケッチをArduino IDEで開き、「マイコンボードに書き込む」ボタンを押せば完了です。書き込みが終わったら「シリアルモニタ」を開いて(ボーレートは9600)、温度と湿度の数値が2秒ごとに表示されることを確認します。


一点、農業現場で見落とされやすい注意点があります。DHT22のサンプリング間隔は最低2秒(0.5Hz)必要であるため、上記コードの`delay(2000)`は削除してはいけません。間隔を短くしすぎると「Failed to read from DHT sensor!」というエラーが連続表示されて値が取得できなくなります。これが農場データが途切れる原因の大半を占めています。


DHT11を使いたい場合は、スケッチ内の`#define DHTTYPE DHT22`の部分を`#define DHTTYPE DHT11`に変えるだけで動作します。逆に、DHT22と指定したスケッチにDHT11を差し込んでも値が取得できない(エラーが出続ける)ので、型の指定ミスには注意が必要です。


DHT22が正常に動作して数値が安定して取得できたら、次のステップへ進む準備が整います。


Arduino-BME280のI2C/SPIサンプルプログラム詳細解説(Spiceman)— BME280で温湿度・気圧を同時計測したい場合のスケッチとコマンド一覧はこちらで確認できます。


温湿度センサーのデータをArduinoでクラウド・遠隔監視に活用する

単純にシリアルモニタで数値を見るだけでは、農業利用として不十分です。農作業中やハウスを離れているときでもリアルタイムに状態を把握できることが、実用システムの条件になります。ここで活躍するのがWi-Fi内蔵マイコン「ESP32(ESP-WROOM-32)」との組み合わせです。


ESP32はArduinoと同じ感覚でプログラムを書けるうえ、Wi-FiとBluetooth通信機能を内蔵しており、価格は1枚1,000〜1,500円程度と非常に安価です。DHT22と組み合わせれば、センサー・通信・マイコンの3役をたった2つの部品でカバーできます。システム全体の材料費は3,000〜5,000円程度に収まります。


クラウドへのデータ送信先として、以下の2つの無料サービスが農業現場で実績があります。


- 🌐 Ambient:IoT向けデータ可視化サービス。ESP32からHTTPでデータを送ると、自動でグラフ化される。無料枠でチャンネル8つ、データ3000件/日まで対応。スマートフォンからの閲覧も可能。


- 📊 Googleスプレッドシート(Google Apps Script連携):センサーデータをGoogleスプレッドシートに自動書き込みするプログラムを作成可能。Excelと同等の分析機能を使えるため、今まで手書きで管理していた農業データのデジタル化に適している。


これが農業IoTの実用構成です。一般的なスマート農業の環境センサーシステムは導入費用が100万円単位になることもありますが、ArduinoベースのDIYシステムであれば初期費用を数千円〜1万円以内に抑えることが可能です。


遠隔監視のメリットは時間だけではありません。夜間や早朝のハウス温度異常(冬場の凍結リスク、夏場の高温障害)は農作物に深刻なダメージを与える前に警報を受け取ることができます。温度が設定値を超えたらLINEやメールで通知する仕組みも、ESP32とIFTTTやGoogle Apps Scriptを組み合わせれば無料で構築できます。


ビニールハウスの温度をESP32とGoogleスプレッドシートでクラウド管理する実践手順(nomad-life.net)— ESP32のIDEへのボード追加からGoogleスクリプトの設定まで、農家が実際に試した全手順が掲載されています。


農業ハウス向けAmbientを使った環境計測システム事例(Ambient)— 温度・湿度・CO2・日射量をまとめてクラウドに記録する農業用構成の実例が確認できます。


温湿度センサーをArduinoで農業に使う際の独自視点:設置場所の工夫と経年劣化対策

Arduino・温湿度センサーの接続方法やコードについては多くの解説記事がありますが、農業現場特有の「設置環境」に関する注意点はほとんど語られていません。センサーの置き場所と劣化管理の2点は、正確なデータを長期的に得るうえで非常に重要です。


まず設置場所の問題です。ビニールハウス内でDHT22やBME280を設置する場合、センサーをそのまま露出した状態で吊るすのは避けるべきです。直射日光が当たると温度が実際より5〜10℃高く表示されることがあり、それに伴い相対湿度の値も大きくズレます。農業気象の観測では「百葉箱」の概念が古くからあるように、センサーは「遮光・通気・防雨」を同時に確保したカバーの中に設置することが基本です。


屋外・ハウス内に設置する簡易的なカバーとして、100円ショップのホワイトカップやアイスクリームの空き容器(底面に穴を開けて通気)を使う農家も実際にいます。専用品では「Stevenson Screen型のPLA製ボックス」が3Dプリンターで自作可能で、より安定した計測が期待できます。これは使えそうです。


次に経年劣化への対策です。温湿度センサーは消耗品という側面があります。農業IoT専門のIT工房Z社の情報によると、正確な計測を維持するためには温湿度センサーを1〜2年での交換が推奨されています。高湿度・高温のビニールハウス内では、通常の室内利用より劣化が早まる可能性もあります。


DHT22の場合は1個あたり600円前後、BME280は800円前後ですので、年間交換コストは非常に小さいです。交換のタイミングを逃さないよう、センサーの取り付け日をスプレッドシートに記録しておくことを勧めます。また、2個のセンサーを同時に設置して互いの値を比較することで、異常な値のズレを検知する「2重化構成」も有効な方法です。


劣化とは別に、農薬散布による薬液がセンサー表面に付着して計測値が狂うケースも報告されています。センサーへの農薬の直接付着を防ぐ防護カバーは、農業向けIoT設置の際に必須と考えておくべきです。センサーを守れれば長期安定運用が可能です。


農業IoTにおけるセンサーの寿命と交換推奨タイミングについて(IT工房Z)— 温湿度センサーとCO2センサーの交換・校正周期の目安が解説されており、長期運用計画を立てる際の参考になります。




FS304-SHT30/31/35温度湿度センサー 土壌デジタル温度&湿度センサープローブ 防塵温度湿度センサー ステンレス鋼プラスチックハウジング I2C出力 温度監視 湿度監視 防水 耐食性 防錆 FS304-SHT3X (SHT35)