ラズベリーパイでデータロガー!電圧測定してグラフにしてみた

ラズベリーパイ(raspberry pi)

ラズベリーパイでデータロガーを格安で自作してみました。

USBで簡単に接続でき、10チャンネル分のアナログ電圧入力を測定可能です。

Pythonでデータ出力、またリアルタイムでグラフにするまでを一から紹介します。

 

スポンサーリンク

ラズベリーパイでデータロガー!電圧測定してグラフにしてみた

ラズベリーパイでデータロガーを自作してみました。

USB接続のAD変換のボードですので簡単に電圧測定が可能です。

 

AD変換のボードで電圧が測定できるため、スイッチ・温度センサーなども接続可能です。

 

ラズパイで測定したデータをタイムスタンプと共にファイル出力できます。

 

Pythonでアナログの電圧値を確認して、データ収集からグラフ化まで対応できます。

 

接続方法からプログラムまで詳細を紹介していきます。

下記動画でも分かりやすく紹介していますので是非一緒にご覧ください。

ラズパイで電圧測定!アナログ入力をPythonで読み取ってみた

 

パソコンでもデータロガーにできます

今回はラズベリーパイをデータロガーにしていますが、Windowsのパソコンでも可能です

下記記事で紹介しています。(リンク先はこちら)

データロガーを自作!温度や電圧をUSBから簡単に測定してみた
データロガーを簡単に自作出来ました。値段も1000円程度で格安です。 USB経由でデータを取得でき、簡単に表・グラフ化まで対応可能です。 部品の購入方法からデータの取得方法まで手順を一から紹介します。

 

今回使用したのはUSB接続のAD変換ボードです。値段は1000円程度です。

「温度や電圧などのアナログ値」を「データ用のデジタル値」に変換するボードです。

USBシリアル接続のため、WindowsのソフトでもラズパイのPythonでも対応可能です。

 

データロガーのセンサーを自由に選択可能

今回のデータロガーとするUSBのボードは電圧値を取得します。

端子台形状になっており、ジャンパー線で自由にセンサーを接続できます。

 

ジャンパー線に関しては市販のジャンパー線(オスーオス)です。

端子台とブレットボードを接続しています。下記記事で紹介したものを使用しています。

ラズベリーパイとセットで購入するべき おすすめ部品/パーツ/キット

 

今回は「スイッチ」と「温度センサー」の情報をデータ収集します。

 

データロガーの配線図

今回のデータロガーとしての配線図としては下記形になります。特に難しいことはしていません。

「温度センサー」「10kΩプルダウン+スイッチ」を接続しました。

プルダウンが無いとスイッチ押されていないとき、0Vに固定されないので接続します。

 

測定可能な電圧は3.3Vまで

今回のデータロガーの注意点としては測定可能な最大電圧は3.3Vとなります。

基本的には3.3Vで動作するのセンサーを用意する必要があります。

端子台からAD変換しているCPUに直結しているためだと思われます。

 

データロガーのチャンネル数は10ch

今回のAD変換ボードは最大10チャンネルまでまとめて測定可能です。

特に設定など必要なく、自動的に10チャンネル分データが確認できます。

 

データロガーの分解能は12bit

今回のAD変換の精度(分解能)は12bitとなります。

明確なデータシートはありませんが、CPUがSTM32ですので12bit_AD変換のようです。

0~3.3Vまでを12bit(2^12)のため、単純換算で約0.8mV(3.3÷4096)単位の精度です。

 

実際に測定した所、約3.3VをAD変換時には4096付近の値を取っていました。

 

データロガーのサンプリング周期は500ms

今回のデータロガーとしてのサンプリング周期は約500ms(0.5秒)です。

タイムスタンプを入れて実際に確認してみました。

AD変換ボードから約500ms周期で10チャンネル分のデータが送られてきます。

 

Pythonでデータロガーとしてファイル出力

ラズベリーパイでPythonを使い、データロガーとしてファイル出力します。

 

ラズパイにはデフォルトでPythonがインストールされており、誰でも簡単に使用できます。

初心者の方でも大丈夫です。下記記事で使い方を紹介しています。(リンク先はこちら)

ラズベリーパイでプログラミング入門!Pythonの簡単な始め方
プログラミングを始めたい方にラズベリーパイを使った簡単な入門方法を紹介します。 プログラミング言語の中でも初心者にもやさしく、人気なPythonがラズパイならば簡単にスタートできます。 ラズベリーパイでプログラミング入門!Pytho...

 

Pythonでシリアルデータをそのまま読み出す

まずは単純にAD変換ボードの値をそのまま読み出します。

USBシリアル接続のため「pyserial」というライブラリで簡単にデータ取得可能です。

設定に関しては2行目に記載しているボーレートの115200ぐらいです。

 

Pythonのシリアル通信の詳細については下記記事で紹介しています。(リンク先はこちら)

Pythonでserial(シリアル)通信!Read/Writeの波形を見てみた
uartのシリアル通信でRead/Write・ボーレート変更時の波形をアナライザで確認しました。Pythonとraspberry piでテストして測定動画を撮っており、シリアル通信の使い方・基礎を確認したい方におすすめです。 以前...

 

プログラムなどは下記に記載していますが、あくまで一例です。

今回のデータロガーの仕様に合わせていますので、参考レベルでお願いします。

(筆者のテストレベルのため、結構いい加減のプログラムです)

 

出力結果は下記結果となり、バイトデータで10ch分のAD変換値を取得できています。

 

Pythonで時間情報含めてファイル出力する

時間情報(タイムスタンプ)含めてデータをPythonでファイル出力します。

出力方法に関しては色々ありますが、今回はテキストベースで出力しています。

AD変換値と電圧値はボードから貰えるため、タイムスタンプを足すだけです。

 

実際のプログラムは下記形です。

1秒間隔で5回分のデータをタイムスタンプと一緒にファイル出力しています。

 

Pythonのプログラムと同じフォルダ場所に「logger.txt」としてファイル出力できました。

 

ラズパイにはLibreOfficeというエクセルのようなフリーソフトもインストールされています。

ファイル出力したテキストデータをエクセル同様に表・グラフ化も可能です。

 

Pythonで電圧測定した値をグラフ化

Pythonで電圧測定した値をリアルタイムでグラフ化してみます。

 

今回のプログラムは下記記事でCPU温度をリアルタイムでプロットした応用版です。

ラズベリーパイのヒートシンクの効果は?ファンまで必要かを検証!

 

今回例ではスイッチの入力電圧(CH5)を測定しました。

スイッチがOFFの場合は0V、ONの場合は約3.3Vが電圧測定されています。

 

冒頭でも紹介しましたが、動画でみると実際のアナログ値の動きが分かりやすいです。

是非一緒にご覧ください。

ラズパイで電圧測定!アナログ入力をPythonで読み取ってみた

 

実際のプログラムが下記となります。

CH5の電圧値を10ch分のデータから(結構)無理やり分割して抽出しています。

 

Pythonで温度センサーの値をグラフ化

電圧同様に温度センサーのデータをリアルタイムでグラフ化してみます。

 

センサーから電圧出力されるので、温度換算すれば測定できます。

実際にセンサーを手で温めると温度が上昇することを確認しました。

 

実際のプログラムが下記となります。

内容としては電圧測定のとほぼ同じです。計算・文言など修正したのみです。

 

まとめ

今回はラズパイのデータロガー化に関して紹介させていただきました。

記事をまとめますと下記になります。

ラズパイとAD変換ボードを使えば「簡単」にデータロガーを自作できます。
Pythonを使って測定データをファイル出力可能です
Pythonでリアルタイムでグラフ化まで実施できます

 

ラズベリーパイ(raspberry pi)AD変換ボードを組み合わせて、データロガーにできます。

さらにPythonを使えばファイル出力・グラフ化など多くの対応が可能です。

是非皆さまもデータロガーを試してみて下さい。

コメント