Πίνακας περιεχομένων:
- Βήμα 1: Τι χρειάζεστε…
- Βήμα 2: Ξεκινήστε με την εγκατάσταση υλικού αισθητήρα BME 280
- Βήμα 3: Κωδικός BME 280 Nodemcu ESP8266
- Βήμα 4: Επιτυχής συσκευή αισθητήρα BME280 + Αντιμετώπιση προβλημάτων
- Βήμα 5: Ρύθμιση υλικού Soilsensor
- Βήμα 6: Κωδικός DS18B20 Nodemcu ESP8266
- Βήμα 7: Επιτυχία Soensensor και Αντιμετώπιση προβλημάτων
- Βήμα 8: Τέλος
Βίντεο: Αισθητήρες επέκτασης Nodemcu ESP8266 για Weewx: 8 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Αυτό είναι ένα οδηγό για την προσθήκη αισθητήρων στο λογισμικό μετεωρολογικών σταθμών weewx.
Εάν δεν έχετε weewx, μπορείτε να μάθετε κάποια πράγματα σε αυτό το σεμινάριο.
χρειάζεστε κάποιες βασικές γνώσεις για τον κώδικα Arduino και πώς να ανεβάζετε σε μια συσκευή.
Μπορείτε να βρείτε weewx πληροφορίες εδώ:
Αυτό που χτίζετε είναι 2 συσκευές:
1 Συσκευή αποστολής θερμοκρασίας και υγρασίας στο λογισμικό weewx.
1 Συσκευή αποστολή θερμοκρασιών εδάφους διαφορετικών βαθών εδάφους στο λογισμικό weewx.
Η πρώτη μας συσκευή είναι ένας αισθητήρας BME 280.
Η δεύτερη συσκευή μας είναι μια αλυσίδα 3 αισθητήρων DS18B20 Temperatur. (Μπορείτε να προσθέσετε περισσότερα αν θέλετε).
Ας αρχίσουμε:
Βήμα 1: Τι χρειάζεστε…
Weewx σε λειτουργία + πρόσβαση σε διακομιστή weewx. (για παράδειγμα ένα βατόμουρο PI 3).
2 μονάδες Nodemcu ESP8266
3 ή περισσότεροι αισθητήρες DS18B20
1 Αισθητήρας BME 280
1 σωλήνας αλουμινίου ή παρόμοιος με διάμετρο 10mm και 1mm πάχος τοιχώματος και περ. Μήκος 1 μέτρο
1 Αδιάβροχη θήκη με σφιγκτήρα καλωδίου και παξιμάδι ασφάλισης.
1 Πηγή ισχύος 5V (Φορτωτής κινητής τηλεφωνίας για παράδειγμα).
Κάποια σύρματα και υλικά συγκόλλησης.
Βρίσκετε αισθητήρες BME280 και μονάδες Nodemcu στο ebay.
Για σωλήνες αλουμινίου επιλέγω ένα τοπικό κατάστημα υλικού
Για την DS18B20 και την αδιάβροχη θήκη χρησιμοποιώ το www.reichelt.de
www.reichelt.de/DS-18B20/3/index.html?ACTI…
www.reichelt.de/EL-FK-110/3/index.html?ACT…
και η ομάδα καλωδίων με παξιμάδια ασφάλισης
www.reichelt.de/Kabelverschraubungen-Bopla…
Για το bme280 μπορείτε προαιρετικά να χρησιμοποιήσετε ένα δοχείο διακλάδωσης
www.reichelt.de/Installationsmaterial/EL-D…
Βήμα 2: Ξεκινήστε με την εγκατάσταση υλικού αισθητήρα BME 280
Συγκολλήστε τη λωρίδα στο BME280.
Στη συνέχεια, συνδέστε το BME στο Nodemcu:
BME VIN έως 3,3V
BME GND σε GND
SCL έως D4
SDA έως D3
Εάν θέλετε, μπορείτε να βάλετε τη συσκευή σε ένα περίβλημα, αλλά βεβαιωθείτε ότι υπάρχουν κάποιες τρύπες στο περίβλημα, έτσι ώστε οι τιμές υγρασίας και θερμοκρασίας να είναι σωστές.
Βήμα 3: Κωδικός BME 280 Nodemcu ESP8266
Για τον κώδικα μπορείτε να χρησιμοποιήσετε τα αποθετήρια github μου:
github.com/Landixus/BME280_TO_SERVER_WEEWX
Το αρχείο ino χρειάζεται κάποια ένθετα από εσάς:
Η διεύθυνση IP του διακομιστή weewx ή της διεύθυνσης URL σας
και τη διαδρομή όπου έχετε το αρχείο php, βεβαιωθείτε ότι η περιοχή είναι εγγράψιμη.
επιλέγω το public_html dir επειδή είναι διακομιστής σπιτιού.
εάν θέλετε να κλωνοποιήσετε τα αποθετήρια git και να έχετε εγκατεστημένο το git στον διακομιστή σας, μπορείτε να κλωνοποιήσετε με την εντολή:
"git clone" https://github.com/Landixus/BME280_TO_SERVER_WEEWX"
Τώρα πρέπει να κάνουμε κάποια πράγματα στον διακομιστή weewx.
Πρέπει να κάνετε τις διαδρομές προς τις ρυθμίσεις σας!
σε
/home/weewx/public_html
δημιουργία δεδομένων φακέλου
στο φάκελο δεδομένων δημιουργήστε ένα bme.txt για παράδειγμα με:
nano bme.txt
το αρχείο πρέπει να είναι κενό.
καταστήστε εγγράψιμο με:
chmod -R 777 bme.txt
(δεν το κάνετε ποτέ σε διακομιστή που είναι προσβάσιμος στο Διαδίκτυο!)
στο φάκελο
/home/weewx/public_html
βάλατε το bme.php του github repo μου.
Το κόλπο είναι ότι το αρχείο INO στέλνει τιμές στο bme.php και το bme.php γράφει τα δεδομένα στο bme.txt
Στη συνέχεια πρέπει να προσθέσουμε την υπηρεσία σε weewx
βάλτε το bme.py στο φάκελο
/home/weewx/bin/user
ανοίξτε το weewx.conf στο φάκελο
/home/weewx
είναι πάντα καλό να έχετε αντίγραφο ασφαλείας πριν επεξεργαστείτε αυτό το αρχείο!
κατεβείτε στη γραμμή Engine και κάντε τη γραμμή να μοιάζει με τη δική μου:
[Μηχανή]
# Αυτή η ενότητα καθορίζει τις υπηρεσίες που πρέπει να εκτελεστούν. Αυτοί είναι
# ομαδοποιούνται ανά τύπο και τη σειρά υπηρεσιών σε κάθε ομάδα
# καθορίζει τη σειρά με την οποία θα εκτελούνται οι υπηρεσίες.
data_services = user.pond. PondService, user.bme.bme
επανεκκίνηση του weewx με:
sudo /etc/init.d/weewx στάση
sudo /etc/init.d/weewx έναρξη
με την εντολή
ουρά -f/var/log/syslog
μπορείτε να αναζητήσετε στο αρχείο καταγραφής για σφάλματα ή επιτυχία, να αναζητήσετε έξοδο bme: βρέθηκε τιμή…
Δώστε στον διακομιστή σας λίγα λεπτά για να δημιουργήσει, στο "my" weewx.conf κάθε 5 λεπτά έρχεται μια έξοδος.
Εάν έχετε μήνυμα σφάλματος, ελέγξτε τις διαδρομές σας.
Εάν έχετε τιμές, μπορείτε να μεταβείτε για να τις εμφανίσετε στην ιστοσελίδα:
ανοιχτό δέρμα. conff μέσα
/home/weewx/skins/Standard
παω σε:
# Αυτό είναι μάλλον συγκεκριμένο για τον σταθμό μου! Πρόσθεσε
extraTemp3 = BME1 TemperatureextraHumid1 = BME1 Υγρασία
αποθηκεύστε το αρχείο και ανοίξτε στον ίδιο φάκελο
index.html.tmpl
αναζητήστε μια γραμμή:
#if $ day.extraTemp..
#τέλος εαν
μετά το πρώτο #τέλος, αν βρείτε, τοποθετήστε τον αισθητήρα BME με:
^^ συγνώμη αλλά δεν είναι δυνατόν να το θέσω ως κείμενο:(αποθηκεύστε το αρχείο και βγείτε.
δεν υπάρχει ανάγκη επανεκκίνησης του weewx.
Τώρα πρέπει να τροφοδοτήσετε το NODEMCU ESP8266 με το αρχείο Arduino.
Μην ξεχάσετε να ρυθμίσετε το wifi και τις διευθύνσεις σας στο αρχείο.
Μετά τη φόρτωση, ελέγξτε τη σειριακή έξοδο για σφάλματα.
Μετά από μια σύντομη περίοδο θα πρέπει να δείτε τις τιμές στον ιστότοπό σας weewx.
Βήμα 4: Επιτυχής συσκευή αισθητήρα BME280 + Αντιμετώπιση προβλημάτων
Μερικές συμβουλές για εσάς:
Ανοίξτε περισσότερες από 1 κονσόλες μέσω στόκου
στην 1 κονσόλα κάντε τις αλλαγές σας και στην άλλη κονσόλα διαβάστε το syslog σας ζωντανά με:
ουρά -f/var/log/syslog
Αν έχετε σφάλμα, κοιτάξτε πρώτα το αρχείο καταγραφής σας.
Η έξοδός σας πρέπει να μοιάζει με τη δική μου:
Βήμα 5: Ρύθμιση υλικού Soilsensor
Για τον αισθητήρα DS18B20 πρέπει να φτιάξουμε ένα σύστημα διαύλου με μερικά καλώδια και συγκόλληση.
Ελέγξτε το DS18B20
ΔΕΔΟΜΕΝΑ, GND, VCC
Μεταξύ VCC και DATA χρειάζεστε αντίσταση 4.7K. Αρκεί αν έχετε την αντίσταση στο πρώτο DS18B20
Τα άλλα DS18B20 είναι παράλληλα μεταξύ τους.
Μετρήστε το μήκος για τις ανάγκες σας. Συγκολλήστε μια αλυσίδα μαζί, έχω ασφαλίσει τις ακίδες με συρρικνωμένο σωλήνα.
Για ΔΟΚΙΜΗ συνδέετε τα δεδομένα στο D3 και το VCC στο VCC (3.3V) και το GND στο GND.
Για την επιλογή βαθύ ύπνου πρέπει να συνδέσετε μια γέφυρα μεταξύ RST και D0 (GPIO16)
Δεν πρέπει να βάζετε την αλυσίδα στο σωλήνα αλουμινίου τώρα, κάντε τις δοκιμές σας πριν!
Βήμα 6: Κωδικός DS18B20 Nodemcu ESP8266
Για τον κώδικα μπορείτε να χρησιμοποιήσετε τα αποθετήρια GITHUB μου:
github.com/Landixus/multipleDS18B20WeeWX
Επίσης, το αρχείο ino χρειάζεται κάποια ένθετα από εσάς: Η διεύθυνση IP του διακομιστή weewx ή η διεύθυνση URL και η διαδρομή όπου έχετε τοποθετήσει το αρχείο php, βεβαιωθείτε ότι η περιοχή είναι εγγράψιμη, επιλέγω το public_html dir επειδή είναι διακομιστής οικίας.
Εάν θέλετε να κλωνοποιήσετε τα αποθετήρια git και να έχετε εγκατεστημένο το git στον διακομιστή σας, μπορείτε να κλωνοποιήσετε με την εντολή git clone
Τώρα πρέπει να κάνουμε κάποια πράγματα που όλα λειτουργούν στον διακομιστή weewx.
Πρέπει να κάνετε τις διαδρομές προς τις ρυθμίσεις σας στο
/home/weewx/public_html
δημιουργήστε ένα φάκελο "δεδομένα" στο φάκελο δεδομένων δημιουργήστε ένα ds18b20.txt για παράδειγμα nano ds18b20.txt το txt θα πρέπει να είναι κενό. κάντε το εγγράψιμο με chmod -R 777 ds18b20.txt (δεν το κάνετε ποτέ σε διακομιστή που είναι προσβάσιμος στο Διαδίκτυο!) στο φάκελο/home/weewx/public_html βάζετε το ground.php του github rep μου. Το κόλπο είναι ότι το αρχείο INO στέλνει τιμές στο ground.php και το ground.php γράφει τα δεδομένα στο ds18b20.txt στο επόμενο πρέπει να προσθέσουμε την υπηρεσία στο weewx βάζουμε το ds18b20.py στο φάκελο/home/weewx/bin/ χρήστης
ανοίξτε το weewx.conf στο φάκελο /home /weewx
είναι πάντα καλό να έχετε αντίγραφο ασφαλείας πριν επεξεργαστείτε αυτό το αρχείο!
κατεβείτε στη γραμμή:
[Μηχανή]
# ομαδοποιούνται ανά τύπο και τη σειρά των υπηρεσιών σε κάθε ομάδα
# καθορίζει τη σειρά με την οποία θα εκτελούνται οι υπηρεσίες.
prep_services = weewx.engine. StdTimeSynch, data_services = user.pond. PondService, user.bme.bme, user.ds18b20.ds18b20 προσθέστε το inline μετά από κόμμα
Το "user.ds18b20.ds18b20" θα πρέπει να μοιάζει με το πάνω μέρος ^^
επανεκκίνηση του weewx με:
sudo /etc/init.d/weewx στάση
sudo /etc/init.d/weewx έναρξη
με την εντολή tail -f/var/log/syslog μπορείτε να αναζητήσετε στο αρχείο καταγραφής για σφάλματα ή επιτυχία αναζητήστε έξοδο ds18b20: found value of Δώστε στον διακομιστή σας μερικά λεπτά για δημιουργία, στο weewx.conf μου κάθε 5 λεπτά βγαίνετε βάζω. Εάν έχετε μήνυμα σφάλματος, ελέγξτε τις διαδρομές σας. Εάν έχετε τιμές, μπορείτε να μεταβείτε για να το εμφανίσετε στη σελίδα: άνοιγμα
skin.conf in/home/weewx/skins/Standard πηγαίνετε στο:
# Αυτό είναι μάλλον συγκεκριμένο για τον σταθμό μου!
Προσθήκη
χώμαTemp1 = DS18B201
χώμαTemp2 = DS18B202
χώμαTemp3 = DS18B203
αποθηκεύστε το αρχείο και ανοίξτε στον ίδιο φάκελο index.html.tmpl αναζητήστε μια γραμμή:
#if $ day.extraTemp..…
#τέλος εαν
μετά το πρώτο #τέλος αν βρείτε βάλτε τον αισθητήρα GroundSensor με:
^^ συγγνώμη αλλά δεν είναι δυνατό να το θέσουμε ως κείμενο: (αποθηκεύστε το αρχείο και βγείτε. δεν χρειάζεται επανεκκίνηση του weewx. Τώρα πρέπει να τροφοδοτήσετε το NODEMCU ESP8266 με το αρχείο Arduino.
Μην ξεχάσετε να ρυθμίσετε το wifi και τις διευθύνσεις σας στο αρχείο. Μετά τη φόρτωση, ελέγξτε τη σειριακή έξοδο για σφάλματα.
Μετά από μια σύντομη περίοδο θα πρέπει να δείτε τις τιμές στον ιστότοπό σας weewx.
Βήμα 7: Επιτυχία Soensensor και Αντιμετώπιση προβλημάτων
Εάν εργάζεστε και βλέπετε τιμές, βγείτε έξω και βάλτε το σωλήνα αλουμινίου στο έδαφος.
Ένας καλός τρόπος είναι να βάλετε ζεστή κόλλα σε 1 πλευρά του σωλήνα και στη συνέχεια να πιέσετε τον σωλήνα μαζί, τότε έχετε ωραία κορυφή για να το φέρετε πιο εύκολα στο έδαφος.
Βάλτε πρώτα το σωλήνα σας στο έδαφος, μπορείτε να σφυρίξετε μαλακά με μια ξύλινη σανίδα.
Εάν ο σωλήνας είναι αρκετά βαθύς, μπορείτε να βάλετε την αλυσίδα ds18b20 και τα καλώδια τροφοδοσίας στο αδιάβροχο κουτί.
Βεβαιωθείτε ότι το wifi σας λειτουργεί σε αυτό το μέρος!
Αν δεν ξέρετε τι βαθύ αισθητήρα είναι, υπάρχουν 2 δυνατότητες.
Δοκιμαστική φάση έβαλα 1 ds18b20 ανάμεσα στο δάχτυλό σας, η θερμοκρασία ανεβαίνει υψηλότερα για αυτό.
Όταν ο σωλήνας είναι ήδη στο έδαφος, τότε κανονικά είναι η Υψηλότερη τιμή το βαθύτερο σημείο.
Βήμα 8: Τέλος
Μόνο το τέλος
Δημοσιεύστε τις ερωτήσεις σας και δείξτε τις βασικές σας θερμοκρασίες στα σχόλια!
Για περισσότερη βοήθεια, εγγραφείτε στις weewx ομάδες Google στο:
groups.google.com/forum/#!forum/weewx-user
Συνιστάται:
3.3V Mod για υπερηχητικούς αισθητήρες (προετοιμασία HC-SR04 για λογική 3.3V σε ESP32/ESP8266, Particle Photon, κ.λπ.): 4 βήματα
3.3V Mod για υπερηχητικούς αισθητήρες (προετοιμάστε το HC-SR04 για λογική 3.3V στο ESP32/ESP8266, Particle Photon, κ.λπ.): TL; DR: Στον αισθητήρα, κόψτε το ίχνος στην καρφίτσα Echo και, στη συνέχεια, συνδέστε τον ξανά χρησιμοποιώντας ένα διαχωριστής τάσης (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND). Επεξεργασία: Υπήρξε κάποια συζήτηση για το αν το ESP8266 είναι πραγματικά 5V ανεκτικό στο GPIO σε
Φθηνοί αισθητήρες εγγύτητας IR για ρομπότ Arduino: 6 βήματα (με εικόνες)
Φθηνοί αισθητήρες εγγύτητας IR για ρομπότ Arduino: Αυτοί οι αισθητήρες εγγύτητας υπέρυθρης ακτινοβολίας είναι μικροί, εύκολοι στην κατασκευή και εξαιρετικά φθηνοί! Λειτουργούν εξαιρετικά σε ρομπότ, για παρακολούθηση γραμμών, ανίχνευση άκρων και ελάχιστη απόσταση. Είναι επίσης πολύ, πολύ φθηνά
Φθηνοί αισθητήρες χτυπήματος για ρομπότ Arduino: 4 βήματα (με εικόνες)
Φθηνοί αισθητήρες χτυπήματος για ρομπότ Arduino: Χρειάζεστε φθηνούς αισθητήρες χτυπήματος με εύκολη πηγή για την εξαγορά του ρομπότ σας. Εννοώ, το έργο Arduino; Αυτοί οι μικροί αισθητήρες είναι εύχρηστοι, εύχρηστοι και εύκολοι στο πορτοφόλι (17 σεντς το καθένα!), Και λειτουργεί υπέροχα για απλή ανίχνευση εμποδίων σε μικροελεγκτή-ba
Φτηνό πρόγραμμα επέκτασης εύρους WiFi για IoT: 8 βήματα
Φτηνό WiFi Range Extender για IoT: Πώς να φτιάξετε το δικό σας πρόγραμμα επέκτασης WiFi από μια φθηνή μονάδα WiFi ESP8266 $ 2- $ 8 $ *** EDIT: Από τη συγγραφή αυτού του οδηγού, το υλικολογισμικό έχει βελτιωθεί σημαντικά, με την πρόσθετη σελίδα ρυθμίσεων GUI (σαν κανονικός δρομολογητής), firewall, power man
Προετοιμάστε μερικούς πλεονάζοντες αισθητήρες PIR για ρομποτική: 3 βήματα (με εικόνες)
Προετοιμάστε μερικούς πλεονάζοντες αισθητήρες PIR για ρομποτική: Βρήκα ένα σωρό αισθητήρες PIR στο eBay. Είναι τοποθετημένα σε ένα pcb που δημιουργήθηκε για σετ hands free για κινητά τηλέφωνα. Μου αρέσει να περιγράφω εδώ πώς να προετοιμάσετε τον αισθητήρα για χρήση σε έργα ρομποτικής. Εάν δεν γνωρίζετε τι είναι ο αισθητήρας PIR