- Απαιτούμενα στοιχεία
- Σύνδεσμος API για τη λήψη των δεδομένων Corona Live
- Διάγραμμα κυκλώματος
- Προγραμματισμός ESP32 για Covid19 Tracker
- Δοκιμή του αυτόματου απολυμαντικού χεριών με το Covid19 Tracker
Ο ιός Corona (Covid19) προκαλεί όλεθρο στον κόσμο. Σχεδόν κάθε χώρα πάσχει από τον ιό Corona. Ο ΠΟΥ έχει ήδη ανακοινώσει μια πανδημική ασθένεια και πολλές πόλεις βρίσκονται σε κατάσταση κλειδώματος, οι άνθρωποι δεν μπορούν να βγουν από τα σπίτια τους και χιλιάδες έχασαν τη ζωή τους. Πολλοί ιστότοποι παρέχουν ζωντανές ενημερώσεις των περιπτώσεων κοραναϊών όπως το Microsoft Tracker, το Esri's Covid19 Tracker κ.λπ.
Σε αυτό το έργο, θα φτιάξουμε έναν αυτόματο απολυμαντικό χειριστή με μια οθόνη LCD που θα δείχνει επίσης τη ζωντανή μέτρηση των περιπτώσεων Coronavirus. Αυτό το έργο θα χρησιμοποιεί ESP32, Υπερηχητικό Αισθητήρα, Μονάδα LCD 16x2, Αντλία νερού και Απολυμαντικό Χεριών. Χρησιμοποιούμε την Εξερεύνηση API της Esri για να λάβουμε τα ζωντανά δεδομένα των μολυσμένων ατόμων από το Covid19. Ένας αισθητήρας υπερήχων χρησιμοποιείται για τον έλεγχο της παρουσίας χεριών κάτω από την έξοδο του μηχανήματος απολύμανσης. Θα υπολογίζει συνεχώς την απόσταση μεταξύ της εξόδου απολυμαντικού και της ίδιας και λέει στο ESP να ενεργοποιεί την αντλία όποτε η απόσταση είναι μικρότερη από 15 εκατοστά για να ωθήσει το απολυμαντικό έξω.
Το ESP32 χρησιμοποιείται ως κύριος ελεγκτής, είναι μια μονάδα Wi-Fi που μπορεί εύκολα να συνδεθεί στο Διαδίκτυο. Προηγουμένως το χρησιμοποιούσαμε για την κατασκευή πολλών έργων με βάση το IoT χρησιμοποιώντας το ESP32
Απαιτούμενα στοιχεία
- Ενότητα ESP32 Dev
- Αισθητήρας υπερήχων
- Οθόνη LCD 16 * 2
- Μονάδα ρελέ
- Υποβρύχια αντλία Mini DC
- Απολυμαντικό χεριών
Σύνδεσμος API για τη λήψη των δεδομένων Corona Live
Εδώ πρέπει να λάβουμε τα δεδομένα από το Διαδίκτυο και στη συνέχεια να τα στείλουμε στο ESP32 για να τα εμφανίσουμε σε οθόνη LCD 16x2. Για αυτό, καλείται αίτημα λήψης HTTP για την ανάγνωση του αρχείου JSON από το Διαδίκτυο. Εδώ χρησιμοποιούμε το API που παρέχεται από το Coronavirus Disease GIS Hub. Μπορείτε εύκολα να μεταγλωττίσετε τη σωστή διεύθυνση URL ερωτήματος για να λάβετε το σύνολο των επιβεβαιωμένων και ανακτημένων περιπτώσεων για την Ινδία και επίσης να αλλάξετε τη χώρα / περιοχή εάν θέλετε να το χρησιμοποιήσετε για διαφορετική χώρα.
Τώρα κάντε κλικ στο "Δοκιμάστε τώρα" ή επικολλήστε τη διεύθυνση URL του ερωτήματος σε ένα νέο πρόγραμμα περιήγησης, η έξοδος αυτού του ερωτήματος θα μοιάζει με αυτήν:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," πεδία ":," χαρακτηριστικά ":}
Αφού λάβετε τα δεδομένα JSON, δημιουργήστε τώρα τον κωδικό για να διαβάσετε τα δεδομένα JSON και να τα διατυπώσετε σύμφωνα με τις ανάγκες μας. Για αυτό, μεταβείτε στον Βοηθό ArduinoJson και επικολλήστε τα δεδομένα JSON στην ενότητα Εισαγωγή.
Τώρα μετακινηθείτε προς τα κάτω στο πρόγραμμα ανάλυσης και αντιγράψτε την ενότητα κώδικα που είναι χρήσιμη για εσάς. Αντιγράψαμε τις παρακάτω μεταβλητές καθώς χρειαζόμουν μόνο τις επιβεβαιωμένες και ανακτημένες περιπτώσεις στην Ινδία.
Διάγραμμα κυκλώματος
Το πλήρες διάγραμμα κυκλώματος για αυτό το Covid19 Tracker & αυτόματο μηχάνημα διανομής απολυμαντικών χεριών δίνεται παρακάτω
Η αντλία νερού συνδέεται στο ESP32 μέσω μιας μονάδας ρελέ. Οι ακίδες Vcc και GND του ρελέ συνδέονται με τους ακροδέκτες Vin και GND του ESP32 ενώ ο πείρος εισόδου του ρελέ συνδέεται με τον ακροδέκτη D19 του ESP32. Οι ακροδέκτες Trig και Echo του αισθητήρα υπερήχων συνδέονται με τους ακροδέκτες D5 και D18 του Arduino.
Πλήρεις συνδέσεις δίνονται στον παρακάτω πίνακα.
οθόνη υγρού κρυστάλλου | ESP32 |
VSS | GND |
VDD | 5V |
ΦΟ | Ποτενσιόμετρο |
RS | Δ22 |
RW | GND |
μι | Δ4 |
Δ4 | Δ15 |
Δ5 | Δ13 |
Δ6 | Δ26 |
Δ7 | Δ21 |
ΕΝΑ | 5V |
κ | GND |
Αισθητήρας υπερήχων | ESP32 |
Vcc | Βιν |
GND | GND |
Κομψός | Δ5 |
ΗΧΩ | Δ18 |
Το υλικό για αυτό το Motion Sensor Hand Sanitizer Dispenser θα μοιάζει με αυτό
Προγραμματισμός ESP32 για Covid19 Tracker
Πλήρης κωδικός για το Auto Hand Sanitizer και το CORONA19 Tracker μπορείτε να βρείτε στο τέλος της σελίδας. Εδώ εξηγούνται σημαντικά μέρη του προγράμματος.
Ξεκινήστε τον κωδικό συμπεριλαμβάνοντας όλα τα απαιτούμενα αρχεία βιβλιοθήκης. Η βιβλιοθήκη HTTPClient χρησιμοποιείται για τη λήψη δεδομένων από τον διακομιστή HTTP. Η βιβλιοθήκη ArduinoJson χρησιμοποιείται για τη φράση των συστοιχιών δεδομένων. Εδώ η βιβλιοθήκη ArduinoJson χρησιμοποιείται για το φιλτράρισμα των επιβεβαιωμένων περιπτώσεων και την ανάκτηση από τη συστοιχία δεδομένων που λαμβάνουμε από τον διακομιστή. Η βιβλιοθήκη LiquidCrystal χρησιμοποιείται για την οθόνη LCD Module.
#περιλαμβάνω
Για να πάρει τα δεδομένα από το διακομιστή, το NodeMCU ESP32 πρέπει να συνδεθεί με το Διαδίκτυο. Για αυτό, εισαγάγετε το SSID Wi-Fi και τον κωδικό πρόσβασής σας στις παρακάτω γραμμές.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Στη συνέχεια, ορίστε τις ακίδες όπου έχετε συνδέσει τη μονάδα LCD, τον αισθητήρα υπερήχων και τη μονάδα ρελέ.
const int rs = 22, en = 4, d4 = 15, d5 = 13, d6 = 26, d7 = 21; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); const int trigPin = 5; const int echoPin = 18; const int pump = 19;
Τώρα εισάγουμε το σύνδεσμο API που δημιουργήθηκε νωρίτερα. Χρησιμοποιώντας αυτόν τον σύνδεσμο, θα λάβουμε τις συνολικές επιβεβαιωμένες περιπτώσεις και τις ανακτημένες περιπτώσεις στην Ινδία. Μπορείτε να αλλάξετε το όνομα της χώρας στο URL ανάλογα με εσάς.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false, Ανακτήθηκε ";
Τώρα μέσα στην κενή ρύθμιση () , ορίστε τον ακροδέκτη Trig και Echo του αισθητήρα υπερήχων ως ακίδες εισόδου και τον πείρο ρελέ ως έξοδο.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (αντλία, ΕΞΟΔΟΣ);
Για να μάθετε περισσότερα σχετικά με τον τρόπο λειτουργίας του αισθητήρα υπερήχων, ελέγξτε τη διασύνδεσή του με το Arduino όπου έχουμε εξηγήσει τη λειτουργία του πείρου TRIG και ECHO μαζί με τον τρόπο με τον οποίο χρησιμοποιείται για τον υπολογισμό της απόστασης μεταξύ οποιουδήποτε αντικειμένου. Επίσης, ελέγξτε άλλα έργα που βασίζονται σε υπερήχους.
Μετά από αυτό, ελέγξτε αν το ESP είναι συνδεδεμένο με το Wi-Fi, αν όχι θα περιμένει να συνδεθεί το ESP εκτυπώνοντας το “…..” στη σειριακή οθόνη.
WiFi.begin (ssid, pass); ενώ (WiFi.status ()! = WL_CONNECTED) {καθυστέρηση (500); Serial.print ("."); // εκτύπωση… έως ότου δεν συνδεθεί} Serial.println ("WiFi συνδεδεμένο");
Μέσα στη λειτουργία void ultra () θα υπολογίζουμε συνεχώς την απόσταση χρησιμοποιώντας έναν αισθητήρα υπερήχων και εάν η απόσταση είναι μικρότερη ή ίση με 15 cm, τότε θα ανάψει η αντλία για 2 δευτερόλεπτα για να ωθήσει το απολυμαντικό έξω μέσω του σωλήνα. Προφανώς όταν κάποιος βάζει τα χέρια του κάτω από το σωλήνα εξόδου, η απόσταση θα μειωθεί και θα ενεργοποιήσει την αντλία να ανάψει.
void ultra () {digitalWrite (trigPin, LOW). καθυστέρηση Μικροδευτερόλεπτα (2); digitalWrite (trigPin, HIGH); καθυστέρηση Μικροδευτερόλεπτα (10); digitalWrite (trigPin, LOW); διάρκεια = pulseIn (echoPin, HIGH); απόσταση = διάρκεια * 0,0340 / 2; Serial.println ("Απόσταση"); Serial.println (απόσταση); if (απόσταση <= 15) {Serial.print ("Άνοιγμα αντλίας"); digitalWrite (αντλία, ΥΨΗΛΟ); καθυστέρηση (2000); digitalWrite (αντλία, ΧΑΜΗΛΗ); ESP. Επανεκκίνηση (); }}
Τώρα μέσα στη συνάρτηση void loop () , ελέγξτε αν το αρχείο JSON λαμβάνεται από το ESP32 διαβάζοντάς το και εκτυπώνοντας δεδομένα JSON στη σειριακή οθόνη χρησιμοποιώντας τις ακόλουθες γραμμές
int httpCode = https.GET (); if (httpCode> 0) {// Ελέγξτε για τον κωδικό επιστροφής String payload = https.getString ();
Μετά από αυτό, χρησιμοποιήστε το πρόγραμμα διατύπωσης που δημιουργήθηκε από τον Βοηθό ArduinoJson. Αυτό το πρόγραμμα διατύπωσης θα μας δώσει τις συνολικές επιβεβαιωμένες και ανακτημένες περιπτώσεις στην Ινδία.
Πεδία JsonArray = doc; JsonObject χαρακτηριστικά_0_attributes = doc; μακρά χαρακτηριστικά_0_attributes_Last_Update = features_0_attributes; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Δοκιμή του αυτόματου απολυμαντικού χεριών με το Covid19 Tracker
Τελικά, ο διανομέας απολυμαντικών χεριών που λειτουργεί με μπαταρία είναι έτοιμος να δοκιμάσει. Απλώς συνδέστε το υλικό σύμφωνα με το διάγραμμα κυκλώματος και ανεβάστε το πρόγραμμα στο ESP32, στην αρχή θα πρέπει να δείτε το μήνυμα "Covid19 Tracker" & "Hand Sanitizer" στην οθόνη LCD και στη συνέχεια μετά από λίγα δευτερόλεπτα θα εμφανίσει επιβεβαιωμένες θήκες και ανακτώμενες θήκες στο Οθόνη LCD όπως φαίνεται παρακάτω.
Παρόμοια με αυτό, μπορείτε να λάβετε αυτά τα δεδομένα για οποιαδήποτε χώρα κάνοντας κάποιες αλλαγές στον σύνδεσμο API. Στο τέλος της σελίδας δίνονται ένα πλήρες βίντεο και κωδικός εργασίας.