- Απαιτούμενα στοιχεία:
- Αισθητήρας υπερήχων HC-SR04:
- Ενότητα ESP8266 Wi-Fi:
- Διάγραμμα κυκλώματος και επεξήγηση:
- Επεξήγηση κώδικα:
- "; if (απόσταση <5) {webpage + =" Ο κάδος απορριμμάτων είναι πλήρης ";} άλλο {webpage + =" Ο κάδος απορριμμάτων είναι άδειος ";} ιστοσελίδα + ="
- Δοκιμές και αποτελέσματα του έργου:
Σε αυτό το DIY, πρόκειται να φτιάξουμε ένα σύστημα παρακολούθησης απορριμμάτων / απορριμμάτων με βάση το IOT, το οποίο θα μας πει ότι εάν ο κάδος απορριμμάτων είναι άδειος ή γεμάτος μέσω του διακομιστή ιστού και μπορείτε να γνωρίζετε την κατάσταση του «Κάδου απορριμμάτων» ή του «Dumpsters» από οπουδήποτε στον κόσμο μέσω του Διαδικτύου. Θα είναι πολύ χρήσιμο και μπορεί να εγκατασταθεί στα Κάδο απορριμμάτων σε δημόσιους χώρους καθώς και στο σπίτι.
Σε αυτό το έργο IOT, ένας υπερηχητικός αισθητήρας χρησιμοποιείται για την ανίχνευση εάν το κάδο απορριμμάτων είναι γεμάτο με σκουπίδια ή όχι. Εδώ ο αισθητήρας υπερήχων είναι εγκατεστημένος στην κορυφή του κάδου απορριμμάτων και θα μετρήσει την απόσταση των απορριμμάτων από την κορυφή του κάδου απορριμμάτων και μπορούμε να ορίσουμε μια τιμή κατωφλίου ανάλογα με το μέγεθος του κάδου απορριμμάτων. Εάν η απόσταση θα είναι μικρότερη από αυτήν την τιμή κατωφλίου, αυτό σημαίνει ότι ο Κάδος απορριμμάτων είναι γεμάτος σκουπίδια και θα εκτυπώσουμε το μήνυμα "Το καλάθι είναι γεμάτο" στην ιστοσελίδα και εάν η απόσταση θα είναι μεγαλύτερη από αυτήν την τιμή κατωφλίου, τότε θα εκτυπώσουμε το μήνυμα "Το καλάθι είναι άδειο". Εδώ έχουμε ορίσει την τιμή κατωφλίου 5cm στον κωδικό προγράμματος. Θα χρησιμοποιήσουμε τη μονάδα ESP8266 Wi-Fiγια τη σύνδεση του Arduino με τον διακομιστή ιστού. Εδώ χρησιμοποιήσαμε το Local webserver για να δείξουμε τη λειτουργία αυτού του συστήματος παρακολούθησης απορριμμάτων.
Απαιτούμενα στοιχεία:
- Arduino Uno (μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο)
- Μονάδα Wi-Fi ESP8266
- Αισθητήρας υπερήχων HC-SR04
- 1Κ Αντιστάσεις
- Ψωμί
- Σύνδεση καλωδίων
Αισθητήρας υπερήχων HC-SR04:
Ο αισθητήρας υπερήχων χρησιμοποιείται για τη μέτρηση της απόστασης με υψηλή ακρίβεια και σταθερές μετρήσεις. Μπορεί να μετρήσει απόσταση από 2cm έως 400cm ή από 1 ίντσα έως 13 πόδια. Εκπέμπει κύμα υπερήχων στη συχνότητα των 40KHz στον αέρα και εάν το αντικείμενο θα έρθει στο δρόμο του τότε θα αναπηδήσει πίσω στον αισθητήρα. Χρησιμοποιώντας το χρόνο που χρειάζεται για να χτυπήσει το αντικείμενο και να επιστρέψει, μπορείτε να υπολογίσετε την απόσταση.
Ο αισθητήρας υπερήχων έχει τέσσερις ακίδες. Δύο είναι VCC και GND που θα συνδεθούν με το 5V και το GND του Arduino, ενώ οι άλλες δύο ακίδες είναι οι ακροδέκτες Trig και Echo που θα συνδεθούν με οποιεσδήποτε ψηφιακές ακίδες του Arduino. Ο ακροδέκτης trig θα στείλει το σήμα και ο ακροδέκτης Echo θα χρησιμοποιηθεί για τη λήψη του σήματος. Για να δημιουργήσετε ένα σήμα υπερήχων, θα πρέπει να αυξήσετε τον ακροδέκτη Trig για περίπου 10us που θα στείλει μια ηχητική έκρηξη 8 κύκλων με την ταχύτητα του ήχου και αφού χτυπήσει το αντικείμενο, θα ληφθεί από τον πείρο Echo.
Περαιτέρω ελέγξτε παρακάτω έργα για να κατανοήσετε σωστά τη λειτουργία του αισθητήρα υπερήχων και να μετρήσετε την απόσταση οποιουδήποτε αντικειμένου που το χρησιμοποιεί:
- Μέτρηση απόστασης βάσει Arduino με χρήση αισθητήρα υπερήχων
- Μέτρηση απόστασης με χρήση μικροελεγκτή HC-SR04 και AVR
Ενότητα ESP8266 Wi-Fi:
Το ESP8266 είναι μια λειτουργική μονάδα Wi-Fi που θα παρέχει στα έργα σας πρόσβαση σε Wi-Fi ή internet. Είναι μια πολύ φθηνή συσκευή, αλλά θα κάνει τα έργα σας πολύ ισχυρά. Μπορεί να επικοινωνήσει με οποιονδήποτε μικροελεγκτή και να κάνει τα έργα ασύρματα. Είναι στη λίστα με τις περισσότερες κορυφαίες συσκευές στην πλατφόρμα IOT. Τρέχει σε 3.3V και αν το δώσετε 5V τότε θα πάθει ζημιά.
Το ESP8266 έχει 8 ακίδες. το VCC και το CH-PD θα συνδεθούν στο 3.3V για να ενεργοποιηθεί το wifi. Οι ακροδέκτες TX και RX θα είναι υπεύθυνοι για την επικοινωνία του ESP8266 με το Arduino. Ο πείρος RX λειτουργεί σε 3.3V, οπότε θα πρέπει να φτιάξετε ένα διαχωριστικό τάσης για αυτό όπως κάναμε στο έργο μας.
Διάγραμμα κυκλώματος και επεξήγηση:
Πρώτα απ 'όλα θα συνδέσουμε το ESP8266 με το Arduino. Το ESP8266 λειτουργεί με 3.3V και αν το δώσετε 5V από το Arduino τότε δεν θα λειτουργήσει σωστά και μπορεί να προκληθεί ζημιά. Συνδέστε το VCC και το CH_PD στον ακροδέκτη 3.3V του Arduino. Ο ακροδέκτης RX του ESP8266 λειτουργεί σε 3.3V και δεν θα επικοινωνεί με το Arduino όταν θα το συνδέσουμε απευθείας στο Arduino. Έτσι, θα πρέπει να φτιάξουμε ένα διαχωριστικό τάσης για αυτό. Τρεις αντιστάσεις 1k συνδεδεμένες σε σειρά θα κάνουν τη δουλειά για εμάς. Συνδέστε το RX στον ακροδέκτη 11 του Arduino μέσω των αντιστάσεων όπως φαίνεται στο παρακάτω σχήμα και επίσης το TX του Arduino στον ακροδέκτη 10 του Arduino.
Τώρα ήρθε η ώρα να συνδέσετε τον αισθητήρα υπερήχων HC-SR04 με το Arduino. Οι συνδέσεις του αισθητήρα υπερήχων με το Arduino είναι πολύ απλές. Συνδέστε το VCC και τη γείωση του αισθητήρα υπερήχων στο 5V και τη γείωση του Arduino. Στη συνέχεια, συνδέστε τον ακροδέκτη TRIG και ECHO του αισθητήρα υπερήχων στους ακροδέκτες 8 και 9 του Arduino αντίστοιχα.
Επεξήγηση κώδικα:
Πριν ανεβάσετε τον κωδικό, βεβαιωθείτε ότι είστε συνδεδεμένοι στο Wi-Fi της συσκευής ESP8266. Μπορείτε να ελέγξετε τον πλήρη κώδικα στην ενότητα Κώδικας παρακάτω, ο κώδικας έχει εξηγηθεί καλά από τα σχόλια, περαιτέρω εξηγήσαμε επίσης μερικές σημαντικές λειτουργίες παρακάτω.
Το Arduino θα διαβάσει πρώτα τον αισθητήρα υπερήχων. Θα στείλει ένα υπερηχητικό σήμα με την ταχύτητα του ήχου, όταν θα αυξήσουμε την ακίδα TRIG για 10us. Το σήμα θα επιστρέψει αφού χτυπήσει το αντικείμενο και θα αποθηκεύσουμε τη διάρκεια του ταξιδιού στη μεταβλητή που ονομάζεται διάρκεια . Στη συνέχεια, θα υπολογίσουμε την απόσταση του αντικειμένου (σκουπίδια στην περίπτωσή μας) εφαρμόζοντας έναν τύπο και θα το αποθηκεύσουμε στη μεταβλητή που ονομάζεται απόσταση .
digitalWrite (trigPin, LOW); καθυστέρηση Μικροδευτερόλεπτα (2); digitalWrite (trigPin, HIGH); καθυστέρηση Μικροδευτερόλεπτα (10); digitalWrite (trigPin, LOW); διάρκεια = pulseIn (echoPin, HIGH); απόσταση = διάρκεια * 0,034 / 2;
Για την εκτύπωση της εξόδου στην ιστοσελίδα στο πρόγραμμα περιήγησης ιστού, θα πρέπει να χρησιμοποιήσουμε προγραμματισμό HTML. Έτσι, έχουμε δημιουργήσει μια συμβολοσειρά που ονομάζεται ιστοσελίδα και αποθηκεύσαμε την έξοδο σε αυτήν. Για να πούμε εάν ο κάδος απορριμμάτων είναι άδειος ή όχι, έχουμε εφαρμόσει μια συνθήκη εκεί. Εάν η απόσταση θα είναι μικρότερη από 5 εκατοστά, τότε θα εμφανιστεί η ένδειξη "Το καλάθι είναι γεμάτο" στην ιστοσελίδα και εάν η απόσταση θα είναι μεγαλύτερη από 5 εκατοστά, θα εμφανιστεί το μήνυμα "Το καλάθι είναι άδειο" στην ιστοσελίδα.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {καθυστέρηση (1000); int connectionId = esp8266.read () - 48; Ιστοσελίδα συμβολοσειράς = "
Σύστημα παρακολούθησης απορριμμάτων IOT
"; ιστοσελίδα + =""; if (απόσταση <5) {webpage + =" Ο κάδος απορριμμάτων είναι πλήρης ";} άλλο {webpage + =" Ο κάδος απορριμμάτων είναι άδειος ";} ιστοσελίδα + ="
";Ο ακόλουθος κωδικός θα στείλει και θα εμφανίσει τα δεδομένα στην ιστοσελίδα. Τα δεδομένα, που αποθηκεύσαμε σε συμβολοσειρά με το όνομα «ιστοσελίδα», θα αποθηκευτούν σε συμβολοσειρά με το όνομα «εντολή» . Στη συνέχεια, το ESP8266 θα διαβάσει τον χαρακτήρα έναν προς έναν από την «εντολή» και θα τον εκτυπώσει στην ιστοσελίδα.
String sendData (εντολή String, const int timeout, boolean debug) {String response = ""; esp8266.print (εντολή); μεγάλο χρονικό διάστημα = χιλιοστά (); while ((time + timeout)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); απόκριση + = c; }} if (εντοπισμός σφαλμάτων) {Serial.print (απόκριση); } απάντηση επιστροφής; }
Δοκιμές και αποτελέσματα του έργου:
Αφού ανεβάσετε τον κωδικό, ανοίξτε το Serial Monitor και θα σας δείξει μια διεύθυνση IP όπως φαίνεται παρακάτω.
Πληκτρολογήστε αυτήν τη διεύθυνση IP στο πρόγραμμα περιήγησής σας, θα σας δείξει την έξοδο όπως φαίνεται παρακάτω. Θα πρέπει να ανανεώσετε ξανά τη σελίδα εάν θέλετε να δείτε ξανά ότι ο κάδος απορριμμάτων είναι άδειος ή όχι.
Έτσι λοιπόν, πώς λειτουργεί αυτό το Σύστημα Παρακολούθησης Σκουπιδιών, αυτό το έργο μπορεί να βελτιωθεί περαιτέρω προσθέτοντας λίγες επιπλέον λειτουργίες σε αυτό, όπως μπορούμε να ορίσουμε ένα ακόμη μήνυμα όταν ο Κάδος απορριμμάτων γεμίσει κατά το ήμισυ ή μπορούμε να ενεργοποιήσουμε ένα Email / SMS για να ειδοποιήσουμε τον χρήστη όταν Κάδος απορριμμάτων Το καλάθι είναι γεμάτο.