回路

Raspberry PiとUbidotsを使って人数カウンターを構築する方法:6つのステップ

Modified Enclosures

Modified Enclosures

目次:

Anonim

この単純なプロジェクトでは、モーションセンサーを使用して、オブジェクトがラズベリーパイの前を通過しているかどうかを検出します。その後、何回発生したかをカウントし、この値をUbidotsに送信します。

ピープルカウンターは、一般に、買い物客の行動を理解するために小売業界で使用される高価な機器です。 Raspberry PiとUbidotsのおかげで、我々は数時間と数ドルで機能的な人のカウンターを構築することができます!

データをカウントしている人々をUbidotsに送信したら、分析用の優れたグラフやSMS / Eメールアラートを作成できます。

用品:

ステップ1:適切な資料を入手する

このプロジェクトを完了するにはあなたが必要となります:

  1. ラズベリーパイモデルB
  2. 視差によるPIRセンサー
  3. ラズベリーパイ対応のUSB WiFiドングル
  4. Raspberry Piに電源を供給するためのUSBバッテリーパック(これはPiを完全にワイヤレスにしておきたい場合のためのオプションです)
  5. 3本の雌 - 雌ジャンパー線

ステップ2:ものを配線する

PIRモーションセンサーは3本のピンしかないため、非常に使いやすいです。

  • V +
  • GND
  • 動きがある場合は "1"、ない場合は "0"を出力する信号ピンです。

何もはんだ付けする必要も、この信号を検出するために複雑なI2Cやシリアル機能を書く必要もありません。 Raspberry PiのGPIOピンにケーブルをまっすぐ差し込むだけで、うまくいきます。

ステップ3:ケーシング

PIRセンサーは動きに非常に敏感なので、後ろのジャンパースイッチを使って最低感度を設定しました。また、私はサングラスのペアから古いケースを取り出して、それに穴を開けて、それからその中にRPiとPIRセンサーを置きました。このように、モーションセンサーは全方向性ではなく、一点に集中しています。

ステップ4:RPiをコーディングする

この時点で、Raspberry Piの基本的な設定は完了しており、Linuxのコマンドラインを見ているとします。そうでない場合は、最初にこのガイドを読むことをお勧めします。また、Wicdを使ってRaspberry PiのWiFiをセットアップすることについてのこの投稿をチェックすることもできます。

必要なライブラリがすべて揃っていることを確認することから始めましょう。

$ sudo apt-get update
$ sudo apt-getアップグレード$ sudo apt-getインストールpython-setuptools $ sudo easy_install pip $ pipインストールubidots

"peoplecounter.py"という名前の新しいファイルを作成します。

$ sudo nano peoplecounter.py

そして、それに以下のコードを書きなさい。 APIキーと変数IDの値を、あなたの個人用のUbidotsアカウントのものと置き換えてください。 (注:コードは洗練されたものではありませんが、私はPython開発者ではなく、ハードウェアの専門家ではありません。)

このスクリプトは、ピン#7(モーションセンサー)の状態をチェックするループで構成されています。それが動きがあったことを意味する「1」を読むなら、それはそれから「peoplecount」変数を増加させて、そして1.5秒待って、それで運動センサーは正常に戻る。これは10回行われ、各サイクルの間に少なくとも1秒の間隔があることを確認してから、「動き」の合計をUbidotsに送信します。人数カウンタを調整する必要がある場合は、 "time.sleep"行を他の値で再生する必要があります。

ubidotsからApiClientをインポートする

GPiとしてRPi.GPIOをインポートする

インポート時間

GPIO.setmode(GPIO.BCM)

GPIO.setup(7、GPIO.IN)

試してみてください。

api = ApiClient( "a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

people = api.get_variable( "5238cec3f91b282c7357a140")

例外:print「APIに接続できませんでした。インターネット接続を確認してください」

カウンタ= 0

peoplev = 0

while(1):

プレゼンス= GPIO.input(7)

if(プレゼンス):

人数+ = 1

プレゼンス= 0

time.sleep(1.5)

time.sleep(1)

カウンタ+ = 1

if(counter == 10):

印刷人数

people.save_value({'value':peoplecount})

カウンタ= 0

peoplev = 0

ステップ5:あなたのデータを表示する

最後に、あなたのUbidotsダッシュボードに行き、 "以下のタイプのウィジェットを追加してください。"ステートメントmsgstr "これはあなたが指定した時間枠内に検出された人数の合計を表示します

ステップ6:まとめ

このプロジェクトは、特定のポイントを通過する人数のヒントを提供します。モーションセンサーの制限を考えると、正確な人数を提供するわけではありませんが、アプリケーションによってはこれで十分な場合もあります。

収集したデータはUbidots Cloudに簡単に送信できます。そこでアラート、ライブダッシュボードを作成したり、ソーシャルメディアで埋め込んだコードとして公開したり、パブリックリンクを作成したりすることで解釈できます。 Ubidots APIを使用して他のアプリケーションからこのデータを読み取ることもできます。