Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Αποφασίσαμε να προσπαθήσουμε να βρούμε έναν τρόπο για να παρακολουθήσουμε είτε το σκουπίδι της κοινότητας μιας γειτονιάς είτε έναν αισθητήρα σε κάθε σκουπίδι στη γειτονιά για να κάνουμε πιο αποτελεσματική τη διάθεση απορριμμάτων. Πιστεύαμε ότι αν ένα φορτηγό έρχεται κάθε δύο εβδομάδες για μια συλλογή, τι θα γινόταν αν εγώ ή ο γείτονάς μου καταλήγαμε να πετάξουμε λίγο. Δεν θα ήταν αναποτελεσματικό να στείλετε ένα φορτηγό όπου η μισή γειτονιά δεν έστειλε πλήρεις κάδους απορριμμάτων; Θα ήταν υπέροχο αν ήταν δυνατόν να δούμε τα σκουπίδια του γείτονά μας να γεμίζουν και στη συνέχεια να χρησιμοποιούν τα σκουπίδια τους εάν τα δικά μου ήταν γεμάτα και τα δικά τους άδεια και το αντίστροφο. Αποφασίσαμε να χρησιμοποιήσουμε τον αισθητήρα υπερήχων, HC-SR04 μαζί με ένα βατόμουρο pi για να προσπαθήσουμε να αντιμετωπίσουμε αυτό το έργο.
Προμήθειες
Αισθητήρας υπερήχων (HC-SR04)
Raspberry Pi (χρησιμοποιήσαμε το Pi 4 Model B)
Breadboard
Καλώδια βραχυκύκλωσης
Ζεύγος αντιστάσεων (3 x 1k ohm)
Βήμα 1: Σύνδεση του 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 είναι ότι θα πρέπει να χρησιμοποιήσετε πολλούς κόμβους εντοπισμού σφαλμάτων για να καταλάβετε εάν κάθε ροή λειτουργεί και βγάζει αυτό που θέλετε/χρειάζεστε.
Συνιστάται:
Ελεγχόμενο σύστημα ανατροφοδότησης υγρασίας εδάφους Σύστημα άρδευσης στάγδην (ESP32 και Blynk): 5 βήματα
Soil Moisture Feedback Controlled Internet Connected Drip Irrigation System (ESP32 και Blynk): Ανησυχείτε για τον κήπο ή τα φυτά σας όταν πηγαίνετε σε μεγάλες διακοπές, ή ξεχάστε να ποτίζετε το φυτό σας καθημερινά. Λοιπόν, εδώ είναι η λύση Είναι ένα σύστημα ελέγχου της υγρασίας του εδάφους και παγκοσμίως συνδεδεμένο σύστημα άρδευσης στάγδην που ελέγχεται από το ESP32 στο μπροστινό μέρος του λογισμικού
Φορτιστής τηλεφώνου Li-ion από τον κάδο απορριμμάτων: 4 βήματα
Φορτιστής τηλεφώνου Li-ion από τον κάδο απορριμμάτων: Πρόκειται για μια γρήγορη και απλή τράπεζα τροφοδοσίας από αντικείμενα που οι περισσότεροι άνθρωποι έχουν ήδη στο σπίτι τους
Σύστημα ταξινόμησης χρωμάτων: Σύστημα βασισμένο σε Arduino με δύο ζώνες: 8 βήματα
Σύστημα ταξινόμησης χρωμάτων: Σύστημα βασισμένο σε Arduino με δύο ιμάντες: Η μεταφορά ή/και η συσκευασία προϊόντων και ειδών στον βιομηχανικό τομέα γίνεται χρησιμοποιώντας γραμμές που κατασκευάζονται με ιμάντες μεταφοράς. Αυτές οι ζώνες βοηθούν στη μετακίνηση του αντικειμένου από το ένα σημείο στο άλλο με συγκεκριμένη ταχύτητα. Ορισμένες εργασίες επεξεργασίας ή αναγνώρισης μπορεί να είναι
Ηλεκτρονικό σύστημα ασφαλείας με σύστημα ελέγχου ματιών Μέρος 2: 3 βήματα
Ηλεκτρονικό σύστημα ασφαλείας με σύστημα ελέγχου ματιών Μέρος 2: Γεια σας παιδιά! Αν δεν έχετε δει το Part-1 ΠΑΤΗΣΤΕ ΕΔΩ. Σε αυτό το έργο, θα δούμε μια απλή εφαρμογή Home Security που ονομάζεται Electronic Eye Controlled Security System χρησιμοποιώντας LDR ως κύριο αισθητήρα και μερικά άλλα εξαρτήματα. Το ηλεκτρονικό μάτι καλείται επίσης
Έξυπνο σύστημα διαχείρισης απορριμμάτων: 23 βήματα
Έξυπνο σύστημα διαχείρισης απορριμμάτων: ΕΙΣΑΓΩΓΗ. Τρέχον πρόβλημα ή ζήτημα που σχετίζεται με αυτό το έργο Το κύριο πρόβλημα με την τρέχουσα κοινωνία μας είναι η συσσώρευση στερεών αποβλήτων. Θα έχει μεγαλύτερο αντίκτυπο στην υγεία και το περιβάλλον της κοινωνίας μας. Η ανίχνευση, παρακολούθηση