- Διαφορετικές μέθοδοι για την ελαχιστοποίηση της κατανάλωσης ισχύος
- Απαιτούμενα στοιχεία
- Τύποι τρόπων ύπνου σε ESP8266
- Προγραμματισμός κατάστασης ύπνου ESP8266
- Δοκιμή DeepSleep στο ESP8266
Καθώς η επανάσταση του IoT αυξάνεται κάθε μέρα, ο αριθμός των συνδεδεμένων συσκευών αυξάνεται πολύ γρήγορα. Στο μέλλον, οι περισσότερες συσκευές θα συνδέονται μεταξύ τους και θα επικοινωνούν σε πραγματικό χρόνο. Ένα από τα προβλήματα που αντιμετωπίζει η συσκευή είναι η κατανάλωση ενέργειας Αυτός ο παράγοντας κατανάλωσης ισχύος είναι ένας από τους κρίσιμους και αποφασιστικούς παράγοντες για οποιαδήποτε συσκευή IoT και έργα IoT.
Όπως γνωρίζουμε ότι το ESP8266 είναι ένα από τα πιο δημοφιλή module για την κατασκευή οποιουδήποτε έργου IoT, οπότε σε αυτό το άρθρο μαθαίνουμε για εξοικονόμηση ενέργειας ενώ χρησιμοποιούμε ESP8266 σε οποιαδήποτε εφαρμογή IoT. Εδώ ανεβάζουμε δεδομένα αισθητήρα θερμοκρασίας LM35 στο σύννεφο ThingSpeak σε διάστημα 15 δευτερολέπτων και κατά τη διάρκεια αυτών των 15 δευτερολέπτων το ESP8266 παραμένει σε λειτουργία DeepSleep για εξοικονόμηση ενέργειας
Διαφορετικές μέθοδοι για την ελαχιστοποίηση της κατανάλωσης ισχύος
Υπάρχουν διάφοροι τρόποι βελτιστοποίησης της κατανάλωσης ενέργειας στις ενσωματωμένες και συσκευές IoT. Η βελτιστοποίηση μπορεί να γίνει σε υλικό και λογισμικό. Μερικές φορές δεν μπορούμε να βελτιστοποιήσουμε στοιχεία υλικού για να μειώσουμε την κατανάλωση ενέργειας, αλλά σίγουρα μπορούμε να το κάνουμε από την πλευρά του λογισμικού αλλάζοντας και βελτιστοποιώντας τις οδηγίες και τις λειτουργίες κώδικα. Όχι μόνο αυτό, οι προγραμματιστές μπορούν επίσης να τροποποιήσουν τη συχνότητα ρολογιού για να μειώσουν την κατανάλωση ισχύος του μικροελεγκτή.Μπορούμε να γράψουμε ένα υλικολογισμικό για να κάνουμε το υλικό να αδρανοποιηθεί όταν δεν υπάρχει ανταλλαγή δεδομένων και να εκτελέσουμε την καθορισμένη εργασία σε ένα συγκεκριμένο διάστημα. Σε κατάσταση αναστολής λειτουργίας, το συνδεδεμένο υλικό αντλεί πολύ λιγότερη ισχύ και ως εκ τούτου η μπαταρία μπορεί να διαρκέσει πολύ. Μπορείτε επίσης να διαβάσετε την Ελαχιστοποίηση της κατανάλωσης ισχύος σε μικροελεγκτές, εάν θέλετε να μάθετε περισσότερα για τις τεχνικές κατανάλωσης ενέργειας.
Οι μονάδες ESP8266 είναι οι πιο ευρέως χρησιμοποιούμενες λειτουργικές μονάδες Wi-Fi, με πολλές δυνατότητες σε μικρό μέγεθος που έχουν διαφορετικές λειτουργίες, συμπεριλαμβανομένης της λειτουργίας αναστολής λειτουργίας και αυτές οι λειτουργίες μπορούν να προσεγγιστούν χρησιμοποιώντας κάποια τροποποίηση σε υλικό και λογισμικό. Για να μάθετε περισσότερα σχετικά με το ESP8266, μπορείτε να ελέγξετε τα έργα μας με βάση το IoT χρησιμοποιώντας τη μονάδα Wi-Fi ESP826, μερικά από αυτά παρατίθενται παρακάτω:
- Διασύνδεση ESP8266 NodeMCU με τον μικροελεγκτή Atmega16 για αποστολή email
- Αποστολή δεδομένων αισθητήρα θερμοκρασίας και υγρασίας στη βάση δεδομένων Firebase σε πραγματικό χρόνο χρησιμοποιώντας το NodeMCU ESP8266
- Το IoT Controlled LED χρησιμοποιεί το Google Firebase Console και το ESP8266 NodeMCU
Εδώ θα εξηγήσουμε διαφορετικούς τρόπους αδράνειας που διατίθενται στο ESP8266 και θα τους δείξουμε στέλνοντας δεδομένα θερμοκρασίας στον διακομιστή Thingspeak σε κανονικό διάστημα χρησιμοποιώντας τη λειτουργία βαθιάς αναστολής.
Απαιτούμενα στοιχεία
- Ενότητα ESP8266 Wi-Fi
- Αισθητήρας θερμοκρασίας LM35
- Καλώδια αλτών
Τύποι τρόπων ύπνου σε ESP8266
Η μονάδα Esp8266 λειτουργεί στις ακόλουθες λειτουργίες:
- Ενεργή λειτουργία: Σε αυτήν τη λειτουργία, ολόκληρο το τσιπ είναι ενεργοποιημένο και το τσιπ μπορεί να λάβει, να μεταδώσει τα δεδομένα. Προφανώς, αυτή είναι η πιο καταναγκαστική λειτουργία.
- Λειτουργία modem-sleep: Σε αυτήν τη λειτουργία, η CPU είναι λειτουργική και τα ραδιόφωνα Wi-Fi είναι απενεργοποιημένα. Αυτή η λειτουργία μπορεί να χρησιμοποιηθεί σε εφαρμογές που απαιτούν τη λειτουργία της CPU, όπως στο PWM. Κάνει το κύκλωμα Wi-Fi Modem να απενεργοποιείται ενώ είναι συνδεδεμένο με το Wi-Fi AP (Access Point) χωρίς μετάδοση δεδομένων για βελτιστοποίηση της κατανάλωσης ενέργειας.
- Λειτουργία ελαφρού ύπνου: Σε αυτήν τη λειτουργία, η CPU και όλα τα περιφερειακά βρίσκονται σε παύση. Οποιαδήποτε αφύπνιση όπως εξωτερικές διακοπές θα ξυπνήσει το τσιπ. Χωρίς μετάδοση δεδομένων, το κύκλωμα Wi-Fi Modem μπορεί να απενεργοποιηθεί και η CPU να ανασταλεί για εξοικονόμηση ενέργειας.
- Λειτουργία βαθιάς ύπνου: Σε αυτήν τη λειτουργία μόνο το RTC είναι λειτουργικό και όλα τα άλλα στοιχεία του τσιπ απενεργοποιούνται. Αυτή η λειτουργία είναι χρήσιμη όταν τα δεδομένα μεταδίδονται μετά από μεγάλα χρονικά διαστήματα.
Συνδέστε τον αισθητήρα θερμοκρασίας LM35 με τον πείρο A0 του NodeMCU.
Όταν η μονάδα ESP έχει ΥΨΗΛΗ καρφίτσα RST, βρίσκεται σε κατάσταση λειτουργίας. Μόλις λάβει το σήμα LOW στον ακροδέκτη RST, το ESP επανεκκινείται.
Ρυθμίστε το χρονοδιακόπτη χρησιμοποιώντας τη λειτουργία βαθιάς αναστολής, μόλις τελειώσει ο χρονοδιακόπτης, τότε ο πείρος D0 στέλνει το σήμα LOW στον ακροδέκτη RST και η μονάδα θα ξυπνήσει με την επανεκκίνηση.
Τώρα, το υλικό είναι έτοιμο και καλά διαμορφωμένο. Οι μετρήσεις θερμοκρασίας θα σταλούν στον διακομιστή Thingspeak. Για αυτό, δημιουργήστε έναν λογαριασμό στο thingspeak.com και δημιουργήστε ένα κανάλι ακολουθώντας τα παρακάτω βήματα.
Τώρα, αντιγράψτε το κλειδί API εγγραφής. Ποιο θα χρησιμοποιηθεί στον κωδικό ESP.
Προγραμματισμός κατάστασης ύπνου ESP8266
Το εύκολα διαθέσιμο Arduino IDE θα χρησιμοποιηθεί για τον προγραμματισμό της μονάδας ESP8266. Βεβαιωθείτε ότι έχουν εγκατασταθεί όλα τα αρχεία πλακέτας ESP8266.
Ξεκινήστε με τη συμπερίληψη όλων των σημαντικών βιβλιοθηκών που απαιτούνται.
#περιλαμβάνω
Μόλις συμπεριληφθούν όλες οι βιβλιοθήκες για πρόσβαση στις λειτουργίες, εκχωρήστε το κλειδί εγγραφής API, διαμορφώστε το όνομα και τον κωδικό πρόσβασης Wi-Fi. Στη συνέχεια δηλώστε όλες τις μεταβλητές για περαιτέρω χρήση όπου θα αποθηκευτούν τα δεδομένα.
Συμβολοσειρά apiWritekey = "*************"; // αντικαταστήστε με το κλειδί THINGSPEAK WRITEAPI εδώ char ssid = "******"; // το όνομα SSID wifi σας κωδικός πρόσβασης = "******"; // κωδικός πρόσβασης wifi
Τώρα, κάντε μια λειτουργία για να συνδέσετε τη λειτουργική μονάδα με το δίκτυο Wi-Fi χρησιμοποιώντας τη λειτουργία wifi.begin () και, στη συνέχεια, ελέγξτε συνεχώς έως ότου η μονάδα δεν είναι συνδεδεμένη στο Wi-Fi χρησιμοποιώντας το while loop.
void connect1 () { WiFi.disconnect (); καθυστέρηση (10) WiFi.begin (SSD, κωδικός πρόσβασης); ενώ (WiFi.status ()! = WL_CONNECTED) {
Κάντε μια άλλη λειτουργία για να στείλετε τα δεδομένα στον διακομιστή thingspeak. Εδώ θα σταλεί μια συμβολοσειρά που περιέχει το κλειδί εγγραφής API, τον αριθμό πεδίου και τα δεδομένα που πρέπει να σταλούν. Στη συνέχεια, στείλτε αυτήν τη συμβολοσειρά χρησιμοποιώντας τη συνάρτηση client.print ().
άκυρα δεδομένα () { if (client.connect (διακομιστής, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / ενημέρωση HTTP / 1.1 \ n"); client.print ("Host: api.thingspeak.com \ n");
Καλέστε τη συνάρτηση connect1 που θα καλέσει τη συνάρτηση για σύνδεση Wi-Fi και στη συνέχεια λάβετε τις μετρήσεις της θερμοκρασίας και μετατρέψτε την σε Κελσίου.
άκυρη ρύθμιση () { Serial.begin (115200); Serial.println ("η συσκευή βρίσκεται σε λειτουργία αφύπνισης"); σύνδεση1 (); int value = analogRead (A0); float volts = (τιμή / 1024.0) * 5.0; tempC = βολτ * 100,0;
Τώρα, καλέστε τη συνάρτηση δεδομένων () για να ανεβάσετε τα δεδομένα στο cloud. Τέλος, η σημαντική λειτουργία που πρέπει να καλέσετε είναι ESP.deepSleep (); Αυτό θα κάνει τη μονάδα να αδράξει για το καθορισμένο χρονικό διάστημα που είναι σε μικροδευτερόλεπτα.
δεδομένα(); Serial.println ("βαθύς ύπνος για 15 δευτερόλεπτα"); ESP.deepSleep (15e6);
Η λειτουργία βρόχου θα παραμείνει κενή καθώς όλη η εργασία πρέπει να εκτελεστεί μία φορά και στη συνέχεια επαναφέρετε τη μονάδα μετά το καθορισμένο χρονικό διάστημα.
Το βίντεο εργασίας και ο πλήρης κωδικός δίδονται στο τέλος αυτού του σεμιναρίου. Ανεβάστε τον κωδικό στη μονάδα ESP8266. Αφαιρέστε το συνδεδεμένο καλώδιο RST και D0 πριν ανεβάσετε το πρόγραμμα αλλιώς θα δώσει σφάλμα.
Δοκιμή DeepSleep στο ESP8266
Αφού ανεβάσετε το πρόγραμμα, θα δείτε ότι οι μετρήσεις θερμοκρασίας ανεβαίνουν στο σύννεφο ThingSpeak μετά από κάθε 15 δευτερόλεπτα και στη συνέχεια η μονάδα πηγαίνει σε κατάσταση βαθιάς ύπνου.
Αυτό ολοκληρώνει το σεμινάριο για τη χρήση της λειτουργίας Deep Sleep στο ESP8266. Το deepsleep είναι πολύ σημαντικό χαρακτηριστικό και έχει συμπεριληφθεί στις περισσότερες συσκευές. Μπορείτε να ανατρέξετε σε αυτό το σεμινάριο και να εφαρμόσετε αυτήν τη μέθοδο για διαφορετικά έργα. Σε περίπτωση αμφιβολιών ή προτάσεων, γράψτε και σχολιάστε παρακάτω. Επίσης μπορείτε να φτάσετε στο φόρουμ μας.