Πίνακας περιεχομένων:

Πώς να φτιάξετε έναν μετρητή ανθρώπων με Raspberry Pi και Ubidots: 6 βήματα
Πώς να φτιάξετε έναν μετρητή ανθρώπων με Raspberry Pi και Ubidots: 6 βήματα

Βίντεο: Πώς να φτιάξετε έναν μετρητή ανθρώπων με Raspberry Pi και Ubidots: 6 βήματα

Βίντεο: Πώς να φτιάξετε έναν μετρητή ανθρώπων με Raspberry Pi και Ubidots: 6 βήματα
Βίντεο: Φτιάξε ενα μικρό μετεωρολογικό σταθμό 2024, Νοέμβριος
Anonim
Πώς να φτιάξετε έναν μετρητή ανθρώπων με Raspberry Pi και Ubidots
Πώς να φτιάξετε έναν μετρητή ανθρώπων με Raspberry Pi και Ubidots
Πώς να φτιάξετε έναν μετρητή ανθρώπων με το Raspberry Pi και το Ubidots
Πώς να φτιάξετε έναν μετρητή ανθρώπων με το Raspberry Pi και το Ubidots

Σε αυτό το απλό έργο θα χρησιμοποιήσουμε έναν αισθητήρα κίνησης για να ανιχνεύσουμε εάν ένα αντικείμενο περνά μπροστά από το Raspberry Pi. Στη συνέχεια, θα μετρήσουμε πόσες φορές συμβαίνει αυτό και θα στείλουμε αυτήν την τιμή στο Ubidots.

Οι πάγκοι είναι συνήθως ακριβές συσκευές που χρησιμοποιούνται στη λιανική βιομηχανία για να καταλάβουν πώς συμπεριφέρονται οι αγοραστές. Χάρη στο Raspberry Pi και το Ubidots, είμαστε σε θέση να φτιάξουμε έναν λειτουργικό πάγκο ανθρώπων σε λίγες ώρες και με λίγα δολάρια!

Μόλις στείλουμε τα άτομα που μετρούν δεδομένα στο Ubidots, μπορούμε να δημιουργήσουμε ωραία γραφήματα για ανάλυση, καθώς και ειδοποιήσεις SMS/Email.

Βήμα 1: Αποκτήστε τα σωστά υλικά

Απόκτηση των σωστών υλικών
Απόκτηση των σωστών υλικών
Απόκτηση των σωστών υλικών
Απόκτηση των σωστών υλικών
Απόκτηση των σωστών υλικών
Απόκτηση των σωστών υλικών
Απόκτηση των σωστών υλικών
Απόκτηση των σωστών υλικών

Για να ολοκληρώσετε αυτό το έργο θα χρειαστείτε:

  1. Ένα Raspberry Pi Model B
  2. A PIR Sensor by Parallax
  3. Ένα συμβατό Raspberry Pi USB Dongle USB
  4. Μια μπαταρία USB για να τροφοδοτήσει το Raspberry Pi (αυτό είναι προαιρετικό σε περίπτωση που θέλετε να αφήσετε το Pi εντελώς ασύρματο)
  5. Τρία σύρματα γυναικών-γυναικών
  6. Λογαριασμός Ubidots - ή - Άδεια STEM

Βήμα 2: Καλωδίωση των πραγμάτων

Καλωδίωση των πραγμάτων
Καλωδίωση των πραγμάτων
Καλωδίωση των πραγμάτων
Καλωδίωση των πραγμάτων

Ο αισθητήρας κίνησης PIR είναι αρκετά απλός στη χρήση επειδή έχει μόνο τρεις ακίδες:

  • V+
  • GND
  • Ένας ακροδέκτης σήματος που εξάγει "1" όταν υπάρχει κίνηση και "0" όταν δεν υπάρχει.

Δεν χρειάζεται να κολλήσετε τίποτα, ούτε να γράψετε πολύπλοκες I2C ή σειριακές λειτουργίες για τον εντοπισμό αυτού του σήματος. απλά συνδέστε τα καλώδια κατευθείαν στις καρφίτσες GPIO του Raspberry Pi και θα λειτουργήσει!

Βήμα 3: Περίβλημα

Θήκη
Θήκη
Θήκη
Θήκη

Επειδή ο αισθητήρας PIR είναι πολύ ευαίσθητος στην κίνηση, χρησιμοποίησα τον διακόπτη βραχυκυκλωτήρα πίσω του για να ορίσω τη χαμηλότερη δυνατή ευαισθησία. Επίσης, πήρα μια παλιά θήκη από ένα ζευγάρι γυαλιά ηλίου και έκανα μια τρύπα, έπειτα τοποθέτησα το RPi και τον αισθητήρα PIR μέσα σε αυτό. Με αυτόν τον τρόπο, ο αισθητήρας κίνησης επικεντρώθηκε σε ένα σημείο, αντί να είναι τόσο πολυκατευθυντικός.

Βήμα 4: Κωδικοποίηση του RPi σας

Σε αυτό το σημείο, θα υποθέσουμε ότι έχετε κάνει μια βασική ρύθμιση του Raspberry Pi και κοιτάτε τη γραμμή εντολών Linux. Εάν όχι, σας συνιστούμε να περάσετε πρώτα από αυτόν τον οδηγό. Μπορείτε επίσης να ελέγξετε αυτήν την ανάρτηση σχετικά με τη χρήση του Wicd για τη ρύθμιση του WiFi του Raspberry Pi.

Ας ξεκινήσουμε βεβαιώνοντας ότι έχουμε όλες τις απαιτούμενες βιβλιοθήκες:

$ 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", που σημαίνει ότι υπήρχε κίνηση, τότε αυξάνει τη μεταβλητή "αριθμός ατόμων" και περιμένει 1,5 δευτερόλεπτο, ώστε ο αισθητήρας κίνησης να επιστρέψει στο φυσιολογικό. Αυτό γίνεται 10 φορές, διασφαλίζοντας ότι υπάρχει τουλάχιστον 1 δευτερόλεπτο μεταξύ κάθε κύκλου, και στη συνέχεια στέλνει το συνολικό άθροισμα των "κινήσεων" στους Ubidots. Εάν πρέπει να βαθμονομήσετε τον Μετρητή ατόμων, θα πρέπει στη συνέχεια να παίξετε με τις γραμμές "time.sleep" με άλλες τιμές.

από ubidots εισαγωγή ApiClient

εισαγωγή RPi. GPIO ως GPIO

χρόνο εισαγωγής

GPIO.setmode (GPIO. BCM)

GPIO.setup (7, GPIO. IN)

προσπαθήστε:

api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")

άτομα = api.get_variable ("5238cec3f91b282c7357a140")

εκτός: εκτύπωση "Δεν ήταν δυνατή η σύνδεση στο API, ελέγξτε τη σύνδεσή σας στο Διαδίκτυο"

μετρητής = 0

άτομαv = 0

ενώ (1):

παρουσία = GPIO.input (7)

εάν (παρουσία):

peoplecount += 1

παρουσία = 0

ώρα. ύπνος (1,5)

ώρα. ύπνος (1)

μετρητής += 1

εάν (μετρητής == 10):

εκτύπωση αριθμού ατόμων

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

μετρητής = 0

άτομαv = 0

Βήμα 5: Εμφάνιση των δεδομένων σας

Εμφάνιση των δεδομένων σας
Εμφάνιση των δεδομένων σας
Εμφάνιση των δεδομένων σας
Εμφάνιση των δεδομένων σας
Εμφάνιση των δεδομένων σας
Εμφάνιση των δεδομένων σας
Εμφάνιση των δεδομένων σας
Εμφάνιση των δεδομένων σας

Τέλος, μεταβείτε στον πίνακα ελέγχου του Ubidots και προσθέστε ένα γραφικό στοιχείο του τύπου "Δήλωση". Αυτό θα εμφανίσει τον συνολικό αριθμό ατόμων που εντοπίστηκαν μέσα σε ένα χρονικό πλαίσιο που καθορίσατε

Βήμα 6: Ολοκλήρωση

Τυλίγοντας
Τυλίγοντας

Αυτό το έργο παρέχει μια υπόδειξη για τον αριθμό των ανθρώπων που περνούν από ένα συγκεκριμένο σημείο. Δεν παρέχει τον ακριβή αριθμό ατόμων, δεδομένων των περιορισμών του αισθητήρα κίνησης, αλλά σε ορισμένες εφαρμογές αυτό μπορεί να είναι αρκετά.

Τα δεδομένα που συλλέγονται μπορούν να σταλούν εύκολα στο Ubidots Cloud, όπου μπορούν να ερμηνευτούν με τη δημιουργία ειδοποιήσεων, ζωντανών ταμπλό ή ακόμη και με την κοινή χρήση αυτών των δεδομένων στα κοινωνικά μέσα, ως ενσωματωμένο κώδικα ή απλώς σε δημόσιο σύνδεσμο. Μπορείτε επίσης να διαβάσετε αυτά τα δεδομένα από άλλη εφαρμογή χρησιμοποιώντας το Ubidots API.

Συνιστάται: