Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Ο κόσμος που βρίσκεται σήμερα στην πανδημία του κορωνοϊού και όπως πολλές άλλες χώρες το κλείδωμά του και στην Ινδία, έτσι πήρα αυτή την ιδέα να δημιουργήσω μια οθόνη IoT που θα δώσει μια πραγματική ενημέρωση σε πραγματικό χρόνο των στατιστικών Corona της χώρας. Χρησιμοποιώ ένα API που παρέχει δεδομένα της Ινδίας, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε API με μικρή αλλαγή στον κώδικα.
Βήμα 1: Τα πράγματα που χρειάζονται
Εδώ είναι τα πράγματα που θα χρειαστείτε για να κάνετε την εμφάνιση του IoT:
- NodeMCU (ESP8266)
- 16x2 μονάδα LCD (I2C)
- Breadboard (προαιρετικό)
- Μερικά καλώδια/ άλτες
- καλώδιο USB
Βήμα 2: Συνδέσεις
Οι συνδέσεις είναι αρκετά εύκολες. Υπάρχουν μόνο 4 καλώδια για σύνδεση. Μπορείτε να χρησιμοποιήσετε ένα breadboard για να τοποθετήσετε το esp8266 σε αυτό και, στη συνέχεια, να συνδεθείτε με τη μονάδα LCD ή μπορείτε απλά να χρησιμοποιήσετε καλώδια απευθείας θηλυκού προς θηλυκού άλτη για σύνδεση.
Οι συνδέσεις είναι (ESP-> LCD):
- VIN -> VCC (για 5V)
- GND -> GND
- D2 -> SDA
- D1 -> SCL
Τώρα απλώς συνδέστε το esp8266 με το καλώδιο USB στον υπολογιστή, τώρα απλά πρέπει να ανεβάσουμε τον κώδικα.
Βήμα 3: Κωδικοποίηση
Τώρα, αυτό είναι το πιο σημαντικό μέρος. Πολλοί από εσάς θα έχετε ερωτήσεις στο μυαλό σας πώς λειτουργεί αυτό;
Έτσι, συνδέεται πρώτα με το wifi και στη συνέχεια συνδέεται με ένα API για τη συλλογή δεδομένων JSON, στη συνέχεια αποκωδικοποιεί τα δεδομένα JSON και αποθηκεύει αυτές τις τιμές σε μια μεταβλητή, στη συνέχεια η οθόνη LCD εμφανίζει τις τιμές και αυτό συνεχίζεται σε έναν βρόχο.
Το API που χρησιμοποίησα είναι το https://coronago.xyz/api/data.json, το οποίο λαμβάνει τα δεδομένα του από το https://www.covid19india.org/, παρέχει δεδομένα μόνο για την Ινδία, αλλά υπάρχουν πολλά API για άλλες χώρες, μπορείτε να χρησιμοποιήσετε οποιοδήποτε API, αλλά βεβαιωθείτε ότι είναι προσβάσιμο από το
Πρώτον, πρέπει να εγκαταστήσετε την υποστήριξη πλακέτας ESP8266 για το Arduino IDE. Ακολουθήστε αυτό το σεμινάριο.
Το δεύτερο πράγμα που πρέπει να κάνετε είναι να εγκαταστήσετε όλες τις απαιτούμενες Βιβλιοθήκες, μπορείτε εύκολα να τις εγκαταστήσετε από το Arduino Library Manager.
Στη συνέχεια, ανοίξτε τον κώδικα και αλλάξτε τα διαπιστευτήρια wifi και ανεβάστε τον κώδικα.
ο κώδικας βρίσκεται εδώ στο αποθετήριο GitHub-https://github.com/Soumojit28/covid19-iot-display.
Βήμα 4: Επεξήγηση κώδικα και χρήση άλλου API
Ο κώδικας είναι αρκετά απλός
Στο τμήμα κενής ρύθμισης αρχικοποιεί τη μονάδα LCD και εμφανίζει το επίκεντρο μήνυμα και στη συνέχεια συνδέεται στο δίκτυο wifi.
Στο τμήμα του βρόχου, παίρνει τα δεδομένα JSON από το API και αποκωδικοποιεί την αποθήκευση διαφημίσεων σε μια μεταβλητή και στη συνέχεια εμφανίζει αυτά στη σειριακή οθόνη και την οθόνη LCD.
για τη χρήση άλλου API πρέπει να αλλάξετε τη διεύθυνση σε αυτήν τη γραμμή του κώδικα
http.begin ("https://coronago.xyz/api/data.json"); // API
Ένα άλλο πράγμα που το API πρέπει να λειτουργεί με σύνδεση HTTP, η σύνδεση HTTPS δεν θα λειτουργήσει σε αυτόν τον κώδικα και θα λάβετε σφάλμα -1.
Το API επιστρέφει τα δεδομένα JSON έτσι
Τώρα Αυτός ο επόμενος κώδικας απλώς αποκωδικοποιεί τις τιμές JSON και αποθηκεύει στη μεταβλητή, αυτό εξαρτάται πλήρως από τα δεδομένα API και JSON που επιστρέφει. Αλλά είναι εύκολο να αλλάξετε, για περισσότερες πληροφορίες μπορείτε να ελέγξετε αυτό το σεμινάριο.
StaticJsonBuffer JSONBuffer; // Μνήμη JsonObject & parsed = JSONBuffer.parseObject (ωφέλιμο φορτίο); // Ανάλυση μηνύματος επιβεβαιωμένο = ανάλυση ["επιβεβαιωμένο"]; ανακτηθηκε = αναλυθηκε ["ανακτηθηκε"]? θάνατοι = αναλυμένοι ["θάνατοι"]; current_active = parsed ["active"];
Στη συνέχεια, ο κώδικας απλώς εμφανίζει τις μεταβλητές στη σειριακή οθόνη και στην οθόνη LCD.
Serial.print ("επιβεβαιώθηκε:"); Serial.println (επιβεβαιωμένο); Serial.print ("ανακτήθηκε:"); Serial.println (ανακτήθηκε); Serial.print ("currenty_active:"); Serial.println (current_active); Serial.print ("θάνατοι:"); Serial.println (θάνατοι); εάν (httpCode == 200) {// εμφανίσει τα δεδομένα σε lcd lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Επιβεβαιώθηκε:"); lcd.print (επιβεβαιωμένο) lcd.setCursor (0, 1); lcd.print ("Θάνατοι:"); lcd.print (θάνατοι) καθυστέρηση (2500)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Ενεργό:"); lcd.print (current_active); lcd.setCursor (0, 1); lcd.print ("Ανακτήθηκε:"); lcd.print (ανακτήθηκε) καθυστέρηση (2500)?
}
Βήμα 5: Συμπέρασμα
Αυτό είναι ένα εξαιρετικό έργο για την παρακολούθηση των στατιστικών για όλη την ώρα και μπορείτε να το φτιάξετε για να σας περνάει σε αυτήν την κατάσταση κλειδώματος.
Εάν χρειάζεστε βοήθεια, μπορείτε να με ρωτήσετε μέσω σχολίων ή μπορείτε να ανοίξετε ένα θέμα στο Github μου
github.com/Soumojit28/covid19-iot-display για τυχόν προβλήματα που σχετίζονται με τον κώδικα.
Σας ευχαριστώ.