1. 概要
ロードセルという重さをはかるセンサーを使って、
重さを図り、測った値をDBに格納し、必要だったらslackに通知する。
2. どうして作ったのか
日々、個数を数えたり、残量を見て発注しているものがある業種は多いと思います。
個数や残量ではなく、対象の重さを測って 発注する/しない を
判定できると楽でいいなと想像したのでプロトタイプを作りました。
3. 準備物
- Raspberry Pi(ここではmodelB rev2とします。古い。。。) * 1個
python3が使えるようにRapbianがセットアップ済みとします。 - ロードセル シングルポイント(ビーム型) 10kg * 1個
秋月電子のサイトで買えます。
P-13042で検索すると出てきます。 - HX711使用 ロードセル用ADコンバータ モジュール基板 * 1個
前述のRaspberry Pi と ロードセルとを接続するために使います。
秋月電子のサイトで買えます。
K-12370で検索すると出てきます。
前提として、購入後に必要なはんだ付けは終わっているものとします。 - ジャンパワイヤー(メスtoメス) * 3本
前述のロードセル用ADコンバータとロードセルを接続するために使います。
ぼくはスイッチサイエンスで買いました。
4. 作っていく
4.1. ロードセル と ロードセル用ADコンバータ を接続する。
4.2. ロードセル用ADコンバータ と RaspberyPi を接続する
準備していたジャンパワイヤーを使って、ロードセル用ADコンバータと
RaspberryPi の GPIOピンに接続します。
-
RaspberryPi側の接続
よく分かる画像を撮ってなかった。。。
以下の画像のように接続します。
絶対にここってわけではなくて、赤の電源と黒のGRD以外は、
GPIOのピンアサインをみて他のところに刺してもOKです。
4.3. ロードセルで計測した値を取得するスクリプトを git cloneする
4.4. スクリプトを実行する
スクリプトを実行すると値が取れる。
あとは、pythonのスクリプトなので、psycopg2 とか使ったりして、
DBに格納したり、requestsとか使ったりしてslackに通知したりすればよいよい。
5. 完成形サンプル
6. TIPS
- 正確なグラム数を取得するにはキャリブレーションが必要
7. その他
しきい値を作っても通知しても、実際発注するかどうかは暗黙知が必要だったりする。
なので、発注したかどうかを記録し目的変数とし、天候や販促キャンペーン、
店舗なら近隣のイベントの有無とか、重量以外の情報も説明変数として集積して、
発注するかどうかを重回帰とかで予測するのはどうだろうか。