电路

如何使用Raspberry Pi和Ubidots构建人员计数器:6个步骤

How to Write and Run a Bare Metal C Program in ARM DS-5 AE for Altera SoCs

How to Write and Run a Bare Metal C Program in ARM DS-5 AE for Altera SoCs

目录:

Anonim

在这个简单的项目中,我们将使用运动传感器来检测物体是否在我们的Raspberry Pi前面经过。然后我们将计算发生的次数,并将此值发送给Ubidots。

人员柜台通常是零售业中使用的昂贵设备,用于了解购物者的行为方式。感谢Raspberry Pi和Ubidots,我们能够在几个小时内建立一个功能强大的人员计数器并且只需几美元!

一旦我们将人数统计数据发送到Ubidots,我们就可以创建漂亮的图表进行分析,以及短信/电子邮件警报。

供应:

第1步:获得正确的材料

要完成此项目,您需要:

  1. Raspberry Pi模型B.
  2. Parallax的PIR传感器
  3. Raspberry Pi兼容的USB WiFi Dongle
  4. 一个USB电池组为Raspberry Pi供电(如果你想让Pi完全无线,这是可选的)
  5. 三个女性 - 女性跨接电线

第2步:将事情联系起来

PIR运动传感器使用起来非常简单,因为它只有三个引脚:

  • 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 upgrade $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip install ubidots

创建一个名为“peoplecounter.py”的新文件:

$ sudo nano peoplecounter.py

并将下面的代码写入其中。确保将API密钥和变量ID的值替换为您的个人Ubidots帐户中的值。 (注意:代码不是太优雅,但是嘿,我不是Python开发人员,只是一个硬件人:)

该脚本包含一个循环,用于检查引脚#7(运动传感器)的状态。如果它读取“1”,意味着有移动,则它增加“peoplecount”变量并等待1.5秒,以便运动传感器恢复正常。这样做了10次,确保每个周期之间至少有1秒钟,然后它将“运动”的总和发送给Ubidots。如果您需要校准人员计数器,则应使用其他值的“time.sleep”行。

来自ubidots导入ApiClient

将RPi.GPIO导入为GPIO

进口时间

GPIO.setmode(GPIO.BCM)

GPIO.setup(7,GPIO.IN)

尝试:

api = ApiClient(“a21ebaf64e14d195c0044fcc3b9f6dab9d653af3”)

people = api.get_variable(“5238cec3f91b282c7357a140”)

除了:打印“无法连接到API,检查您的Internet连接”

counter = 0

peoplev = 0

而(1):

presence = GPIO.input(7)

如果(存在):

peoplecount + = 1

存在= 0

time.sleep(1.5)

time.sleep(1)

计数器+ = 1

如果(计数器== 10):

打印peoplecount

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

counter = 0

peoplev = 0

第5步:显示您的数据

最后,转到您的Ubidots仪表板并添加“声明“。这将显示您指定的时间范围内检测到的总人数

第6步:结束

该项目提供了通过特定点的人数的提示。考虑到运动传感器的限制,它不能提供确切的人数,但在某些应用中,这可能就足够了。

收集的数据可以轻松发送到Ubidots Cloud,可以通过创建警报,实时仪表板甚至在社交媒体中共享此数据,嵌入代码或仅在公共链接中进行解释。您还可以使用Ubidots API从其他应用程序中读取此数据。