工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

川の健康を見守る:Arduinoベース水質監視システム「MyRiver」

必要な部品と材料

部品数量
Arduino MKR1000 (MKR FOX 1200)1
水位センサー1
pHセンサー1
白色LED (可能なら)1
220Ω 抵抗2
フォトレジスター (光センサー)1
ジャンパーワイヤー1セット

必要な工具

使用するアプリとサービス

プロジェクト概要

概要

川や湖は憩いの場ですが、汚染や氾濫が起きれば台無しです。家畜の飲み水として川の水を使う人々にとって、水質悪化は死活問題。夜中に洪水で家が浸水したり、隣人がガソリンを川に捨てたりすれば、取り返しがつきません。

MyRiver はこれらを解決します。Sigfox通信で圏外エリアでも動作し、pH・水位・不溶性汚染物質(油・水銀等)を独自手法で検知。データはWia経由でスマホ/PCからリアルタイム監視可能。異常時は即座に通知が届くため、手遅れになる前に対処できます。

川の健康を見守る:Arduinoベース水質監視システム「MyRiver」

機能詳細

Arduino MKR FOX (SAM D21ベース) を採用。低消費電力モードで単3電池2本で長期駆動可能。30分ごとにセンサー読み取り→スリープ (最短20分)。

  1. pHセンサー で水素イオン濃度を測定
  2. 水位センサー で水位を監視
  3. LED + フォトレジスター で不溶性汚染を検知:LED光を水中で照射し、フォトレジスターの受光量が低下すれば油膜や懸濁物が存在すると判断 (独自手法)

データは12バイトのHEXバッファにパックしてSigfox送信→Wiaでデコード・処理・可視化・通知。

川の健康を見守る:Arduinoベース水質監視システム「MyRiver」

データフォーマット (12バイト = 3センサー × 4バイト)

各センサーの生値 (0-1023) を4桁ゼロ埋め文字列に変換し連結。例:水位=24 → "0024", pH=620 → "0620", 汚染=1023 → "1023" → 結合 "002406201023" をHEX送信。

川の健康を見守る:Arduinoベース水質監視システム「MyRiver」

コードの主要3関数

// 1. センサー読み取り
struct GetValue {
  int riverLevel() { return analogRead(A2); }
  int riverPh()  { return (analogRead(A1) / 5 * 3.3); } // 電圧変換
  int riverPol() { return analogRead(A3); } // フォトレジスター
};

// 2. バッファフォーマット (12バイト文字列生成)
String data(int level, int ph, int pol) {
  int values[3] = {level, ph, pol};
  String newValues;
  for(int i=0; i<3; i++) {
    if(values[i] < 10) newValues += "000";
    else if(values[i] < 100) newValues += "00";
    else if(values[i] < 1000) newValues += "0";
    newValues += String(values[i]);
  }
  return newValues; // 例: "002406201023"
}

// 3. Sigfox送信
void parseData(String data) {
  SigFox.beginPacket();
  SigFox.print(data);
  SigFox.endPacket();
}

Wia + Sigfox 連携セットアップ

  1. SigfoxアカウントとWiaアカウントを作成、Wiaアプリをインストール
  2. Sigfoxコールバック設定: Type=Data Uplink, Channel=URL, URL="https://api.wia.io/v1/events", Method=POST, Header "Authorization: Bearer [Wiaデバイストークン]", Content-Type=application/json, Bodyに所定JSONを設定
  3. WiaフローでHEX→文字列→数値変換、閾値判定、メール通知を構築 (詳細手順は画像参照)

閾値設定 (ユーザー調整必要)

フォトレジスター閾値決定用スケッチ例:

void setup() { pinMode(1, OUTPUT); Serial.begin(9600); while(!Serial); digitalWrite(1, HIGH); }
void loop() { Serial.println(analogRead(A3)); delay(5000); }

デバイス実装・設置

ペットボトルを防水ケースとして再利用 (エコで低コスト)。キャップにセンサー露出穴を開け、内部に基板・電池を収納。テープで防水処理。

川の健康を見守る:Arduinoベース水質監視システム「MyRiver」

設置は満潮時に行い、水位センサー下端が水面に、フォトレジスターが完全に水没する位置で固定。汚れた川でテストしたところ全アラートが正常動作。

背景と意義

「美しい川が緑色のドロドロになり、夜中に家へ押し寄せる」そんな事態を防ぎたい。都市部でも農村でも、MyRiverは川の異常をいち早く知らせ、命と暮らしを守ります。pHだけでは検知できない不溶性汚染 (重金属・油等) を「光透過率低下」で捉える独自手法が核心です。

製造プロセス

  1. Raspberry Pi、MCP9808、InfluxDB、Grafanaで作る家庭温度モニター
  2. エモーションセンサー&EEG:リアルタイム感情検知のための低コストハードウェア
  3. アナログセンサー搭載・高精度圧力&気流測定デバイス
  4. DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
  5. UnifiedWater v1 - 完全なArduino水質センサーキット
  6. 3D RGB アルドゥクロック:Bluetooth対応LED時計(RTC内蔵)
  7. Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
  8. Arduinoとジョイスティックでインタラクティブゲーム – LEDフィードバック付き
  9. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  10. Arduinoで作る自律走行ミニローバー
  11. 酸素(O2)センサーを理解する:役割、配置、故障の兆候