Σύστημα απορριμμάτων: 7 βήματα
Σύστημα απορριμμάτων: 7 βήματα
Anonim
Σύστημα απορριμμάτων
Σύστημα απορριμμάτων

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

Προμήθειες

Αισθητήρας υπερήχων (HC-SR04)

Raspberry Pi (χρησιμοποιήσαμε το Pi 4 Model B)

Breadboard

Καλώδια βραχυκύκλωσης

Ζεύγος αντιστάσεων (3 x 1k ohm)

Βήμα 1: Σύνδεση του HC-SR04

Σύνδεση HC-SR04
Σύνδεση HC-SR04

Δεδομένου ότι χρησιμοποιούμε το Raspberry Pi, πρέπει να χρησιμοποιήσουμε ένα διαχωριστή τάσης για να ρυθμίσουμε την τάση που εισέρχεται στους ακροδέκτες GPIO του Pi, καθώς επιτρέπουν μόνο 3,3v. Το HC-SR04 χρησιμοποιεί 5V αλλά πρέπει να μειωθεί στα 3.3V όταν το συνδέετε στο Pi. Συνδέστε τους πείρους 5V και γείωσης αντίστοιχα και, σύμφωνα με το πρόγραμμά σας, συνδέστε τους πείρους ηχώ και σκανδάλης στις ακίδες που σέβονται. Στο πρόγραμμά μας χρησιμοποιήσαμε τις ακίδες 23 και 24 για ηχώ και σκανδάλη αντίστοιχα.

Βήμα 2: Mosquitto και Paho MQTT

Πριν ξεκινήσουμε τον προγραμματισμό στην Python για να δουλέψει ο αισθητήρας υπερήχων με το Pi, θα πρέπει να εγκαταστήσουμε αυτές τις εφαρμογές για να επικοινωνήσουμε με τον αισθητήρα υπερήχων με το λογισμικό προγραμματισμού μας Node-RED. Το Mosquitto είναι ένας μεσίτης MQTT που μπορείτε να χρησιμοποιήσετε στο Pi ενώ το Paho MQTT είναι η βιβλιοθήκη που σας επιτρέπει να κωδικοποιήσετε σε Python για να επικοινωνήσει ο αισθητήρας με τον μεσίτη MQTT. Για να εγκαταστήσετε και τα δύο, πληκτρολογήστε αυτές τις εντολές στο τερματικό Pi σας

sudo apt ενημέρωση

sudo apt install -y mosquitto mosquitto -clients

sudo apt-get install python3-pip

sudo pip3 εγκατάσταση paho-mqtt

Βήμα 3: Πρόγραμμα Python για υπερηχητικό αισθητήρα

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

Βήμα 4: Κόμβος-ΚΟΚΚΙΝΟ

Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ
Κόμβος-ΚΟΚΚΙΝΟ

Ορισμένοι κόμβοι δεν είναι προεγκατεστημένοι στο πρόγραμμα, οπότε ίσως χρειαστεί να το εγκαταστήσετε από τις παλέτες. Αυτά που πρέπει να εγκαταστήσετε είναι το node-red-dashboard και το node-red-node-sqlite.

Εδώ αρχίζουμε να χρησιμοποιούμε το λογισμικό προγραμματισμού και τον αισθητήρα. Ο πρώτος κόμβος που θα χρειαστείτε είναι ο κόμβος MQTT-in και μας επιτρέπει να χρησιμοποιήσουμε τον αισθητήρα μας που εκτελεί το πρόγραμμα από πάνω για να στείλουμε δεδομένα σε αυτό το λογισμικό. Ο κόμβος εύρους που χρησιμοποιήσαμε αναστρέφει τις τιμές που έχουμε (δηλ. 5cm είναι γεμάτο από το πρόγραμμα, οπότε το αναποδογυρίζουμε στο 100%). Ακολουθώντας τον κόμβο εύρους έχουμε 2 κόμβους συνάρτησης, έναν για να εμφανίσει το μήνυμα στον πίνακα ελέγχου μας και έναν για να δείξει μια εικόνα ότι τα σκουπίδια είναι γεμάτα. Επισυνάπτεται το πρόγραμμα για τους κόμβους συνάρτησης.

Εάν είναι δυνατόν, αυτή η ροή θα μπορούσε να χρησιμοποιηθεί για πολλαπλούς αισθητήρες υπερήχων. Για το έργο μας όμως έπρεπε να κάνουμε δεδομένα προσομοίωσης καθώς δεν μπορέσαμε να πάρουμε στα χέρια μας περισσότερους αισθητήρες. Ο τρόπος που το κάναμε αυτό είναι πολύ παρόμοιος, αλλά έχουμε κουμπιά στα οποία μπορεί να κάνει κλικ ο χρήστης για να προσθέσει τυχαία το 1-10 τοις εκατό των σκουπιδιών σε καθένα από τα σκουπίδια. Χρησιμοποιήσαμε 2 κουμπιά, ένα για να προσθέσουμε σκουπίδια και ένα για να καθαρίσουμε. Ο μετρητής, τα μηνύματα και ο δείκτης εξακολουθούν να είναι ακριβώς οι ίδιοι με τον κωδικό που πρέπει να μετρήσετε και να μετρήσετε τα σκουπίδια είναι λίγο διαφορετικός όμως.

Βήμα 5: Καταγραφή δεδομένων

Καταγραφή δεδομένων
Καταγραφή δεδομένων
Καταγραφή δεδομένων
Καταγραφή δεδομένων
Καταγραφή δεδομένων
Καταγραφή δεδομένων

Αποφασίσαμε ότι θα ήταν καλή ιδέα να καταγράψουμε πόσο γεμάτα είναι τα σκουπίδια όταν το φορτηγό έρθει να αδειάσει τα σκουπίδια. Με τη βοήθεια του κόμβου sqlite είμαστε σε θέση να διαβάζουμε και να γράφουμε δεδομένα τα οποία επίσης τα αποθηκεύουν στο Pi. Θα χρειαστεί να εγκαταστήσετε αυτόν τον κόμβο όπως έχω ξαναπεί.

Τα βήματα για τη δημιουργία και την καταγραφή δεδομένων ακολουθούν τα εξής:

1. Δημιουργήστε τη βάση δεδομένων

2. Καταγράψτε τα δεδομένα

3. Τραβήξτε τα δεδομένα για εμφάνιση στον πίνακα ελέγχου μας

4. Διαγράψτε και διαγράψτε τα δεδομένα

Ο τρόπος με τον οποίο λειτουργεί το SQL είναι ότι πρέπει να δημιουργήσετε την εκτέλεση του θέματος που είναι CREATE TABLE, INSERT INTO, SELECT FROM και DELETE FROM. Χρησιμοποιώντας κόμβους χρονικής σήμανσης μπορούμε να εκτελέσουμε θέματα στον κόμβο sqlite που κάνει καθεμία από αυτές τις λειτουργίες (δημιουργία, εισαγωγή, επιλογή και διαγραφή). Χρειάζεται μόνο να δημιουργήσουμε τη βάση δεδομένων μία φορά και μόλις ολοκληρωθεί μπορούμε να καταγράψουμε δεδομένα σε αυτήν. Μόλις δημιουργηθεί η βάση δεδομένων, μπορούμε να καταγράψουμε δεδομένα και χρησιμοποιήσαμε ξανά την είσοδο του χρήστη για να συνδεθούμε όταν έρθει το φορτηγό. Το κάναμε έτσι ώστε να μην μπορείτε να καταγράψετε δεδομένα μέχρι να επιτραπεί στο φορτηγό να έρθει, το οποίο είναι 5 σκουπίδια με χωρητικότητα 80% (θεωρείται πλήρες). Χρησιμοποιήσαμε επίσης ξανά τον κόμβο εύρους για να κλιμακώσουμε το 500 πίσω στο 0-100%. Έχουμε τότε την επιλογή να διαγράψουμε όλα τα δεδομένα από τη βάση δεδομένων, αν θέλουμε. Ο κόμβος πίνακα UI είναι ένας κόμβος που μας επιτρέπει να βλέπουμε τον πίνακα με έναν όμορφα μορφοποιημένο τρόπο στον πίνακα ελέγχου μας.

Βήμα 6: Διάταξη

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

Βήμα 7: Συμπέρασμα

Με την ολοκλήρωση αυτού του έργου, υπάρχουν τομείς όπου μπορούμε να δούμε το πρόγραμμα να μεγαλώνει περαιτέρω. Ποτέ δεν βρήκα τρόπο να κάνω την καταγραφή αυτόματα, καθώς ο μόνος τρόπος που μπορούσαμε να κάνουμε ήταν να καταγραφεί σε ένα διάστημα και δεν θα χρειαζόμασταν κανέναν επαναλαμβανόμενο αριθμό εάν το απορριμματοφόρο ερχόταν μία φορά. Νομίζω ότι αυτό οφείλεται εν μέρει στο πώς αποφασίσαμε να το εξαρτήσουμε σε μεγάλο βαθμό από τους κόμβους συναρτήσεων και τον προγραμματισμό, καθώς είμαστε πιο άνετα με αυτόν τον προγραμματισμό. Μετά την εξερεύνηση αφού τελειώσαμε, ήταν σαφές ότι υπάρχουν κόμβοι για όλα και θα μπορούσε να έχει κάνει τη ζωή πολύ πιο εύκολη αν βρούμε τη λειτουργία των κόμβων διακόπτη και rbe νωρίτερα. Υπήρχε επίσης ένας κόμβος για αισθητήρες υπερήχων, τον οποίο δεν μπορέσαμε να δουλέψουμε. Θα είχε διευκολύνει τα πράγματα καθώς δεν θα υπήρχε ανάγκη για MQTT ή πρόγραμμα Python, καθώς είναι απλώς ένας κόμβος με τη σκανδάλη και τις ακίδες ηχώ. Αποφασίσαμε να το δουλέψουμε κάνοντας το πρόγραμμα Python όπως είδατε παραπάνω. Μια τεράστια συμβουλή για όποιον θέλει να βουτήξει στο Node-RED είναι ότι θα πρέπει να χρησιμοποιήσετε πολλούς κόμβους εντοπισμού σφαλμάτων για να καταλάβετε εάν κάθε ροή λειτουργεί και βγάζει αυτό που θέλετε/χρειάζεστε.

Συνιστάται: