Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Σε αυτό το απλό έργο θα χρησιμοποιήσουμε έναν αισθητήρα κίνησης για να ανιχνεύσουμε εάν ένα αντικείμενο περνά μπροστά από το Raspberry Pi. Στη συνέχεια, θα μετρήσουμε πόσες φορές συμβαίνει αυτό και θα στείλουμε αυτήν την τιμή στο Ubidots.
Οι πάγκοι είναι συνήθως ακριβές συσκευές που χρησιμοποιούνται στη λιανική βιομηχανία για να καταλάβουν πώς συμπεριφέρονται οι αγοραστές. Χάρη στο Raspberry Pi και το Ubidots, είμαστε σε θέση να φτιάξουμε έναν λειτουργικό πάγκο ανθρώπων σε λίγες ώρες και με λίγα δολάρια!
Μόλις στείλουμε τα άτομα που μετρούν δεδομένα στο Ubidots, μπορούμε να δημιουργήσουμε ωραία γραφήματα για ανάλυση, καθώς και ειδοποιήσεις SMS/Email.
Βήμα 1: Αποκτήστε τα σωστά υλικά
Για να ολοκληρώσετε αυτό το έργο θα χρειαστείτε:
- Ένα Raspberry Pi Model B
- A PIR Sensor by Parallax
- Ένα συμβατό Raspberry Pi USB Dongle USB
- Μια μπαταρία USB για να τροφοδοτήσει το Raspberry Pi (αυτό είναι προαιρετικό σε περίπτωση που θέλετε να αφήσετε το Pi εντελώς ασύρματο)
- Τρία σύρματα γυναικών-γυναικών
- Λογαριασμός 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.