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

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

必要な部品と材料

Arduino UNO ×1
Atlas Scientific Gravity™ アナログpHセンサー ×1
Atlas Scientific コンシューマーグレード pHプローブ ×1
20×4 LCDモジュール(I2Cアダプター付き推奨) ×1
158×90×60mm エンクロージャー(ABS製) ×1
ミニブレッドボード ×1
抵抗 220Ω ×1
抵抗 1kΩ ×1
11mmスペーサーとネジ(pHセンサー付属) ×4
ジャンパーワイヤー ×1セット
アクリル板(プレキシガラス) ×1

必要な工具と機器

使用するアプリとオンラインサービス

プロジェクト概要

このプロジェクトでは、Atlas ScientificのGravityアナログpH回路とプローブ、Arduino Unoを使って卓上pHメーターを作ります。測定値は液晶ディスプレイ(LCD)に表示されます。

注意:

Step 1: ハウジングの準備

安全第一: 工具/機械を扱う際は注意し、ゴーグル、手袋、防塵マスク等の保護具を着用してください。

使用するのはABSプラスチック製エンクロージャー。pHメーター用に加工します。

LCD用開口部の切り出し

  1. LCDはエンクロージャーの上部(カバー)に配置。中央に98×40mmの長方形をマーク。
  2. バイスで固定し、マークした長方形内に3.2mm(1/8インチ)の下穴を開ける。
  3. この下穴から乾式壁カッタービットで内側を切り抜く。小さな作業なのでドリルで手作業で行う。線の内側を切るときれいに仕上がる。
  4. ヤスリで余分な材料を取り除き、必要なサイズに整える。

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

BNCコネクタとArduinoポート用開口部

これらはエンクロージャー下部の側面に設けます。

  1. 下図の寸法に従って、円(BNC用)と2つの長方形(Arduino USB/電源用)の中心と輪郭をマーク。
  2. バイスで固定して切り抜き。円はドリルビットで、長方形はLCD開口部と同様の手順で。

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

ベースプレートの準備と部品取り付け

ベースプレートにArduino、pHセンサー、ミニブレッドボードを取り付けます。3.2mm厚のアクリル板を使用。

  1. バンドソーでアクリル板を135×62.5mmに切断。
  2. 下図の位置に4つの穴(2.38mm / 3/32インチ径)を開け、片面を皿取り(深さ3mm、径4.4mm / 11/64インチ)してネジ頭が埋まるようにする。
  3. 付属の11mmスペーサーをネジで取り付け。pHセンサーに4個付属。うち2個をArduino用に使用。

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

Step 2: ハウジングへの電子部品実装

  1. ベースプレートをエンクロージャー下部に入れ、ネジまたはホットグルーで固定。
  2. pHセンサーをベースプレートに取り付け、スペーサーで固定。
  3. Arduino Unoをベースプレートに取り付け、スペーサーで固定。
  4. ミニブレッドボードをベースプレートに貼り付け。
  5. LCDにヘッダーピンをはんだ付け(付属)。エンクロージャー上部に挿入し、ホットグルーで固定。

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド
Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド
Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド
Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド
Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

Step 3: 配線

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

上記回路図通りに配線します。ミニブレッドボードで1kΩと220Ω抵抗を配置し、Arduinoの5VとGNDを分配します。この2つの抵抗はLCDコントラスト調整用です。

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

データシート: Gravity pHセンサー、pHプローブ

Step 4: 最終組み立て

  1. 配線完了後、エンクロージャーの上下を付属ネジで組み合わせる。
  2. pHプローブをBNCコネクタに接続。

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

Step 5: Arduino Unoへコードをアップロード

このプロジェクトではカスタムライブラリとヘッダーファイルを使用します。Arduino IDEに追加する手順を含めます。

  1. ArduinoをPCに接続しIDEを開く(未インストールの場合はこちらから)。
    ツール → ボード → Arduino/Genuino Uno を選択。
    ツール → シリアルポート → Arduinoが接続されているポートを選択。
  2. LiquidCrystalライブラリ追加: スケッチ → ライブラリをインクルード → ライブラリを管理 → 検索バーに「liquidcrystal」 → 「LiquidCrystal Built-in by Arduino, Adafruit」をインストール(未インストールの場合)。
  3. Atlas Gravityセンサーライブラリ追加: ここからZIPダウンロード(「Atlas_gravity.zip」として保存)。
    スケッチ → ライブラリをインクルード → .ZIP形式のライブラリをインストール → ダウンロードしたファイルを選択。
  4. pHメーターコード追加: このリンクのコードをIDEにコピー。
  5. コンパイルしてアップロード。
  6. LCDにpH値が表示されます。シリアルモニタ(ツール → シリアルモニタ または Ctrl+Shift+M)でも確認可能。ボーレート9600、「改行コード: CR」を選択。

Step 6: pHセンサーのキャリブレーション

注意: 外部電源でArduinoを動かす場合、キャリブレーション前に接続してください。基準レベルが適切に設定され、正確なキャリブレーションができます。

このpHメーターは1点、2点、または3点キャリブレーションに対応。標準緩衝液(pH 4、7、10)が必要です。

キャリブレーションはシリアルモニタで行います。読み取り値の安定を確認しながらコマンドを送信します。キャリブレーションデータはArduinoのEEPROMに保存されます。

キャリブレーションコマンド

手順

  1. ソーカーボトルを外し、pHプローブを水で洗浄。
  2. pH 4緩衝液をカップに注ぎ、プローブの検出部が浸かる量を確保。
  3. プローブを浸し、攪拌して気泡を除去。シリアルモニタの読み取り値が安定するまで待つ(微小な変動は正常)。
  4. 安定したらシリアルモニタに cal,4 と入力送信。pH 4キャリブレーション完了。
  5. pH 7、pH 10についても同様に繰り返す。緩衝液を変えるたびにプローブを洗浄すること。

温度補償について

使用センサーの精度は±0.2%。動作温度範囲7〜46°Cでこの精度を維持します。この範囲外では温度補償が必要です。なお、pHプローブ自体は1〜60°Cまで耐えられます。

スケッチ

/* アップロード後、シリアルモニタを開き、ボーレート9600、改行コード「CR」を設定
   リアルタイムpH表示とキャリブレーションが可能
   キャリブレーションコマンド:
   低点: "cal,4"   中点: "cal,7"   高点: "cal,10"   クリア: "cal,clear"
*/
#include "ph_grav.h"          // Atlas Scientific Gravity pHセンサー用ヘッダー
#include "LiquidCrystal.h"    // LCD用ヘッダー

String inputstring = "";
boolean input_string_complete = false;
char inputstring_array[10];

Gravity_pH pH = A0;                    // アナログピンA0をpHセンサー出力に割り当て
LiquidCrystal pH_lcd(2, 3, 4, 5, 6, 7); // LCDピン割り当て (2→RS, 3→E, 4-7→D4-D7)

void setup() {
  Serial.begin(9600);
  pH_lcd.begin(20, 4);                 // 20桁×4行LCD初期化
  pH_lcd.setCursor(0,0);
  pH_lcd.print("--------------------");
  pH_lcd.setCursor(0,3);
  pH_lcd.print("--------------------");
  pH_lcd.setCursor(5, 1);
  pH_lcd.print("pH Reading");
  
  if (pH.begin()) {
    Serial.println("Loaded EEPROM");
  }
  Serial.println(F("Use commands \"CAL,4\", \"CAL,7\", and \"CAL,10\" to calibrate"));
  Serial.println(F("Use command \"CAL,CLEAR\" to clear the calibration"));
}

void serialEvent() {
  inputstring = Serial.readStringUntil(13); // CRまで読み取り
  input_string_complete = true;
}

void loop() {
  if (input_string_complete) {
    inputstring.toCharArray(inputstring_array, 30);
    parse_cmd(inputstring_array);
    input_string_complete = false;
    inputstring = "";
  }
  Serial.println(pH.read_ph());        // シリアルモニタに出力
  pH_lcd.setCursor(8, 2);
  pH_lcd.print(pH.read_ph());          // LCDに出力
  delay(1000);
}

void parse_cmd(char* string) {
  strupr(string); // 大文字変換
  if (strcmp(string, "CAL,4") == 0) {
    pH.cal_low();
    Serial.println("LOW CALIBRATED");
  } else if (strcmp(string, "CAL,7") == 0) {
    pH.cal_mid();
    Serial.println("MID CALIBRATED");
  } else if (strcmp(string, "CAL,10") == 0) {
    pH.cal_high();
    Serial.println("HIGH CALIBRATED");
  } else if (strcmp(string, "CAL,CLEAR") == 0) {
    pH.cal_clear();
    Serial.println("CALIBRATION CLEARED");
  }
}

回路図

Atlas Scientificセンサーで作る高精度Arduino pHメーター - 部品とガイド

製造プロセス

  1. Bluetooth操作のArduinoスパイボットを自作する
  2. FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
  3. 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
  4. 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
  5. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  6. Arduinoプロジェクトのための最適化電源ソリューション
  7. Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
  8. スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
  9. ゲーム用カスタムArduinoジョイスティックハンドルの製作
  10. Arduino Nano R3で本格的なCNCマシンを自作する
  11. Earth Analyzer: 農業支援のための高度IoT環境監視ローバー