IoTベースの水質センサー
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
水は私たちの日常生活に欠かせない資源です。そのため、使用に適した品質であることを確認する必要があります。
TDSとは何ですか?
TDSはTotalDissolvedSolidsの略です。名前が示すように、特定の量の水に溶解した固形物の数をppm(parts per million)で示します。 TDSは、電気伝導率[S / m]に基づいて計算されます。電気伝導率が高いほど、TDS値は高くなります。さまざまな種類の水のTDS値のリストは次のとおりです。
- 純水:80-150
- 水道水:250-350
- 地下水:500-1000
- 海水:約30000
WHO(世界保健機関)が推奨するように、飲料水の適切なTDSは300未満です。ただし、100未満のTDSの水は、必須ミネラルが不足しているため、消費できません。 300を超える水は、必要以上のミネラルを含んでいるため、「硬すぎる」と見なされます。
通常、水のTDSを測定するためにTDSペンを使用します。ただし、ペンをArduinoと統合することはできません。そのため、Arduinoと統合できる特別なTDSメーターが利用可能です。しかし、私はTDSペンを使用せずにこのプロジェクトを行うことにしました。
<図>
回路
Arduino
- 5VのArduinoをブレッドボードの1つの電源レールに接続します
- Arduinoのアースをブレッドボードの他の電源レールに接続します
- 1kオームの抵抗の一方の端をアースに接続し、もう一方の端をブレッドボードに接続します。 ArduinoのアナログピンA0を抵抗に接続します。最後に、ワイヤを抵抗に接続し、別のワイヤを5Vに接続します。これらのワイヤーの自由端をワニのクリップに接続します。
<図>
LCD 表示
- VSSピンをアースレールに接続します
- VDDピンを5Vレールに接続します
- V0をポテンショメータのセンターピンに接続します
- ポテンショメータの両端を5Vとアースに接続します
- RSピンをArduinoピン7に接続します
- R / Wピンをアースレールに接続します
- EピンをArduinoピン8に接続します
- D4をArduinoピン10に接続します
- D5をArduinoピン11に接続します
- D6をArduinoピン12に接続します
- D7をArduinoピン13に接続します
<図>
HC-05Bluetoothモジュール
- VCCピンを5Vレールに接続します
- GNDピンをグランドに接続します
- TXピンをArduinoピン3(RXとして機能)に接続します
- RXピンをArduinoピン2に接続します(TXとして機能します)
<図>
RGB LED
- コモンカソード(最長のピン)をアースに接続します
- 赤いピン(カソードピンの右側)を330オームの抵抗を介してArduinoのPWMピン9に接続します
- 緑色のピン(カソードピンの左側)を330オームの抵抗を介してArduinoのPWMピン6に接続します
- 青色のピン(左端)を330オームの抵抗を介してArduinoのPWMピン5に接続します
<図>
フリーワイヤ間の抵抗を計算するための導関数
オームの法則を使用します。この法則では、抵抗Rの抵抗を流れる電圧[V]は、抵抗を流れる電流[I]に正比例します。つまり、 V =IR
ArduinoのアナログピンA0への2つの抵抗器[R1-1000オームとR2-フリーワイヤ間]の間にワイヤが接続されていますが、そのワイヤの抵抗は無視できるため、次のように言えます。最小限の電流がワイヤを流れます。したがって、R1とR2は直列に接続されます。
したがって、V₁=IR₁
と言えます。 およびV₂=IR₂
。
したがって、V₂/V₁=IR₂/IR₁=R₂/R₁
と言うことができます。
。ただし、V₂はわかりません。
抵抗器の直列の組み合わせでは、V₁+V₂=V
、ここでV =5ボルト。これから、V₂=5-V₁
を取得できます。
最後に、取得した値をV₂
に置き換えます V₂/V₁=R₂/R₁
、可変バッファを5-V₁/V₁
と定義できます。 、V₂/V₁
の代わりに 。
最後に、R₂=buffer *R₁
と言えます。 。
作業中
試験中の水の抵抗率を計算し、そこから抵抗率を求めます。このためには、コンテナの長さと断面積を考慮する必要があります。
R =r L / A => r =R A / L
抵抗率から、導電率を得ることができます
c =1 / r
最後に、導電率からTDSを取得します
TDS =c * 7000
ライブラリ
- 液晶ライブラリ:https://www.arduinolibraries.info/libraries/liquid-crystal
- ソフトウェアシリアルライブラリ:https://pdfpunk.weebly.com/softwareserial-library-download.html
これらのライブラリをダウンロードしてArduinoIDEに追加するか、[ツール]-> [ライブラリの管理]->ダウンロードするライブラリを検索する
に移動できます。 <図> <図>
コード
- 水質モニタリングコード
水質モニタリングコード Arduino
// include libraries#include#include // for bluetooth-BTserialというオブジェクトを作成します。RXピンは3、TXピンは2SoftwareSerial BTserial(3,2); // RX | TX //すべての変数のデクラレーションfloatreads; int pin =A0; float vOut =0; // 2ポイント間の電圧降下floatvIn =5; float R1 =1000; float R2 =0; float buffer =0; float TDS; float R =0; // 2本のワイヤーフロート間の抵抗r =0; //抵抗率フロートL =0.06; // mdoubleのワイヤー間の距離A =0.000154; // m ^ 2floatのワイヤーの断面積C =0; // S / mfloatの導電率Cm =0; // mS / cmintの導電率rPin =9; int bPin =5; int gPin =6; int rVal =255; int bVal =255; int gVal =255; //この式を使用して、オームの法則を使用した後の抵抗率を取得します-> R =r L / A => r =RA / L //液晶ライブラリからlcdオブジェクトを作成LiquidCrystallcd(7,8,10,11,12,13 ); void setup(){// BTシリアルおよびシリアルモニターを初期化しますSerial.begin(9600); BTserial.begin(9600); // lcdを初期化しますlcd.begin(16、2); // rgb ledピン(すべてArduinoではpwmピンになります)を出力として設定しますpinMode(rPin、OUTPUT); pinMode(bPin、OUTPUT); pinMode(gPin、OUTPUT); pinMode(pin、INPUT); //停滞したメッセージをLCDに出力lcd.print( "Conductivity:");} void loop(){reads =analogRead(A0); vOut =読み取り* 5/1023; Serial.println(reads); // Serial.println(vOut);バッファ=(vIn / vOut)-1; R2 =R1 *バッファ; Serial.println(R2); delay(500); //電圧を抵抗に変換します//上記の式を適用しますr =R2 * A / L; // R =rL / A //抵抗率を条件に変換しますC =1 / r; Cm =C * 10; // mS / cm単位の導電率をTDSTDS =Cm * 700に変換します。 // LCDのカーソルを次の行に設定しますlcd.setCursor(0,1); lcd.println(C); //アナログLEDに従ってrgbに対応する色を表示しますreadif(reads <600){if(reads <=300){setColor(255、0、255); } if(reads> 200){setColor(200、0、255); }} else {if(読み取り<=900){setColor(0、0、255); } if(読み取り> 700){setColor(0、255、255); }} // bluetoothBTserial.print(C); BTserial.print( "、"); BTserial.print(TDS); BTserial.print( ";"); delay(500);を介して携帯電話のArdutoothアプリにデータを送信します。 } void setColor(int red、int green、int blue){analogWrite(rPin、255 --red); analogWrite(gPin、255-緑); analogWrite(bPin、255-青); }
カスタムパーツとエンクロージャー
私はこれを作らなければならなかった古い試験管を使用しました。チューブの両端に穴をあけ、両端からワイヤーを挿入しました。最後に、ワイヤーを所定の位置に保持するために、パテを取り付けました。 回路図
製造プロセス