Schaltungen

Wie man einen People Counter mit Raspberry Pi und Ubidots baut: 6 Schritte

PEOPLE COUNTER (NEW CONCEPT) part1

PEOPLE COUNTER (NEW CONCEPT) part1

Inhaltsverzeichnis:

Anonim

In diesem einfachen Projekt verwenden wir einen Bewegungssensor, um zu erkennen, ob sich ein Objekt vor unserem Raspberry Pi befindet. Dann werden wir zählen, wie oft das passiert, und diesen Wert an Ubidots senden.

Personenzähler sind in der Regel teure Geräte, die im Einzelhandel eingesetzt werden, um das Verhalten von Kunden zu verstehen. Dank Raspberry Pi und Ubidots sind wir in der Lage, in wenigen Stunden und mit ein paar Dollar einen funktionierenden Personenzähler aufzubauen!

Sobald wir die Personenzählungsdaten an Ubidots gesendet haben, können wir schöne Diagramme zur Analyse sowie SMS- / E-Mail-Benachrichtigungen erstellen.

Zubehör:

Schritt 1: Die richtigen Materialien finden

Um dieses Projekt abzuschließen, benötigen Sie:

  1. Ein Himbeer-Pi-Modell B
  2. Ein PIR-Sensor von Parallax
  3. Ein Raspberry Pi kompatibler USB WiFi Dongle
  4. Ein USB-Akku zur Stromversorgung des Raspberry Pi (optional, falls Sie den Pi vollständig drahtlos lassen möchten)
  5. Drei weiblich-weibliche Überbrückungsdrähte

Schritt 2: Verdrahtung

Der PIR-Bewegungssensor ist recht einfach zu bedienen, da er nur drei Pins hat:

  • V +
  • GND
  • Ein Signal-Pin, der bei Bewegung "1" und bei Nichtvorhandensein "0" ausgibt.

Sie müssen nichts löten oder komplexe I2C- oder serielle Funktionen schreiben, um dieses Signal zu erkennen. Stecken Sie einfach die Kabel direkt in die GPIO-Pins Ihres Raspberry Pi und es wird funktionieren!

Schritt 3: Gehäuse

Da der PIR-Sensor sehr bewegungsempfindlich ist, habe ich den Jumper-Schalter dahinter verwendet, um die niedrigste mögliche Empfindlichkeit einzustellen. Außerdem habe ich ein altes Etui aus einer Sonnenbrille genommen und ein Loch darin gemacht und dann das RPi und den PIR-Sensor darin platziert. Auf diese Weise ist der Bewegungssensor in einem Punkt stark fokussiert, anstatt so omnidirektional zu sein.

Schritt 4: Kodieren Sie Ihr RPi

An dieser Stelle gehen wir davon aus, dass Sie eine grundlegende Einrichtung Ihres Raspberry Pi vorgenommen haben und sich die Linux-Befehlszeile ansehen. Wenn nicht, empfehlen wir, zuerst diese Anleitung durchzuarbeiten. In diesem Beitrag erfahren Sie auch, wie Sie mit Wicd das WLAN Ihres Raspberry Pi einrichten.

Stellen Sie zunächst sicher, dass alle erforderlichen Bibliotheken vorhanden sind:

$ sudo apt-get update
$ sudo apt-get upgrade $ sudo apt-get installiere python-setuptools $ sudo easy_install pip $ pip installiere ubidots

Erstellen Sie eine neue Datei mit dem Namen "peoplecounter.py":

$ sudo nano peoplecounter.py

Und schreiben Sie den folgenden Code hinein. Stellen Sie sicher, dass Sie die Werte des API-Schlüssels und der Variablen-ID durch die Werte in Ihrem persönlichen Ubidots-Konto ersetzen. (Hinweis: Der Code ist nicht zu elegant, aber ich bin kein Python-Entwickler, nur ein Hardware-Typ :)

Das Skript besteht aus einer Schleife, die den Status von Pin 7 (Bewegungssensor) überprüft. Wenn es eine "1" anzeigt, was bedeutet, dass eine Bewegung stattgefunden hat, erhöht es die Variable "peoplecount" und wartet 1,5 Sekunden, damit der Bewegungssensor wieder normal wird. Dies geschieht zehnmal, wobei sichergestellt wird, dass zwischen jedem Zyklus mindestens eine Sekunde liegt. Anschließend wird die Gesamtsumme der "Bewegungen" an Ubidots gesendet. Wenn Sie den People Counter kalibrieren müssen, sollten Sie mit den "time.sleep" -Linien mit anderen Werten spielen.

von Ubidots importieren ApiClient

Importieren Sie RPi.GPIO als GPIO

Importzeit

GPIO.setmode (GPIO.BCM)

GPIO.setup (7, GPIO.IN)

Versuchen:

api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

people = api.get_variable ("5238cec3f91b282c7357a140")

außer: print "Konnte keine Verbindung zur API herstellen, überprüfe deine Internetverbindung"

Zähler = 0

peoplev = 0

während (1):

Anwesenheit = GPIO.input (7)

if (anwesenheit):

Personenanzahl + = 1

Anwesenheit = 0

time.sleep (1.5)

Schlafenszeit (1)

Zähler + = 1

if (counter == 10):

Personenzahl drucken

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

Zähler = 0

peoplev = 0

Schritt 5: Zeigen Sie Ihre Daten an

Gehen Sie schließlich zu Ihrem Ubidots-Dashboard und fügen Sie ein Widget des Typs "AussageMsgstr "" "Dies zeigt die Gesamtzahl der Personen an, die innerhalb eines von Ihnen festgelegten Zeitraums gefunden wurden

Schritt 6: Einpacken

Dieses Projekt gibt einen Hinweis auf die Anzahl der Personen, die einen bestimmten Punkt passieren. Aufgrund der Einschränkungen des Bewegungssensors wird nicht die genaue Anzahl der Personen angegeben, aber in einigen Anwendungen ist dies möglicherweise ausreichend.

Die gesammelten Daten können einfach an die Ubidots Cloud gesendet und dort interpretiert werden, indem Warnmeldungen, Live-Dashboards erstellt oder diese Daten sogar in sozialen Medien, als Einbettungscode oder einfach in einem öffentlichen Link geteilt werden. Sie können diese Daten auch mit der Ubidots-API aus einer anderen Anwendung lesen.