Arduinoでキッチンスケールの出力を受け取る

題名の通り。

ことの発端は、薬品管理をなんとか楽にできないか、ということです。
学校で使う薬品は、鍵のかかる薬品庫に保管しているわけですが、使用に伴って、管理簿に使用した日付、薬品、使用した質量と、現有質量をその都度記入していかなくてはいけません。ただ、これがとてつもなく大変で、日々のゴタゴタの中では、とりあえずメモしておいて、時間のあるときに転記、というパターンが多い。(つまり、リアルタイムで管理簿に反映されにくい)

この辺を自動化できないか、ということで、理想的にはICタグかなんかを薬品の容器に貼っておいて、電子てんびんに載せると、ICタグ読み取りで薬品の特定と、質量の計量を同時に行って、日付と時間と紐付けて記録、となれば電子てんびんの上に置くだけで現状の記録が全てOKとなるわけです。

Arduinoとストレインゲージあたりでできると思うのですが、結局、薬品管理の関係上、履歴を見たり、必要な分の出力を紙でしたりできないといけないので、そしたら、PCと通信させればいいかなぁと。Arduinoはシリアル通信ができるので、シリアル通信で値を送る。
送られる側はProcessingとかNI LabVIEWとかでもいいんだけど、まぁ、結局帳簿を管理するんならExcelだよねー、ということで、Excel+EasyCommという感じ。

ストレインゲージも、まぁ、薬品を置く機構とか考えたら、既存のキッチンスケールをそのまま使ったら良いんじゃない?ということで、調べるとオペアンプで増幅でもいけるみたいだけど、HX711というモジュールを間にかますといい感じらしいということで、その方向で。

この辺は、2年前くらいにも考えて、そのときは、あんまり情報源がなくって、ネットで検索してもストレインゲージで得た値をオペアンプで増幅くらいの記事ばかりだったんだけど、HX711使う記事が最近出てきたので、軌道に乗った感じ。HX711だとライブラリのおかげで、深く考えなくても質量が出てくるのがいい。ちょー楽。

結論。

  1. Arduino+HX711で安いキッチンスケールからの値を読み取る
  2. 読み取った値はシリアル通信で出力
  3. Excelのvba、EasyCommでシリアル通信を受ける
  4. 読み取ったデータをもとに、帳票をExcelで管理

という流れ。
ICタグ周りは後でやればいいかなぁということでとりあえずここまで。

●実際の配線

省略します。特別なことはしていません。参考サイトからどうぞ。

このへん。写真だけ載せておく。


キッチンスケールとArduino+HX711シールド


裏面。

●Arduinoスケッチ

H711ライブラリ使用。キャリブレーション済

●Excelファイル

使い方は大体分かると思います。単純な機能のみです。

計測用.xlsm

※Win10Pro(x64) + Excel 2013で作成
※EasyComm使用。有用なモジュールをありがとうございます。
※常識の範囲内で、ご自由にお使いください。
※ご使用において、いかなる損害が生じた場合も、一切責任を持てませんのでご了承ください。

●検証

別のキッチンスケールで計量。ちょっと影になってて暗いけれど、346g(1g単位)。

 

Excel+EasyCommのシリアル通信で得た値。346.11g(小数点以下2桁表示)
少数第2位の値は常にゆらいでいるので、整数桁までは問題なく使用できそう(小数第1位はギリギリ使用できるかどうか微妙なところ)

Excelの結果。勝手にグラフ(散布図)にしてくれる。ポンっと上がったところが試料を載せたところ。

受信ソフト側(Excel+EasyComm)は、単純にシリアル通信で値を受けて表示+記録してるだけなので、g表示だけ直せば、他の用途にも使える。

●参考サイト

投稿作成者: loki

返事を残す

あなたのE-mailアドレスは公開されません。