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

IoTベースの水質センサー

コンポーネントと消耗品

>
Arduino UNO
× 1
オス/メスのジャンパー線
× 1
HC-05Bluetoothモジュール
× 1
RGB拡散コモンカソード
× 1
抵抗330オーム
× 3
ロータリーポテンショメータ(汎用)
× 1
RGB LCDシールドキット、16x2文字ディスプレイ
× 1
抵抗1kオーム
× 1

必要なツールとマシン

>
ワイヤーストリッパーおよびカッター、26-14AWG単線およびより線

アプリとオンラインサービス

>
Arduino IDE
Ardutooth

このプロジェクトについて

水は私たちの日常生活に欠かせない資源です。そのため、使用に適した品質であることを確認する必要があります。

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-青); } 

カスタムパーツとエンクロージャー

私はこれを作らなければならなかった古い試験管を使用しました。チューブの両端に穴をあけ、両端からワイヤーを挿入しました。最後に、ワイヤーを所定の位置に保持するために、パテを取り付けました。

回路図


製造プロセス

  1. 基本的なIoT– RaspberryPIHDC2010の方法
  2. DHT11センサーを接続するRaspberryPIベースのIoTプロジェクト
  3. セルラーIoT:スマートゴミ箱
  4. ヘリウム空気質センサー
  5. MCP3008の高感度水センサー
  6. Windows 10 IoTCoreおよびSHT15
  7. マルチ温度センサー
  8. Arduinoを搭載したウォーターボトル
  9. モーションセンサー水鉄砲
  10. ローカル気象台
  11. カーボンベースの空気品質センサー