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

Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL): 5 βήματα (με εικόνες)
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL): 5 βήματα (με εικόνες)

Βίντεο: Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL): 5 βήματα (με εικόνες)

Βίντεο: Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL): 5 βήματα (με εικόνες)
Βίντεο: 31. Εφαρμογές Λογισμικού Ανοικτού Κώδικα 2024, Νοέμβριος
Anonim
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL)
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL)
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL)
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL)
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL)
Καταγραφέας δεδομένων ανοιχτού κώδικα (OPENSDL)

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

Αυτό έχει ως αποτέλεσμα ένα προσαρμοσμένο και προσιτό σύστημα που επιτρέπει στους ενδιαφερόμενους να πραγματοποιούν τις μετρήσεις που απαιτούνται για την αξιολόγηση της απόδοσης των κτιρίων με αποτελεσματικό και προσιτό τρόπο, καταγράφοντας ταυτόχρονα πολλαπλές περιβαλλοντικές παραμέτρους. Το Open Source Logger Data (OPENSDL) που αναπτύχθηκε συγκρίθηκε με έναν καταγραφέα δεδομένων HOBO U12-012. Αυτό το εμπορικά διαθέσιμο αντίστοιχο σύστημα, μπορεί να μετρήσει 3 παραμέτρους, δηλαδή- θερμοκρασία, RH και φωτεινότητα, και ένα εξωτερικό κανάλι για άλλους τύπους αισθητήρων. Μια διαφορετική συσκευή ανίχνευσης θα απαιτηθεί για τη μέτρηση οποιασδήποτε άλλης παραμέτρου. Τα χαρακτηριστικά των παραμέτρων που πρέπει να μετρηθούν περιορίζονται στο ιδιόκτητο υλικό και λογισμικό, το οποίο περιορίζει το σύστημα στη μέτρηση ορισμένων παραμέτρων με συγκεκριμένες ακρίβειες. Ένα HOBO U12-012 κοστίζει περίπου 13, 000 (185 δολάρια ΗΠΑ), ενώ το OPENSDL κοστίζει, 4, 605 (66 δολάρια ΗΠΑ), που είναι σχεδόν το ένα τρίτο του εμπορικού αντίστοιχου.

Ένας καταγραφέας δεδομένων ανοιχτού κώδικα για παρακολούθηση θερμοκρασίας, RH και επιπέδων φωτισμού (φωτεινότητα) με τη βοήθεια ενός Arduino Uno Αυτό είναι ένα DIY για την ανάπτυξη του καταγραφέα δεδομένων OPENSDL.

Απαιτούμενος χρόνος: 2-3 ώρες για συγκόλληση, 5 ώρες για συσκευασία (4 ώρες - τρισδιάστατη εκτύπωση και 1 ώρα για κοπή με λέιζερ) Απαιτούμενες δεξιότητες: Συγκόλληση, λίγες ή καθόλου γνώσεις προγραμματισμού και ηλεκτρονικών

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

  1. Arduino Uno με καλώδιο
  2. Ασπίδα καταγραφής δεδομένων
  3. Μπαταρία κυττάρων CR1220
  4. BME280 πίνακας διαρροής αισθητήρα πίεσης υγρασίας θερμοκρασίας
  5. Πίνακας διάσπασης αισθητήρα φωτός TSL2561
  6. ESP01-8266 μονάδα Wi-Fi
  7. RJ-9 αρσενικός και θηλυκός σύνδεσμος
  8. Ασπίδα στοίβαξης κεφαλίδων για το Arduino
  9. Κάρτα μνήμης SD (οποιαδήποτε χωρητικότητα)
  10. Διανυσματικός πίνακας (26 x 18 οπές)
  11. 8 μπαταρίες AA Θήκη μπαταρίας

Απαιτούμενα εργαλεία:

  • Συγκολλητικό σίδερο (35W)
  • Σύρμα συγκόλλησης
  • Κόφτης καλωδίων
  • Εργαλείο πτύχωσης
  • Πολύμετρο

Απαιτείται λογισμικό: Arduino IDE (1.0.5 ή νεότερο)

Χρησιμοποιούνται βιβλιοθήκες Arduino:

  • Σύρμα βιβλιοθήκη
  • Βιβλιοθήκη SparkFun TSL2561
  • Βιβλιοθήκη πολυαισθητήρων Cactus BME280
  • Βιβλιοθήκη καρτών SD
  • Βιβλιοθήκη SPI
  • Βιβλιοθήκη RTC

Σημείωση: Ο αισθητήρας BME280 είναι ένας πολύ ακριβής αισθητήρας θερμοκρασίας, σχετικής υγρασίας και πίεσης της Bosch. Ομοίως, το DS1307 είναι ένα ακριβές ρολόι πραγματικού χρόνου από το Maxim και το TSL2561 είναι ένας ακριβής αισθητήρας φωτός. Υπάρχουν λιγότερο δαπανηρές και λιγότερο ακριβείς εναλλακτικές για αυτά τα προϊόντα, αλλά αυτό το σεμινάριο απευθυνόταν σε άτομα που ενδιαφέρονταν να συλλέξουν δεδομένα για την αξιολόγηση της απόδοσης του κτιρίου και τις εφαρμογές παρακολούθησης κτιρίων που απαιτούν υψηλή ακρίβεια και ακρίβεια. Αυτό σημαίνει ότι οποιαδήποτε συγκεκριμένη εγκατάσταση υλικού και ρύθμιση λογισμικού (βιβλιοθήκες, κωδικός προγράμματος) προοριζόταν αποκλειστικά για τα καθορισμένα προϊόντα μόνο.

Βήμα 1: Συναρμολόγηση

Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση

Η ασπίδα καταγραφής δεδομένων μπορεί εύκολα να στοιβάζεται στην κορυφή του πίνακα Arduino Uno. Αυτή η ασπίδα παρέχει τις δυνατότητες καταγραφής δεδομένων (διατήρηση χρόνου και αποθήκευση δεδομένων). Η ασπίδα έπρεπε να στοιβάζεται. Μια μπαταρία νομισμάτων CR1220 έπρεπε να τοποθετηθεί στη στρογγυλή υποδοχή που παρέχεται για να διατηρεί το ρολόι σε λειτουργία ακόμη και όταν το Arduino είναι απενεργοποιημένο. Η κάρτα μνήμης SD πρέπει να τοποθετηθεί στην παρεχόμενη υποδοχή κάρτας. Μια μοναδική προσαρμοσμένη ασπίδα αναπτύχθηκε χρησιμοποιώντας θηλυκές ακίδες σύνδεσης RJ-9 και κεφαλίδες στοίβαξης ασπίδας Arduino. Οι κατάλληλες κεφαλίδες συγκολλήθηκαν στις κατάλληλες θέσεις έτσι ώστε η ασπίδα να ταιριάζει απόλυτα στον πίνακα Arduino. Το Arduino έχει 18 ακίδες στη μία πλευρά και 14 ακίδες στην άλλη πλευρά. Οι κεφαλίδες με τον ίδιο αριθμό καρφιτσών χρησιμοποιήθηκαν στην ίδια απόσταση (18 ακίδες μεταξύ τους) όπως στο Arduino. Ο υπόλοιπος επιπλέον χώρος δίπλα στις επικεφαλίδες χρησιμοποιήθηκε για την τοποθέτηση του συνδέσμου RJ-9.

Οι κεφαλίδες ήταν ο καλύτερος τρόπος για να χρησιμοποιήσετε τις απαιτούμενες ακίδες, καθιστώντας τις ακόμα διαθέσιμες για χρήση σε άλλα εξαρτήματα. Οι αισθητήρες που χρησιμοποιούνται ακολουθούν το πρωτόκολλο επικοινωνίας I2C, το οποίο απαιτεί 4 ακίδες από το Arduino, και συγκεκριμένα: SDA (επίσης διαθέσιμο ως Α4), SCL (επίσης διαθέσιμο ως Α5), 3.3V & GND. Τα τέσσερα καλώδια που βγαίνουν από το βύσμα RJ-9 συγκολλήθηκαν σε αυτές τις τέσσερις καρφίτσες κεφαλίδας. Ο αριθμός των απαιτούμενων συνδετήρων RJ-9 εξαρτάται από τον αριθμό των αισθητήρων. Σε αυτό το έργο, χρησιμοποιήθηκαν 3 συνδετήρες RJ-9 (δύο για BME280 και ένας για TSL2561). Τα τέσσερα καλώδια που βγήκαν από το βύσμα RJ-9 ήταν κωδικοποιημένα με χρώμα και κάθε καλώδιο χρώματος ορίστηκε ως ένας συγκεκριμένος πείρος για όλους τους συνδετήρες RJ-9. Πρέπει να σημειωθεί ότι ο κωδικός χρώματος μπορεί να διαφέρει σε διαφορετικά κομμάτια RJ-9. Σε μια τέτοια περίπτωση, πρέπει να σημειωθεί η θέση του καλωδίου στο βύσμα. Ο σύνδεσμος RJ-9, μετά τη συγκόλληση, έγινε για να κολλήσει στη διανυσματική σανίδα χρησιμοποιώντας ένα Feviqwik, έτσι ώστε να στερεωθεί στην επιφάνεια. Αυτές οι συνδέσεις μπορούν να επαληθευτούν χρησιμοποιώντας τη λειτουργία συνέχειας στο πολύμετρο. Όταν βρίσκεται σε κατάσταση συνέχειας, το πολύμετρο πρέπει να δείχνει μηδενική αντίσταση. Συνδέστε έναν από τους ανιχνευτές του πολύμετρου στον κολλημένο πείρο και έναν άλλο αισθητήρα στον πείρο στο εσωτερικό του συνδέσμου RJ-9. Το πολύμετρο πρέπει να εκπέμπει έναν τόνο, πράγμα που σημαίνει ότι οι αρμοί συγκόλλησης είναι σωστοί και οι συνδέσεις έχουν γίνει σωστά. Εάν ο τόνος δεν εκπέμπεται, ελέγξτε τις συνδέσεις συγκόλλησης. Ομοίως, κολλήστε τον σύνδεσμο RJ-9 με τα ίδια καλώδια που συνδέονται με τις ίδιες οπές στις σανίδες διάσπασης του αισθητήρα, δηλαδή A4, A5, 3.3V & GND. Ο αισθητήρας BME280 υποστηρίζει δύο διευθύνσεις I2C, πράγμα που σημαίνει ότι δύο αισθητήρες BME280 μπορούν να συνδεθούν ταυτόχρονα στον ίδιο ελεγκτή. Ενώ το κάνετε αυτό, η διεύθυνση ενός από τους αισθητήρες πρέπει να αλλάξει γεφυρώνοντας τα μαξιλάρια συγκόλλησης στον αισθητήρα. Ένα τσιπ ασύρματης σύνδεσης ESP-01 απαιτούσε τις ακόλουθες συνδέσεις με το Arduino.

ESP-01 --------- Arduino Uno

10 -------------------- TX

11 -------------------- RX

Vcc ---------------- CH_PD

Vcc ------------------- Vcc

GND ----------------- GND

Σημείωση:- Οι πολλαπλές λυχνίες LED στο Arduino Uno αφαιρέθηκαν για τη βελτίωση της διάρκειας ζωής της μπαταρίας. Οι ενδεικτικές λυχνίες LED, RX και TX LED αφαιρέθηκαν θερμαίνοντας τις αρθρώσεις συγκόλλησης και πιέζοντας το LED με λαβίδα.

Βήμα 2: Ρύθμιση IDE και Βιβλιοθηκών

Πριν κάνετε οποιοδήποτε προγραμματισμό, πρέπει να κατεβάσετε το Arduino IDE (Integrated Development Environment). Ο προγραμματισμός έγινε σε αυτήν την πλατφόρμα. Απαιτήθηκαν διαφορετικές βιβλιοθήκες για να αλληλεπιδράσουν με διαφορετικά στοιχεία του OPENSDL. Οι ακόλουθες βιβλιοθήκες χρησιμοποιήθηκαν για τα δεδομένα συστατικά.

Συστατικό ------------------------------------------------- --------------Βιβλιοθήκη

Αισθητήρας θερμοκρασίας & RH BME280 --------------------------------- Cactus_io_BME280_I2C.h

Φωτοανιχνευτής------------------------------------------------ ---------------- SparkFun TSL2561.h

Ρολόι πραγματικού χρόνου ----------------------------------------------- ------------- RTClib.h

Υποδοχή κάρτας SD --------------------------------------------------- ------------- SD.h

Σύνδεση I2C ---------------------------------------------------- ------------- Wire.h

Δεν απαιτείται ξεχωριστή βιβλιοθήκη για επικοινωνία με το ESP01 καθώς ο κώδικας που ανεβαίνει στο Arduino έχει εντολές AT, οι οποίες αποστέλλονται στη σειριακή οθόνη, από όπου το ESP-01 λαμβάνει τις οδηγίες. Έτσι, βασικά, οι εντολές AT με τις οποίες εκτελείται το ESP01, εκτυπώνονται στο Serial Monitor, οι οποίες λαμβάνονται ως εντολή εισόδου από το ESP-01. Για την εγκατάσταση αυτών των βιβλιοθηκών, μετά τη λήψη τους, ανοίξτε το Arduino IDE, μεταβείτε στο Sketch -> Include Library -> Add. Zip βιβλιοθήκη και επιλέξτε τις βιβλιοθήκες που έχετε κατεβάσει.

Βήμα 3: Προγραμματισμός του συστήματος

Προγραμματισμός του συστήματος
Προγραμματισμός του συστήματος

Πριν προγραμματίσετε το OPENSDL, συνδέστε το Arduino με φορητό υπολογιστή. Μετά τη σύνδεση, μεταβείτε στο Εργαλεία -> Θύρα και επιλέξτε τη θύρα COM στην οποία είναι συνδεδεμένο το OPENSDL. Επίσης, βεβαιωθείτε ότι στην περιοχή Εργαλεία -> Πίνακες, είναι επιλεγμένο το Arduino Uno.

Το OPENSDL αναπτύχθηκε για να λειτουργεί σε 2 τρόπους. Στην πρώτη λειτουργία, αποθηκεύει τα δεδομένα στην κάρτα SD στην ασπίδα καταγραφής δεδομένων. Στη δεύτερη λειτουργία, στέλνει τα δεδομένα μέσω διαδικτύου σε έναν ιστότοπο χρησιμοποιώντας ένα τσιπ Wi-Fi ESP-01. Το πρόγραμμα και για τις δύο λειτουργίες είναι διαφορετικό. Αυτές οι γραμμές κώδικα μπορούν να αντιγραφούν και να επικολληθούν στον επεξεργαστή Arduino IDE και να χρησιμοποιηθούν απευθείας. Μόλις μπείτε στον κώδικα, πρέπει να κάνουμε μερικές προσαρμογές σύμφωνα με τις ανάγκες μας:

  1. Αλλάξτε χειροκίνητα την τιμή της καθυστέρησης (1000) στο τέλος του κώδικα για να αλλάξετε το διάστημα καταγραφής. Η τιμή 1000 αντιπροσωπεύει το διάστημα σε χιλιοστά του δευτερολέπτου.
  2. Επεξεργαστείτε τη γραμμή κώδικα που λέει mySensorData = SD.open ("Logged01.csv", FILE_WRITE); και αντικαταστήστε το Logged01 με το όνομα αρχείου του επιθυμητού ονόματος αρχείου. Η επέκταση του αρχείου μπορεί επίσης να αλλάξει τροποποιώντας την επέκταση.csv αμέσως μετά το όνομα του αρχείου.
  3. Η εξίσωση βαθμονόμησης που επιτυγχάνεται με την εύρεση της συσχέτισης μεταξύ του κύριου/αισθητήρα αναφοράς και του BME280 θα ποικίλει με κάθε αισθητήρα. Αντικαταστήστε αυτήν τη γραμμή κώδικα με την εξίσωση για τη βαθμονόμηση των αισθητήρων: Serial.print ((1.0533*t2) -2.2374)-για αισθητήρα με προεπιλεγμένη διεύθυνση (0x77), όπου t2 είναι η τιμή που διαβάζεται από τον αισθητήρα θερμοκρασίας.

Παρέχεται ξεχωριστό πρόγραμμα για τον προγραμματισμό της δεύτερης διαθέσιμης λειτουργίας OPENSDL, που είναι το ασύρματο σύστημα. Το ESP-01 πρέπει να συνδεθεί στο OPENSDL σύμφωνα με τις συνδέσεις όπως εξηγείται στο βήμα #2. Αφού ολοκληρώσετε τις συνδέσεις, συνδέστε το Arduino στο φορητό υπολογιστή και ανεβάστε ένα κενό σκίτσο στο Arduino. Τοποθετήστε το ESP-01 στη λειτουργία ενημέρωσης και ενημερώστε το υλικολογισμικό στην πιο πρόσφατη διαθέσιμη ενημέρωση. Μετά την ενημέρωση, βεβαιωθείτε ότι έχετε συνδέσει τον ακροδέκτη επαναφοράς του Arduino με τον ακροδέκτη 3.3V, ο οποίος παρακάμπτει το πρόγραμμα εκκίνησης του Arduino

Βήμα 4: Κατασκευή

Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα

Ένα περίβλημα για το OPENSDL δημιουργήθηκε για προστασία και βελτίωση της αισθητικής. Τα περιβλήματα αναπτύχθηκαν με τρισδιάστατη εκτύπωση χρησιμοποιώντας υλικό PLA και το περίβλημα για τον μικροελεγκτή αναπτύχθηκε με λέιζερ που έκοψε το φύλλο MDF και κόλλησε τα κομμάτια μεταξύ τους. Τα μοντέλα με τρισδιάστατη εκτύπωση αναπτύχθηκαν χρησιμοποιώντας το λογισμικό SketchUp και τα σχέδια 2D dxf για κοπή με λέιζερ δημιουργήθηκαν με χρήση του AutoCAD.

Για τρισδιάστατη εκτύπωση, τα αρχεία STL που δημιουργήθηκαν με τη χρήση του SketchUp άνοιξαν και ελέγχθηκαν στο λογισμικό Ultimaker Cura 3.2.1. Βεβαιωθείτε ότι χρησιμοποιείται υλικό PLA και ότι το ακροφύσιο του εκτυπωτή που χρησιμοποιείται είναι για εκτύπωση 0,4 mm. Η πλάκα κατασκευής του 3D εκτυπωτή ενδέχεται να απαιτεί κόλλα για να κολλήσει το τρισδιάστατο εκτυπωμένο αντικείμενο. Αλλά όταν ολοκληρωθεί η εκτύπωση, η κόλλα δημιουργεί μια ισχυρή πρόσφυση μεταξύ του εκτυπωμένου αντικειμένου και της πλάκας κατασκευής.

Βήμα 5: Κωδικός

Ο κώδικας (αρχεία.ino) έχει δημιουργηθεί για να λειτουργεί στο λογισμικό Arduino IDE. Εδώ είναι ο σύνδεσμος προς τη σελίδα μου στο Github για τον κώδικα και άλλες λεπτομέρειες.

github.com/arihant93/OPENSDL

Μη διστάσετε να κάνετε ερωτήσεις σχετικά με το έργο.

Ευχαριστώ.

Συνιστάται: