SmartAgro: 精密農業向け 高度IoTソリューション
必要な部品と材料
| Arduino MKR GSM 1400 | ×1 |
| SORACOM Air Global IoT SIM | ×1 |
| Arduino MKR MEM Shield (SDカードスロット付き) | ×1 |
| GY-21 温湿度センサー (I2C) | ×1 |
| Adafruit SI1145 UV/可視光/赤外光センサー | ×1 |
| SparkFun 土壌水分センサー (ネジ端子付き) | ×1 |
| Adafruit 防水 DS18B20 デジタル温度センサー (土壌温度用) | ×1 |
| ジャンパーワイヤー | ×1 |
必要な工具と機器
- はんだごて (汎用)
プロジェクト概要
概要
農地は現代社会の存続に不可欠な資源です。しかし農業には多くの課題があります: 作物に適した温度・湿度・日照を確保し、病害虫や干ばつから守る必要があります。
近年「スマートファーミング (スマート農業)」の概念が広がっていますが、既存システムは高価で小規模農家には手が出ず、大規模農場にも対応しきれていません。
SmartAgro は、フィールドに設置するデバイスネットワークを低コストで構築し、大気データ・土壌パラメータ・光環境を収集してクラウドのダッシュボードで可視化するソリューションです。あらゆる規模の農場が、拡張可能なデバイス群で「次の時代の農業」に踏み出せるようにします。


機能
SmartAgroデバイスは設定間隔でセンサーサンプリングを行い、データをSDカード (CSV) に記録しつつ、SORACOM経由でクラウドバックエンドへ送信します。フロントエンド (デバイス側) とバックエンド (SORACOM) で構成されます。
フロントエンド (フィールドデバイス)


- SDカード記録:
datalog.csvに追記保存。起動時にファイル存在確認し、なければヘッダー付きで新規作成。 - 電源管理: LiPoバッテリー、モバイルバッテリー、またはVINピンから給電可能。測定間隔はスリープモードで消費電力を抑制。
- データ送信: GSM経由でSORACOM HarvestへJSONペイロードをPOST送信。ペイロード例:
{ "Latitude": 53.3570404, "Longitude": -6.2609935, "soilTemp": 20.56, "soilHumidity": 40, "atmoTemp": 22.12, "atmoHumidity": 62, "uvLight": 0.00, "irLight": 257, "deviceName": "device1" }
バックエンド (SORACOM)
SORACOM Air でデータ受信、Harvest で蓄積、Lagoon でダッシュボード表示・アラート設定。



- ダッシュボード: 各デバイスの位置と全センサーデータをプロット。
- アラート機能: UV指数や土壌湿度が異常値のときメール通知。
メリット
- いつでもどこでもダッシュボードでデータ可視化
- デバイスを容易にスケールアウト可能 (フリート管理)
- 既存ソリューションより大幅なコスト削減
製作手順
Step 1: 必要な部材
- Arduino MKR GSM 1400
- Arduino MKR MEM Shield
- GY-21 温湿度モジュール
- 防水温度センサー (DS18B20)
- SI-1145 UV光センサー
- 土壌水分センサー
- 単3電池ボックス (電池込み) または LiPoバッテリー
- SORACOM SIMカード
- SDカード (FAT32フォーマット)
- ジャンパーワイヤー、はんだ付け用品

Step 2: 回路接続
Fritzing回路図 (記事内画像参照) に従ってはんだ付け。MKR MEM Shield をボードに装着するのを忘れずに。

Step 3: コードの構成理解
コードは4つの主要セクションで構成:
- SDカード準備 (
checkFile(),createFile()) - CSVファイルの存在確認/作成 - データ収集 (
collectData()) - 全センサーから温度、湿度、光量などを取得 - SDカード書き込み (
burnData()) - CSV行を追記 - SORACOM送信 (
parseData()) - HTTP POST で JSON ペイロードを送信
各関数の詳細は記事内のコードブロックを参照。
Step 4: ユーザー設定変数
deviceName: デバイス識別名 (フリート管理用)sleepTime: スリープ時間 (ミリ秒)。バッテリー節約のため調整proDebug: デバッグモード。trueならシリアルモニタ接続必須。現地設置時はfalseに
Step 5: SDカード準備
SDカードを FAT32 でフォーマット (記事内の手順画像参照)。
Step 6: コード書き込み & 初期データ送信
MKR GSM をPCに接続しコード書き込み (モード=1で)。全センサーを水に浸し、ボタンを押してデータ収集・送信を数回繰り返し、SORACOM側にデータを蓄積。
Step 7: SORACOM セットアップ
Section 1: アカウント作成・SIM登録 (記事内のスクリーンショット手順参照。SORACOMユーザーコンソールでオペレーター作成→SIM登録→グループ作成→Harvest有効化)
Section 2: グループとHarvest設定 (Harvest Data の有効化、データ確認)
Step 8: SORACOM Lagoon ダッシュボード構築
Lagoon でダッシュボード作成、グラフ・マップ・アラート (メール通知) を設定 (記事内の大量のスクリーンショット手順参照)。
使用ライブラリ
- ArduinoLowPower, MKRGSM, Wire, OneWire, DallasTemperature, RTCZero, SPI, SD
筐体設計
UVセンサー用に上面を透明にした専用ケースを設計・3Dプリント (記事内画像参照)。実運用ではセンサーをケース外に出して干渉を避けています。

背景
バスから見える田畑を眺めながら、高価な農業IoTデバイスを安価なArduinoで代替できないかと思いつきました。あらゆる規模の農家がIoTとスマート農業の恩恵を受けられるよう、このプロジェクトを作りました。

コード
完全なコードは記事内のコードブロック、またはGitHubリポジトリを参照。
回路図

schematics_rrBJ3HiIfc.fzz (Fritzingファイル)
製造プロセス
- 家庭用の低コストワイヤレスセンサーネットワークを構築
- K30 CO2センサで室内空気質をリアルタイム監視する
- デジタル身長計の自作:Arduino Nanoとレーザー距離センサーで成長記録
- Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
- DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
- ESP32で作るIoT環境モニター:温湿度・気圧・CO2をWebダッシュボードで可視化
- Arduino Nanoで作るスマートな動体検知水鉄砲
- PHPベースのWebインターフェースでArduino Unoを制御する構築ガイド
- コンパクトなArduinoレーダーシステム – HC-SR04超音波センサー & 1.8インチST7735ディスプレイ搭載
- ArduinoセンサーデータをPHPMyAdmin経由でMySQLにアップロードする手順
- Arduinoセンサー:種類、応用、実世界プロジェクト