Πίνακας περιεχομένων:

ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα: 5 βήματα
ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα: 5 βήματα

Βίντεο: ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα: 5 βήματα

Βίντεο: ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα: 5 βήματα
Βίντεο: ESP8266 Server 2024, Νοέμβριος
Anonim
ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα
ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα
ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα
ESP8266 NodeMCU Με μετρητές BME280 & Διάγραμμα

Fancy Gauges and Chart για τον πίνακα ανάπτυξης ESP8266 NodeMCU με αισθητήρα θερμοκρασίας, υγρασίας και πίεσης BME280. Το Thingspeak θα αποθηκεύσει όλα τα δεδομένα σας στο cloud για ανάκτηση ανά πάσα στιγμή για τα επόμενα χρόνια (ελπίζουμε). Οι μετρητές και το γράφημα συμπληρώνονται από τα δεδομένα που είναι αποθηκευμένα στο thingspeak και ενημερώνονται αυτόματα κάθε 5 λεπτά.

Απαιτούμενα είδη:

ESP8266 NodeMCU Development board (3,79 $ από Banggood.com Hong Kong)

Bosch BME280 ($ 5,63 από Banggood.com Χονγκ Κονγκ)

Breadboard Jumpers ($ 3.09 από το Banggood.com Hong Kong)

Breadboard (2,28 $ από το Banggood.com Hong Kong)

Τροφοδοσία, Δωρεάν αν έχετε φορτιστή τηλεφώνου micro USB

Καλώδιο Micro USB, δωρεάν αν το έχετε ήδη

Arduino IDE, δωρεάν λήψη

Αποκτήστε τα αρχεία κώδικα.ino &. HTML εδώ

Βήμα 1: Δημιουργήστε και ρυθμίστε τα κανάλια Thingspeak σας

Δημιουργήστε και ρυθμίστε τα κανάλια Thingspeak σας
Δημιουργήστε και ρυθμίστε τα κανάλια Thingspeak σας

1. Δημιουργήστε έναν δωρεάν λογαριασμό Thingspeak και νέο κανάλι στη διεύθυνση https://thingspeak.com, Καλέστε το κανάλι "ESP8266-NodeMCU-12E-BME280"

2. Το νέο κανάλι θα πρέπει να έχει 3 πεδία που ονομάζονται Θερμοκρασία Υγρασία Πίεση με τη συγκεκριμένη σειρά (Σημείωση κεφαλαίου γράμματος πρώτου γράμματος).

3. Σημειώστε το νέο σας "αναγνωριστικό καναλιού" XXXXXX στην ενότητα "Ρυθμίσεις καναλιού"

4. Κάντε κλικ στο σύνδεσμο "Κλειδιά API" και λάβετε υπόψη τα "API Write" και "Read API Keys" XXXXXXXXXXXXXXXX. Επίσης, κάντε αυτό ένα δημόσιο κανάλι υπό κοινή χρήση.

5. Δημιουργήστε ένα δεύτερο κανάλι Thingspeak που θα περιέχει τα δεδομένα "Σήμερα" (από τα μεσάνυχτα) High Low δεδομένων. Ονομάστε το "BME280 Daily High Low Low Data"

6. Αυτό το νέο κανάλι θα πρέπει να έχει 6 πεδία με όνομα Tmax Tmin Hmax Hmin Pmax Pmin με τη συγκεκριμένη σειρά (Σημείωση κεφαλαίου γράμματος πρώτου γράμματος).

7. Σημειώστε τα "BME280 Daily High Low Data" "ID του καναλιού", "Read" & "Write API keys" όπως ακριβώς και στα παραπάνω βήματα.

Βήμα 2: Ρυθμίστε το Arduino IDE, Βιβλιοθήκες και διαμορφώστε το BME280

Ρυθμίστε το Arduino IDE, Βιβλιοθήκες και διαμορφώστε το BME280
Ρυθμίστε το Arduino IDE, Βιβλιοθήκες και διαμορφώστε το BME280

8. Ακολουθήστε τις οδηγίες για την εγκατάσταση του πυρήνα Arduino IDE & ESP8266 στη διεύθυνση

9. Πυροδοτήστε το Arduino IDE, ώστε να μπορέσουμε να εγκαταστήσουμε τις τέσσερις βιβλιοθήκες που θα χρειαστούμε.

10. Θα χρειαστείτε τη βιβλιοθήκη "Adafruit Unified Sensor Driver", εγκαταστήστε την στο "Library Manager" στο Arduino IDE. Μενού Σκίτσο Συμπεριλάβετε Βιβλιοθήκη Διαχείριση Βιβλιοθηκών πραγματοποιήστε αναζήτηση βάσει Type = "Recommended" Θέμα = "Αισθητήρες" και στη συνέχεια τοποθετήστε τις λέξεις Adafruit Unified Sensor Driver στο πλαίσιο αναζήτησης. Αυτό που θέλετε λέει "Adafruit Unified Sensor Driver by Adafruit"

11. Επιπλέον, θα χρειαστεί επίσης η "Βιβλιοθήκη Adafruit BME280" να την εγκαταστήσει στο "Library Manager" στο Arduino IDE. Μενού Σκίτσο Συμπεριλάβετε Βιβλιοθήκη Διαχείριση Βιβλιοθηκών πραγματοποιήστε αναζήτηση με Τύπο = "Προτείνεται" Θέμα = "Αισθητήρες" και στη συνέχεια τοποθετήστε τις λέξεις Adafruit BME280 Library στο πλαίσιο αναζήτησης. Αυτό που θέλετε λέει "Adafruit BME280 Library by Adafruit"

12. Μια άλλη βιβλιοθήκη που χρειάζεστε είναι το Wire.h, εγκαταστήστε το στο "Library Library" στο Arduino IDE. Μενού, Σκίτσο Συμπεριλάβετε βιβλιοθήκη Διαχείριση βιβλιοθηκών Κάντε μια αναζήτηση με Τύπο = "Συνεισφορά" Θέμα = "Εισαγωγή/Έξοδος Σήματος" και στη συνέχεια τοποθετήστε τη λέξη Wire στο πλαίσιο αναζήτησης. Αυτό που θέλετε λέει "Wire Built-in by Arduino" Πιθανότατα στο κάτω μέρος της επιλογής.

13. Μια ακόμη βιβλιοθήκη, το ESP8266WiFi, εγκαταστήστε το στο "Library Manager" στο Arduino IDE. Μενού, Σκίτσο Συμπεριλάβετε βιβλιοθήκη Διαχείριση βιβλιοθηκών Κάντε μια αναζήτηση με Τύπο = "Συνεισφορά" Θέμα = "Επικοινωνία" και στη συνέχεια τοποθετήστε τη λέξη ESP8266wifi στο πλαίσιο αναζήτησης. Αυτό που θέλετε λέει "ESP8266wifi Built-in by Ivan Grokhotkov"

14. Η διεύθυνση I2C για BME280 είναι κωδικοποιημένη στο αρχείο Adafruit_BME280.h (αναζητήστε τη γραμμή #ορίστε BME280_ADDRESS 0x77) μέσα στο φάκελο Adafruit_BME280_Library. Οι μονάδες αισθητήρα BME της Adafruit είναι ενσύρματες για χρήση της διεύθυνσης I2C του 0x77. Αλλά το BME280 μπορεί να έχει μια ελαφρώς διαφορετική διεύθυνση I2C (0x76) εάν η εξωτερική καρφίτσα του SDO είναι γειωμένη. Εάν χρησιμοποιείτε τις ενότητες αισθητήρων από τρίτο μέρος, είναι πιθανό ότι η διεύθυνσή της δεν θα ταιριάζει με την προεπιλεγμένη τιμή στη βιβλιοθήκη του Adafruit. Για παράδειγμα, για τις περισσότερες μονάδες αισθητήρων BME280 που διατίθενται στο eBay ή στο Aliexpress η διεύθυνση I2C τους είναι 0x76. Εάν δεν λάβετε απάντηση από τον αισθητήρα χρησιμοποιώντας την προεπιλεγμένη διεύθυνση που έχει οριστεί στο αρχείο Adafruit_BME280.h, ίσως χρειαστεί να την αλλάξετε σε 0x76.

BME280 & ESP8266 Σημεία σύνδεσης. ESP8266 3.3V σε BME280 Vin, ESP8266 GND σε BME280 GND, ESP8266 D4 σε BME280 SCL, ESP8266 D3 σε BME280 SDA. 15. Ανοίξτε το παρεχόμενο αρχείο ESP8266-NodeMCU-12E-BME280.html σε πρόγραμμα επεξεργασίας κειμένου και εισαγάγετε το "ESP8266-NodeMCU-12E-BME280" (Το πρώτο κανάλι που δημιουργήσατε) "Αναγνωριστικό καναλιού" & "Ανάγνωση κλειδιού API" για μεταβλητές κλειδί1 & chan1. Εισαγάγετε επίσης τα "Κλειδί API ανάγνωσης" και "Αναγνωριστικό καναλιού" για "BME280 Daily High Low Data" (Το δεύτερο κανάλι που δημιουργήσατε) για τα κλειδιά2 και chan2. Επιπλέον, καταχωρίστε τη ζώνη ώρας που αντισταθμίζεται από το UTC. Όπως στο -5 για μένα. Όλες οι τιμές πρέπει να βρίσκονται μέσα στα παρεχόμενα μεμονωμένα εισαγωγικά 'XXXXX'. Αποθηκεύστε και εξέλθετε από τον επεξεργαστή κειμένου.

Συνδέστε το ESP8266 με το καλώδιο USB στον υπολογιστή σας και, στη συνέχεια, επιλέξτε τη σειριακή θύρα που θα είναι η θύρα USB.

Οι χρήστες Linux μπορεί να χρειαστεί να αλλάξουν την ιδιοκτησία της θύρας USB για να επικοινωνήσουν με το /dev /ttyUSB0 όπως στο 'sudo chown yourusername /dev /ttyUSB0' ή ό, τι έχετε επιλέξει ως θύρα σας κατά τη ρύθμιση.

Βήμα 3: Προγραμματίστε το ESP8266 Με το Arduino IDE

Προγραμματίστε το ESP8266 Με το Arduino IDE
Προγραμματίστε το ESP8266 Με το Arduino IDE

16. Στη συνέχεια θα προγραμματίσουμε το ESP8266. Συνδέστε ένα καλώδιο USB μεταξύ του ESP8266 και του υπολογιστή σας.

Φορτώστε το παρεχόμενο αρχείο New_BME_Sensor.ino στο Arduino IDE. Ο αισθητήρας BME280 πρέπει να είναι συνδεδεμένος με D3 (SDA) & D4 (SCL) στο ESP8266. Εισαγάγετε το "ESP8266-NodeMCU-12E-BME280" (Το πρώτο κανάλι που δημιουργήσατε) "Γράψτε κλειδί" "Ασύρματο SSID" & "Κωδικός πρόσβασης" στη σωστή ενότητα του σκίτσου. Στη συνέχεια, κάντε κλικ στο στοιχείο μενού "Σκίτσο" & "Μεταφόρτωση". Αφού ανεβάσετε το σκίτσο (Η πρόοδος φτάνει το 100%) στο ESP8266, μπορείτε να ανοίξετε τη σειριακή οθόνη (το εικονίδιο πάνω δεξιά μοιάζει με γυαλί μεγέθυνσης) και να δείτε τα δεδομένα σας να εκτυπώνονται μετά από 5 λεπτά, κάθε 5 λεπτά. Τα δεδομένα αποστέλλονται στην ουσία σε διαστήματα 5 λεπτών, οπότε θα χρειαστεί λίγος χρόνος για να έχετε σημαντικά δεδομένα γραφήματος, αλλά θα πρέπει να έχετε μετρήσεις μετρητή μετά από 5 λεπτά.

Βεβαιωθείτε ότι έχετε λάβει σωστές ενδείξεις από το BME280 στη σειριακή οθόνη.

Η πρώτη μέτρηση θα είναι πιθανώς ένα μη έγκυρο nan.

Περιμένετε μερικά λεπτά μέχρι την επόμενη ανάγνωση και επαληθεύστε ότι οι ενδείξεις φαίνονται καλές.

Βήμα 4: Επιστρέψτε στο Thingspeak για να κάνετε κάποια αλλαγή δεδομένων

Επιστρέψτε στο Thingspeak για να κάνετε κάποια αλλαγή δεδομένων
Επιστρέψτε στο Thingspeak για να κάνετε κάποια αλλαγή δεδομένων

17. Τώρα, ενώ τα δεδομένα μεταφορτώνονται σιγά -σιγά στο thingspeak σας επιτρέπει να κάνετε κάποιες τροποποιήσεις για να λάβετε κάποια επιπλέον δεδομένα από αυτά που ανεβαίνουν. Επιστρέψτε στον ιστότοπο thingspeak και στη σελίδα καναλιού Thingspeak "BME280 Daily High Low Data" (Το δεύτερο κανάλι που δημιουργήσατε) κάντε κλικ στο πράσινο κουμπί "Ανάλυση MATLAB". Επιλέξτε Πρότυπο "Προσαρμοσμένο (Χωρίς κωδικό εκκίνησης)"

18. Ονομάστε την ανάλυση MATLAB "Υπολογίστε το ελάχιστο μέγιστο από τα μεσάνυχτα".

19. Αντιγράψτε τον κώδικα MATLAB Analysis.txt στον παρεχόμενο χώρο. Εισαγάγετε το "αναγνωριστικό καναλιού" για το "ESP8266-NodeMCU-12E-BME280" (Το πρώτο κανάλι που δημιουργήσατε) στο "readChannelID". Εισαγάγετε το "BME280 Daily High Low Data" (Το δεύτερο κανάλι που δημιουργήσατε) Γράψτε "Αναγνωριστικό καναλιού" & "Κλειδί εγγραφής" στο writeNewChannelID & writeAPIKey με σεβασμό. Ξέρω ότι ακούγεται μπερδεμένο (διαβάστε το ξανά). Κάντε κλικ στην επιλογή αποθήκευση και εκτέλεση. Εάν το κάνατε σωστά και το κανάλι ανάγνωσης είναι δημόσιο, δεν θα δείτε σφάλματα και εκτυπώνει με επιτυχία τις τιμές. Σημείωση, Ενδέχεται να δείτε ένα σφάλμα εάν δεν έχουν μεταφορτωθεί ακόμη δεδομένα σε αυτό το κανάλι. Παρά το σφάλμα συνεχίστε. Εάν θέλετε, μπορείτε να επισκεφθείτε ξανά Κάντε κλικ στην επιλογή αποθήκευση και εκτελέστε για να βεβαιωθείτε ότι λειτουργεί μόλις μεταφορτωθούν τα δεδομένα.

20. Στη συνέχεια, πρέπει να δημιουργήσουμε ένα "Time Control" για να ενεργοποιήσουμε αυτόν τον κωδικό κάθε 5 λεπτά και τα δεδομένα μας γράφονται στο κανάλι "BME280 Daily High Low Data" (Το δεύτερο κανάλι που δημιουργήσατε). Από την κύρια σελίδα του "BME280 Daily High Low Data" (Το δεύτερο κανάλι που δημιουργήσατε) επιλέξτε Εφαρμογές στο επάνω μέρος. Στις ενέργειες επιλέξτε "TimeControl" και έπειτα το πράσινο κουμπί "New TimeControl". Ονομάστε το "Αποστολή υψηλών χαμηλών θερμοκρασιών ESP8266". Επιλέξτε τη ζώνη ώρας σας εάν χρειάζεται και επιλέξτε "Επαναλαμβανόμενη" στην περιοχή Συχνότητα. Επιλέξτε Λεπτό στην Επανάληψη. Ρυθμίστε να εκτελείται κάθε 5 λεπτά. Η ενέργεια πρέπει να είναι Ανάλυση MATLAB και "Κωδικός προς εκτέλεση" είναι "Υπολογίστε το ελάχιστο μέγιστο από τα μεσάνυχτα". Εξοικονομήστε χρόνοControl.

Βήμα 5: Επεξεργαστείτε το παρεχόμενο αρχείο HTML

Επεξεργαστείτε το παρεχόμενο αρχείο HTML
Επεξεργαστείτε το παρεχόμενο αρχείο HTML

Επεξεργαστείτε τα αρχεία HTML και αναζητήστε σχόλια που λένε "******** Change Me 1 of 8 *********" Αλλάξτε αυτά στην προτίμησή σας.

Σημειώσεις:

Ορισμένα από τα πεδία κειμένου και το εβδομαδιαίο γράφημα δεν θα συμπληρωθούν σωστά μέχρι να έχετε μια ολόκληρη ημέρα και μια ολόκληρη εβδομάδα δεδομένων για την ενότητα και το γράφημα 24 ωρών και εβδομάδων. Μόλις έχετε μια δέσμη δεδομένων, μπορείτε να κάνετε μεγέθυνση στα γραφήματα με τον τροχό του ποντικιού (δεξί κλικ για επαναφορά). Μπορείτε επίσης να έχετε έναν τέταρτο μετρητή (όπως φαίνεται στα στιγμιότυπα οθόνης) από έναν άλλο αισθητήρα από άλλο κανάλι, αλλά έχω βγάλει τις σχετικές μερίδες. Εάν αισθάνεστε άγρια, συνδέστε το. Υπάρχουν επίσης ορισμένα ζητήματα χρονισμού που πρέπει να γνωρίζετε. Πιθανότατα δεν θα έχετε τα απόλυτα πιο τρέχοντα δεδομένα, αλλά θα πρέπει πάντα να είναι λιγότερο από 5 λεπτά. Αυτό προέρχεται από την ενεργοποίηση του ελέγχου χρονισμού, από την αποστολή των δεδομένων από το ESP8266 και από τη φόρτωση / ανανέωση της ιστοσελίδας.

Ανοίξτε το παρεχόμενο αρχείο ESP8266-NodeMCU-12E-BME280.html στο πρόγραμμα περιήγησής σας και θα πρέπει να δείτε τους μετρητές και το γράφημα να συμπληρώνονται.

Αποκτήστε τα αρχεία κώδικα.ino &. HTML εδώ

Συνιστάται: