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

ESP32 Μετεωρολογικός Σταθμός Ηλιακός: 9 Βήματα
ESP32 Μετεωρολογικός Σταθμός Ηλιακός: 9 Βήματα

Βίντεο: ESP32 Μετεωρολογικός Σταθμός Ηλιακός: 9 Βήματα

Βίντεο: ESP32 Μετεωρολογικός Σταθμός Ηλιακός: 9 Βήματα
Βίντεο: Hardware Build of LoRa Transmitter, BME280 Sensor based on Arduino ESP32 (EP08) 2024, Ιούνιος
Anonim
Image
Image
ESP32 Μετεωρολογικός σταθμός με ηλιακή ενέργεια
ESP32 Μετεωρολογικός σταθμός με ηλιακή ενέργεια
ESP32 Μετεωρολογικός σταθμός με ηλιακή ενέργεια
ESP32 Μετεωρολογικός σταθμός με ηλιακή ενέργεια

Σε αυτό το σεμινάριο θα δημιουργήσουμε ένα έργο μετεωρολογικού σταθμού με δυνατότητα WiFi.

Ο στόχος είναι ο σχεδιασμός μετεωρολογικού σταθμού με όλες σχεδόν τις πιθανές δυνατότητες:

  • Δείξτε τις τρέχουσες συνθήκες, χρόνο, θερμοκρασία, υγρασία, πίεση
  • Εμφάνιση πρόβλεψης για τις επόμενες ημέρες
  • Ενημέρωση στον αέρα
  • Ενσωματωμένος ιστότοπος για διαμόρφωση και παρουσίαση δεδομένων
  • Ανεβάστε δεδομένα στο cloud για στατιστικά ιστορικού
  • Ενσωματωμένο με Aple Home Kit ή MQTT
  • Το ανεξάρτητο Accu τροφοδοτείται με πιθανή επαναφόρτιση ή σύνδεση με ηλιακό πάνελ

Δεν μπορώ να προσθέσω περισσότερη και όχι περισσότερη φαντασία τι άλλο πρέπει ή μπορεί να είναι

Βήμα 1: Απαιτούμενα μέρη

Μέρη που απαιτούνται
Μέρη που απαιτούνται
Μέρη που απαιτούνται
Μέρη που απαιτούνται
Μέρη που απαιτούνται
Μέρη που απαιτούνται
  • ESP32 (έχω χρησιμοποιήσει το mod mod)
  • 2,8 "240x320 TFT LCD SPI ILI9341
  • Πλαστική θήκη
  • 3 x 18650 Accu
  • Αισθητήρας καιρού BME280 για μέτρηση θερμοκρασίας, υγρασίας και πίεσης
  • Μονάδα φόρτισης λιθίου USB
  • Βήμα DC-DC UP18650
  • υποδοχή μπαταρίας (3τεμ)
  • HC-SR505 Ανιχνευτής κίνησης
  • Αντίσταση 220 Om
  • 2x αντιστάσεις 10 kOm
  • Το τρανζίστορ TIP120 NPN (Darlington) μπορεί να χρησιμοποιηθεί με οποιοδήποτε άλλο συμβατό
  • ButtonWires, διακόπτης, κολλητήρι….

Βήμα 2: Καλωδίωση και συναρμολόγηση

Καλωδίωση και συναρμολόγηση
Καλωδίωση και συναρμολόγηση
Καλωδίωση και συναρμολόγηση
Καλωδίωση και συναρμολόγηση
Καλωδίωση και συναρμολόγηση
Καλωδίωση και συναρμολόγηση
Καλωδίωση και συναρμολόγηση
Καλωδίωση και συναρμολόγηση

Το πρώτο βήμα είναι η συγκέντρωση των δυνάμεων των σταθμών.

Έχω χωρίσει την πλαστική θήκη σε δύο τεμάχια, το ένα από αυτά χρησιμοποιείται για μπαταρία, διακόπτη, φορτιστή USB και DC-DC. Σε αυτό το μέρος βάζω τη θήκη μπαταρίας και φτιάχνω παράθυρα για το διακόπτη και το φορτιστή usb. Να γνωρίζετε ότι η μονάδα φόρτισης USB είναι αρκετά προσεκτική, επομένως χρησιμοποίησα πλάκα αλουμινίου και έβαλα φορτιστή USB σε αυτήν χρησιμοποιώντας κόλλα Star 922.

Το δεύτερο βήμα είναι η συναρμολόγηση του τμήματος των ελεγκτών.

Δείτε το διάγραμμα καλωδίωσης πώς πρέπει να συνδεθεί

Έχω χρησιμοποιήσει τον πίνακα ψωμιού για το σκοπό αυτό με τα ακόλουθα βήματα

  • Συγκολλητής ESP32 dev board
  • Συγκολλητική ασπίδα για διατήρηση της οθόνης TFT
  • Συγκολλήστε άλλα ηλεκτρονικά εξαρτήματα: BME280, αντιστάσεις, κουμπιά
  • Συγκόλληση καλωδίωσης μεταξύ εξαρτημάτων σύμφωνα με το διάγραμμα

Το τρίτο βήμα είναι να προετοιμάσετε την τοποθέτηση της σανίδας ψωμιού στο δεύτερο μέρος της πλαστικής θήκης. Έχω εκτυπώσει στον τρισδιάστατο εκτυπωτή μου δύο ράβδους, τις τοποθετώ στο bredboard με βίδες και κάνω ορθογώνια κοπή για την οθόνη.

Κόλλησα πλαστικά στηρίγματα στο σώμα από πλαστική θήκη. Τώρα, όταν η κόλλα είναι στεγνή, η καμπίνα του ψωμιού αποσυναρμολογείται με βίδες.

Το επόμενο βήμα είναι:

  • Συγκόλληση καλωδίωσης για πηγή ενέργειας
  • Συγκόλληση καλωδίωσης για την κατάσταση τάσης της μπαταρίας
  • Ανιχνευτής κίνησης συγκόλλησης και τοποθέτησης

Τελικό βήμα:

  • ρύθμιση μετατροπέα DC-DC με ρύθμιση τάσης εξόδου 5v
  • συνδέστε δύο μέρη του ελεγκτή σταθμού στην τροφοδοσία: καλώδια τροφοδοσίας και ένδειξη τάσης

Για τον ανιχνευτή κίνησης και το κουμπί έκανα επιπλέον τρύπες στην πλευρά του προσώπου.

Βήμα 3: Μεταφόρτωση υλικολογισμικού στο ESP32

Για αυτό το έργο έχω χρησιμοποιήσει καθολικό λογισμικό, που αναπτύχθηκε από τον εαυτό μου

Παρακαλούμε ρίξτε μια ματιά στη σελίδα github ESPHomeController. Αυτό περιέχει πλήρεις οδηγίες για τον τρόπο σύνταξης και ρύθμισης.

! Εάν δεν είστε εξοικειωμένοι με τη μεταγλώττιση και το Arduino, ρίξτε μια ματιά στο βήμα Μεταφόρτωση έτοιμου υλικολογισμικού

Μόλις ανεβάσετε το υλικολογισμικό για πρώτη φορά, το ESP32 θα ξεκινήσει σε κατάσταση διαμόρφωσης (λειτουργία σημείου πρόσβασης)

Θα πρέπει να τις ρυθμίσετε. Για το σκοπό αυτό ανοίξτε σε οποιαδήποτε λίστα συσκευών διαθέσιμων WiFi. Βρείτε το HomeController και συνδεθείτε σε αυτό. Η αιχμηρή πύλη πρέπει να ξεκινά αυτόματα. Εάν δεν εισαγάγετε το url του προγράμματος περιήγησής σας: 192.168.4.1 και θα δείτε την οθόνη διαμόρφωσης

Ακολουθήστε τις οδηγίες και διαμορφώστε τα διαπιστευτήρια WiFi στο δίκτυό σας WiFi.

Το ESP θα επανεκκινηθεί μετά από αυτό ως πελάτης WiFi και θα συνδεθεί στο Wifi σας.

Καθώς συμβαίνει η σύνδεση sson, θα εγκατασταθεί αυτόματα το σύστημα αρχείων Spiffs και θα πραγματοποιήσει λήψη των απαιτούμενων αρχείων για την διαδικτυακή πύλη:

  • index.html
  • filebrowse.html
  • js/bundle.min.js.gz

Η λήψη πραγματοποιείται από το φάκελο

Τώρα μπορείτε να δείτε περιεχόμενο αρχείου μέσω προγράμματος περιήγησης ιστού. για αυτό θα πρέπει τώρα να κάνετε IP διεύθυνση του ESP32

Μπορείτε να το βρείτε με έναν από τους παρακάτω τρόπους:

  • Χρησιμοποιώντας οθόνη σειριακής θύρας για να δείτε αρχεία καταγραφής ESP32
  • Χρησιμοποιώντας οποιοδήποτε σαρωτή tcp για να σαρώσετε τις συσκευές δικτύου σας
  • Πατήστε ένα κουμπί στον μετεωρολογικό σταθμό και θα δείτε πληροφορίες συστήματος

Βάλτε στο πρόγραμμα περιήγησης https://192.168.0. XX/browse και θα δείτε μια λίστα αρχείων του ESP σας

(192.168.0. XX είναι η διεύθυνση IP της συσκευής σας

Για τον τελικό συντονισμό πρέπει να προετοιμάσετε αρχεία διαμόρφωσης.

Βήμα 4: Μεταφόρτωση έτοιμου υλικολογισμικού

Μεταφόρτωση έτοιμου υλικολογισμικού
Μεταφόρτωση έτοιμου υλικολογισμικού

Αυτή η ενότητα απευθύνεται ειδικά σε ακουστικά που δεν πρόκειται να παράγουν υλικολογισμικό μόνοι σας. Απλώς πρέπει να ανεβάσετε "έτοιμο" υλικολογισμικό

1. Μην φορτώσετε εργαλεία μεταφόρτωσης flash από αυτήν τη σελίδα

2. Κατεβάστε συνημμένα (απόσπασμα από αρχεία) αρχεία HomeController.bin και bootloader_qio_80m.bin στον σκληρό σας δίσκο

3. Ξεκινήστε το εργαλείο λήψης ESP32 και εισαγάγετε τιμές σύμφωνα με το στιγμιότυπο οθόνης

4. Πατήστε έναρξη

Βήμα 5: Διαμόρφωση

Πριν ξεκινήσετε την προετοιμασία της διαμόρφωσης χρειάζεστε:

  1. Δημιουργήστε το κανάλι σας στο κανάλι πραγμάτων και κλειδί για εσάς. Προετοιμάστε 4 πεδία και ονομάστε τα σωστά Θερμοκρασία, Υγρασία, Πίεση, Τάση
  2. Εγγραφείτε στο Weather.com για να λάβετε το κλειδί api

Τα Thingspeak χρειάζονται για τη μεταφόρτωση των δεδομένων σας και την παρακολούθηση των τάσεων και των αξιών

Ο καιρός είναι απαραίτητος για να λάβετε δεδομένα πρόβλεψης.

Εντάξει, τελικά χρειάζεστε τη δημιουργία αρχείου services.json με το ακόλουθο περιεχόμενο

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," ενεργοποιεί τον ύπνο ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}, {" service ":" BME280Controller "," name ":" BME "," enableed ": true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr":-3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "enabled": true, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = el -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "enabled": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "thingspea kapi "}, {" enabled ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pin ": [27]}]

Αντικαταστήστε το!

  • thingspeakapi με το πλήκτρο api πραγμάτων
  • weatherapi με το κλειδί api καιρού σας
  • γεωκώδικα με την τοποθεσία σας για την οποία θέλετε να λάβετε πρόβλεψη

Στη συνέχεια, προετοιμάστε το δεύτερο αρχείο triggers.json

[{"type": "BMEToWeatherDisplay", "source": "BME", "destination": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Time", "destination": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," προορισμός ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," προορισμός ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "destination": "WeatherDisplay"}, { "type": "LDRToThingSpeak", "πηγή": "LDR", "προορισμός": "ThingSpeak", "ch": 4}]

Και τα δύο αρχεία πρέπει να αναβαθμιστούν στη ρίζα του esp.

Μπορείτε να το κάνετε αυτό μέσω προγράμματος περιήγησης https://192.168.0. XX/browse, όπου https://192.168.0. XX είναι η διεύθυνση IP της συσκευής σας

Μετά τη μεταφόρτωση, το ESP πρέπει να επανεκκινήσει και όλα έγιναν σωστά. Το Esp θα εμφανίσει τη σωστή οθόνη όπως στην παραπάνω φωτογραφία και στο βίντεο

Βήμα 6: Συντονισμός και κατανάλωση ενέργειας

Συντονισμός και κατανάλωση ενέργειας
Συντονισμός και κατανάλωση ενέργειας

Χρησιμοποιώ τη συσκευή μου με σύνδεση στο ηλιακό πάνελ και για να είμαι σίγουρος ότι μπορεί να λειτουργήσει "άπειρα"

Η κατανάλωση ενέργειας είναι σημαντική και μετά από πολλά πειράματα χρησιμοποίησα δύο μεγάλα κόλπα

Μειώστε την κατανάλωση του LED βάσης της οθόνης TFT

Σύμφωνα με τη μέτρηση τρώει 15-20 mA (πολύ), επομένως έχω χρησιμοποιήσει τακτικές με ανιχνευτή κίνησης. Λειτουργεί τέλεια Ανιχνευτές κίνησης που μπορούν να αναγνωρίσουν οποιαδήποτε ανίχνευση έως 8-10 μέτρα και να αυξήσουν την τάση στο καλώδιο σήματος. Αυτό ανοίγει ένα τρανζίστορ και το backround Led λαμβάνει ισχύ. Συνήθως ο ανιχνευτής διατηρεί αυτήν την κατάσταση έως και 10 δευτερόλεπτα, κάτι που είναι περισσότερο από αρκετό για να δείτε την οθόνη, αλλά αν συνεχίσετε τις κινήσεις, το σήμα είναι ακόμα υψηλό και η λυχνία LED ανάβει.

Μια τέτοια προσέγγιση μου δίνει μια μεγάλη οικονομία, χωρίς επιπλέον εφέ, δεν αντιμετωπίζω κανένα πρόβλημα να βλέπω την οθόνη μου όταν θέλω

2. Μειώστε την κατανάλωση ενέργειας με ESP32

Όταν το ESP είναι συνδεδεμένο σε WiFi, τρώει συνεχώς 7-10 mA, μιλάω για σταθερό χρόνο, όχι εκκίνηση και πρώτη σύνδεση. Αυτό είναι αποδεκτό εάν βλέπετε πάντα την πραγματική ημερομηνία και ώρα, αποκτήστε πρόσβαση στο σύστημά σας από το οικιακό κιτ της Apple

Για την ηλιακή μου ενέργεια και το χειμώνα έπρεπε να ταιριάζει με έργα χωρίς πρόσθετες πηγές ενέργειας, Ως εκ τούτου, αποφάσισα να βάζω περιοδικά το ESP32 στη λειτουργία ύπνου (το φαγητό είναι μικρότερο από 1 mA). Αυτό είναι εντάξει για μένα, για παράδειγμα το ESP κοιμάται 20 λεπτά, από το ξύπνημα, η ανανέωση της οθόνης (πραγματικά δεδομένα και πρόβλεψη) στέλνει δεδομένα στην ομιλία πραγμάτων και ξανά στην κατάσταση ύπνου

Τα μειονεκτήματα είναι:

  • Η οθόνη καιρού εμφανίζει παλιές τιμές χρόνου
  • Ο σταθμός δεν είναι προσβάσιμος από το πρόγραμμα περιήγησης και το Apple Home Kit κατά τη διάρκεια του ύπνου

Εναπόκειται σε εσάς να αποφασίσετε τι είναι πιο σημαντικό, μπορείτε απλά να το επαναδιαμορφώσετε.

Ρίξτε μια ματιά στο αρχείο και τη γραμμή services.json

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," ενεργοποιεί τον ύπνο ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"ενεργοποιεί τον ύπνο": η αλήθεια επιτρέπει τον ύπνο καθόλου, αν τοποθετηθεί εκεί ψευδής ή αφαιρεθεί η παράμετρος (η προεπιλογή είναι ψευδής) Το ESP δεν θα κοιμηθεί ποτέ

"sleepinterval": 900000 αυτό είναι millis, ή 15 λεπτά, σημαίνει ότι κάθε 15 λεπτά ESP θα ξυπνάει και θα κάνει απαραίτητο προσωπικό

Έτσι, τώρα όλοι μπορούν εύκολα να παίξουν σύμφωνα με την ανάγκη

Βήμα 7: Συντονισμός αισθητήρων

Για να ελαχιστοποιήσετε την επίδραση της εσωτερικής θέρμανσης στον αισθητήρα θερμοκρασίας BME280

Firts Έκανα σωλήνα γύρω από τον αισθητήρα και τις τρύπες. Η μετακίνηση στη λειτουργία μου όταν η λυχνία LED είναι κανονικά σβηστή και το ESP κοιμάται δεν είναι τόσο σημαντική. Σε άλλες περιπτώσεις, ο αισθητήρας BME280 πρέπει να μετακινηθεί κάπου για να αποκλείσει την επίδραση της εσωτερικής θέρμανσης. Όσο μικρή επιρροή βρήκα, υπάρχουν δύο παράμετροι που πρέπει να αντισταθμιστούν

"hum_corr": 10.0

που σημαίνει ότι αυτές οι τιμές θα προστεθούν μετά τη μέτρηση

Το δεύτερο είναι η βαθμονόμηση της μέτρησης της τάσης της μπαταρίας, {"enabled": "true", "interval": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0,0

"cvalmax": 7.2

είναι για αυτούς τους σκοπούς, επειδή η τάση μετράται μετά από διαχωριστές αντιστάσεων και συγκρίνεται με 3,3 V, παίζοντας με την τιμή cvalmax μπορείτε να φτάσετε στην ακριβή ρύθμιση τάσης με την πολύμετρο τιμή σας

Βήμα 8: Προσθήκη συσκευής στο Apple Home Kit

Προσθήκη συσκευής στο Apple Home Kit
Προσθήκη συσκευής στο Apple Home Kit

Τέλος, όταν η συσκευή σας λειτουργεί σωστά, μπορεί να προστεθεί στο Apple Home Kit και θα μπορείτε να δείτε

αισθητήρες στην αρχική οθόνη της Apple.

Πρώτα χρειάζεστε επανεκκίνηση της συσκευής, καθώς από τη στιγμή που ξεκίνησε η συσκευή δεν θα κοιμηθεί για 20 λεπτά είναι περισσότερο από αρκετό

Στη συνέχεια, ανοίξτε την εφαρμογή Home Kit στη συσκευή σας iOS και επιλέξτε ή δημιουργήστε νέο Home1. Πατήστε Προσθήκη (+)

2. Επιλέξτε Προσθήκη αξεσουάρ.

3. Πατήστε Δεν έχω κωδικό ή δεν είναι δυνατή η σάρωση (θα προστεθεί περαιτέρω σάρωση)

4. αν όλα πάνε καλά θα πρέπει να δείτε τη νέα σας συσκευή esp σε μια λίστα (δείτε την εικόνα)

5. Επιλέξτε συσκευή και επιβεβαιώστε την προσθήκη χωρίς επίσημη πιστοποίηση

6. Πληκτρολογήστε τον κωδικό πρόσβασης 11111111

7. Αυτό Όλα! Θα πρέπει να δείτε τη συσκευή να συνδυάζεται με επιτυχία, διαφορετικά ξεκινήστε ξανά τη διαδικασία αντιστοίχισης..

Με βάση αυτή τη ρύθμιση, θα δείτε δύο συσκευές στο Apple

1. Αισθητήρας θερμοκρασίας & Αισθητήρας Hum, προχωρώντας βαθιά θα εμφανίζει τιμές σε πλήρη οθόνη

2. Αισθητήρας φωτός:) Στην πραγματικότητα η Apple είναι σε θέση να δείχνει ligth Ambience, αλλά όχι Voltage, επομένως η τάση της μπαταρίας εμφανίζεται σε Lux

Βήμα 9: OTA: Ενημερώσεις μέσω του αέρα

Πριν ξεκινήσετε οποιαδήποτε ενημέρωση, είναι καλύτερο να κάνετε επανεκκίνηση του ESP32, όπως αναφέρθηκε προηγουμένως δεν θα κοιμηθεί τα πρώτα 20 λεπτά

Υπάρχουν δύο δυνατότητες ενημέρωσης

  1. Διαμόρφωση χρησιμοποιώντας https://192.168.0. XX/browse μπορείτε να αποκτήσετε πρόσβαση στο σύστημα αρχείων σας στο ESP και να αλλάξετε αρχεία διαμορφώσεων
  2. Μπορείτε να ενημερώσετε πλήρως το υλικολογισμικό. Για τους σκοπούς αυτούς, πρέπει πρώτα να δημιουργήσετε ένα νέο. Μπορεί να γίνει μέσω Arduino ή Visual Studio IDE. Στη συνέχεια, πληκτρολογήστε το πρόγραμμα περιήγησης https://192.168.0. XX/update, επιλέξτε το υλικολογισμικό σας και πατήστε ενημέρωση. Περιμένετε μέχρι να ολοκληρωθεί η διαδικασία και θα λάβετε την απάντηση ΟΚ, διαφορετικά επαναλάβετε το βήμα ξανά

Συνιστάται: