Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ρύθμιση του RPi σας
- Βήμα 2: MCP3008 + TMP36
- Βήμα 3: Βάση δεδομένων
- Βήμα 4: HNT11, για τα πραγματικά αγόρια
- Βήμα 5: Αισθητήρες αερίου (μόνο για τους θρύλους)
- Βήμα 6: Το Shiftregister, 74HC595AG
- Βήμα 7: Frontend, ένα πολύτιμο μάθημα
- Βήμα 8: Το πίσω μέρος
- Βήμα 9: Δημιουργία θήκης
- Βήμα 10: Αξιολόγηση και συμπέρασμα
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Γεια σας, είμαι φοιτητής από το Βέλγιο και αυτό είναι το πρώτο μου μεγάλο έργο για το πτυχίο μου! Αυτό το Instructable αφορά τον τρόπο κατασκευής μετρητή airpolution για κλειστούς χώρους, ειδικά αίθουσες διδασκαλίας!
Σας ακούω να σκέφτεστε γιατί αυτό το έργο; Λοιπόν, όλα ξεκίνησαν όταν πήγα στο λύκειο. Το απόγευμα μετά από ένα καλό γεύμα και ένα διάλειμμα, τα μαθήματα ξεκινούν ξανά. Υπάρχει όμως ένα πρόβλημα, ο δάσκαλος ξέχασε να ανοίξει το παράθυρο ενώ είχαμε μεσημεριανό, οπότε είναι ζεστό, ιδρωμένο και δεν μπορείτε να συγκεντρωθείτε γιατί κοιμάστε. Αυτό συμβαίνει επειδή υπάρχει πολύ CO2 στον αέρα.
Το πρόγραμμά μου θα το λύσει αυτό και θα κάνει τους μαθητές πιο συγκεντρωμένους κατά τη διάρκεια των μαθημάτων τους.
Προμήθειες
1 xRaspberry Pi 4 (55 €)
1 x steppenmotor με οδηγό (5 €)
2 μπαταρίες 12v 6800 mAh (2x 20 €)
2 x ενότητα αναβάθμισης (2x 5 €)
1 x 16x2 LCD (1,5 €)
Αισθητήρες: 1x MQ8, 1x MQ4, 1x MQ7, 1x MQ135, 1x HNT11, 1x TMP36 (1 x 23 €)
IC: 1x MCP3008, 2x 74hc595AG (1x 2,30 €, 2x 0,40 €)
LED: 2x πράσινο, 2x κόκκινο, 3x κίτρινο (βρέθηκε σε κάποιο παλιό υλικό, κανονικά 0,01 € το καθένα)
Συνδετήρας για τις μπαταρίες (2 x 0,35 €)
40 καλώδια σύνδεσης f-to-f (1,80 €)
40 καλώδια σύνδεσης f-to-m (1,80 €)
Καλώδια σύνδεσης 20 m-to-m (1,80 €)
2 x PCB για συγκόλληση (2x 0,70 €)
Εργαλεία:
Συγκολλητικό σίδερο (κατά προτίμηση 60 Watt)
Κασσίτερος για συγκόλληση
Φύλλο αλουμινίου 50x20
Θήκη (χρησιμοποίησα μια παλιά θήκη μίνι υπολογιστή)
Αυτό θα μπορούσε εύκολα να είναι κάποιο MDF ή ιδέες.
Βήμα 1: Ρύθμιση του RPi σας
Η καρδιά μας λοιπόν ο εγκέφαλος και η ψυχή μας βρίσκονται σε αυτό το προϊόν. Απειλήστε το καλά, γιατί μπορεί να σας βλάψει με τον έναν ή τον άλλο τρόπο. Χρησιμοποιώ RPi 4B 4gb, άλλα μοντέλα θα πρέπει να κάνουν μια χαρά. Θα μπορούσατε να περιμένετε μεγαλύτερη καθυστέρηση σε παλαιότερα μοντέλα.
Πήραμε το λειτουργικό σύστημα από το σχολείο μας με κάποιο προεγκατεστημένο λογισμικό όπως το phpMyAdmin.
Πρώτα απ 'όλα, βεβαιωθείτε ότι μπορείτε να συνδεθείτε στο Raspberry Pi μέσω του ssh, θα το χρειαστούμε πολύ χρόνο.
Έτσι, πρώτα θα πρέπει να ενεργοποιήσουμε το δίαυλο SPI, τις καρφίτσες GPIO και να απενεργοποιήσουμε άλλα λεωφορεία, δεν θα τα χρειαζόμαστε.
Μπορείτε να το κάνετε αυτό στο μενού raspi-config. Πλοηγηθείτε στις διεπαφές και ενεργοποιήστε το GPIO και το SPI κανονικά δεν θα είναι απαραίτητο να Όσο βρίσκεστε εδώ, επεκτείνετε τον αποθηκευτικό σας χώρο σε προχωρημένους και, στη συνέχεια, πατήστε enter για επέκταση αποθηκευτικού χώρου.
Τώρα επανεκκινήστε. Θα χρειαστούμε κάποιες επεκτάσεις για να χρησιμοποιήσουμε τον κώδικα VS στο pi μας, για να τρέξουμε τον διακομιστή και τη βάση δεδομένων μας.
Μπορείτε να βρείτε τη διαδικασία εγκατάστασης για την επέκταση κώδικα VS εδώ.
Τώρα θα εγκαταστήσουμε τις επεκτάσεις για τον διακομιστή και τη βάση δεδομένων μας. Χρησιμοποιήστε το τερματικό και πληκτρολογήστε "φιάλη εγκατάστασης python, φιάλη, cors, mysql-python-connector, eventlet" περιμένετε μέχρι να ολοκληρωθεί.
Τώρα μπορούμε να ξεκινήσουμε με την κατασκευή του έργου.
Βήμα 2: MCP3008 + TMP36
Έχουμε λοιπόν 6 αισθητήρες: 4 αέριο, 1 υγρασία + θερμοκρασία και 1 αισθητήρα θερμοκρασίας. Είναι πραγματικό καθήκον να τους κάνουμε να δουλεύουν. Όλοι οι αισθητήρες είναι αναλογικοί αισθητήρες, οπότε πρέπει να μετατρέψουμε το αναλογικό σήμα σε ψηφιακό. Αυτό συμβαίνει επειδή το RPi (Rasberry Pi) μπορεί να "κατανοήσει" μόνο τα ψηφιακά σήματα. Για περισσότερες πληροφορίες κάντε κλικ εδώ.
Για να ολοκληρώσετε αυτήν την εργασία θα χρειαστείτε ένα MCP3008, αυτό θα κάνει τη δουλειά τέλεια!
Διαθέτει 16 θύρες, μετρώντας από πάνω (η μικρή φούσκα) αριστερά, κάτω, από την άλλη πλευρά και πάνω. Το Pin1-8 είναι οι είσοδοι για το αναλογικό σήμα από τους αισθητήρες μας. Ο πείρος 9 στην άλλη πλευρά είναι ένα GND, το οποίο πρέπει να συνδεθεί με το GND του πλήρους κυκλώματος, διαφορετικά αυτό δεν θα λειτουργήσει. Η ακίδα 10-13 πρέπει να συνδεθεί πιο προσεκτικά, για να μεταδώσει δεδομένα από και προς το RPi. Ο πείρος 14 είναι ένας άλλος GND και οι ακίδες 15 και 16 είναι οι VCC, αυτές πρέπει να συνδέονται με τη θετική πλευρά του κυκλώματος.
Αυτή είναι η διάταξη για την καλωδίωση th:
- MCP3008 VDD σε εξωτερικό 3.3V MCP3008 VREF σε εξωτερικό 3.3V
- MCP3008 AGND σε εξωτερικό GND
- MCP3008 DGND σε externalGND
- MCP3008 CLK έως Raspberry Pi pin 18
- MCP3008 DOUT στο Raspberry Pi pin 23
- MCP3008 DIN έως Raspberry Pi pin 24
- MCP3008 CS/SHDN to Pin Raspberry Pi 25
Αυτή είναι επίσης μια καλή στιγμή για να συνδέσετε το GND από το RPI στο εξωτερικό GND. Αυτό θα κάνει το elctricity να ρέει από το RPi.
Δείτε πώς μπορείτε να το συνδέσετε με τον σωστό τρόπο.
Βεβαιωθείτε ότι έχετε συνδέσει σωστά, διαφορετικά μπορείτε να βραχυκυκλώσετε τα πάντα!
Το πρώτο κομμάτι κώδικα μπαίνει εδώ.
Μπορείτε να αντιγράψετε τον κώδικά μου από το github του έργου μου στα μοντέλα. Analog_Digital.
Στο κάτω μέρος της σελίδας θα βρείτε τον πηγαίο κώδικα για να λειτουργήσει.
Χρειαζόμαστε όμως τον πρώτο μας αισθητήρα, ώστε να μπορούμε να δοκιμάσουμε.
Πρέπει να δοκιμάσουμε τον αισθητήρα μας εάν λειτουργεί. Συνδέστε μια τροφοδοσία ισχύος 3.3V ή 5V στη θετική πλευρά του TMP36. Μην ξεχάσετε να το συνδέσετε και με το GND, ίσως είναι κάτι ηλίθιο να συμβεί αλλά πιστέψτε με. Αυτή είναι η πραγματικότητα;). Μπορείτε να δοκιμάσετε με το πολύμετρό σας την έξοδο του αισθητήρα, αυτός είναι ο μεσαίος πείρος. Με αυτήν την απλή εξίσωση μπορείτε να ελέγξετε τη θερμοκρασία σε ° C. ((milivolts*τάση εισόδου) -500)/10 και voila donne! Αντίο! Λοιπόν όχι χαχαχ χρειαζόμαστε το MCP3008. Συνδέστε την αναλογική ακίδα για το TMP36 στην πρώτη είσοδο του MCP3008. Αυτό είναι το pin 0.
Μπορείτε να χρησιμοποιήσετε το παράδειγμα κώδικα στο κάτω μέρος για αυτήν την κλάση MCP. Something κάτι που θα βρείτε στο διαδίκτυο θα κάνει τη δουλειά μια χαρά.
Βήμα 3: Βάση δεδομένων
Έτσι τώρα εμείς που μπορούμε να διαβάσουμε στον πρώτο μας αισθητήρα πρέπει να τον καταγράψουμε σε μια βάση δεδομένων. Αυτή είναι η μνήμη του εγκεφάλου μας. Σχεδίασα αυτή τη βάση δεδομένων ώστε να είναι επεκτάσιμη και εύκολα τροποποιήσιμη για μελλοντικές αλλαγές.
Έτσι, πρώτα πρέπει να σκεφτούμε τι θα πάρουμε ως είσοδοι και αν πρέπει να καταγράψουμε συγκεκριμένα πράγματα, όπως καταστάσεις ορισμένων αντικειμένων.
Η απάντησή μου θα ήταν: εισαγωγή από 6 αισθητήρες, οπότε πρέπει να φτιάξουμε έναν πίνακα αισθητήρων, με αυτούς τους αισθητήρες θα κάνουμε τιμές. Τι συνδέεται με μια τιμή; Για μένα είναι η κατάσταση του παραθύρου, είναι ανοιχτό ή είναι κλειστό ενώ ο αισθητήρας μέτρησε την τιμή. Αλλά η τοποθεσία είναι επίσης ένας παράγοντας για την αξία μου, οπότε θα το προσθέσουμε. Η ώρα και η ημερομηνία για μια τιμή είναι επίσης σημαντικές, οπότε θα το προσθέσω.
Για μελλοντική επέκταση πρόσθεσα έναν πίνακα χρηστών.
Ποια είναι λοιπόν η ιδέα μου όσον αφορά τους πίνακες: τιμές πίνακα, διεύθυνση πίνακα (συνδεδεμένο με δωμάτιο), δωμάτιο τραπεζιού (συνδεδεμένο με τιμή), παράθυρο πίνακα (συνδεδεμένο με τιμή), αισθητήρας πίνακα (συνδεδεμένος με τιμή) και πίνακας σε άγρια κατάσταση για χρήστες.
Όσο για τη σύνδεση των πινάκων μεταξύ τους. Κάθε τιμή χρειάζεται έναν αισθητήρα, ένα παράθυρο, μια τιμή για τον αισθητήρα, ένα αναγνωριστικό για να μπορούμε να κάνουμε την τιμή μοναδική, μια χρονική σήμανση για το πότε έγινε η τιμή και ως τελευταία δεν χρειαζόμαστε ένα δωμάτιο ώστε να είναι προαιρετικό, αλλά μπορεί να είναι προστέθηκε.
Έτσι φαίνεται τώρα. Αυτό χρησιμοποιώ για το υπόλοιπο έργο μου.
Βήμα 4: HNT11, για τα πραγματικά αγόρια
Έτσι, καθώς δεν μας επιτρεπόταν να χρησιμοποιούμε κάθε είδους βιβλιοθήκες. Πρέπει να προγραμματίσουμε τα πάντα μόνοι μας.
Το HNT11 είναι ένα σύστημα ενός καλωδίου, οπότε αυτό σημαίνει ότι έχετε GND και VCC όπως οποιαδήποτε άλλη ηλεκτρονική συσκευή, αλλά ο ακροδέκτης 3 είναι ένας πείρος εισόδου και εξόδου. Είναι λοιπόν περίεργο, αλλά έμαθα πολλά από αυτό.
Συνδέστε το VCC στο εξωτερικό 3,3V και το GND στο εξωτερικό GND.
Το φύλλο δεδομένων του DHT11 περιέχει τα πάντα για να χρησιμοποιήσετε αυτούς τους αισθητήρες.
Μπορούμε να καθορίσουμε ότι ένα υψηλό bit περιέχει ένα χαμηλό και υψηλό bit. Αλλά η διάρκεια του υψηλού μέρους καθορίζει το bit για πραγματικό. Εάν το υψηλό μέρος εκπέμπεται περισσότερο από 100μs (κανονικά 127μs) το bit είναι υψηλό. Είναι λίγο μικρότερο από 100μs (φυσιολογικά περίπου 78μs) το bit είναι χαμηλό.
Όταν ενεργοποιηθεί το HNT11, θα αρχίσει να εκπέμπει σήματα. Αυτό είναι πάντα 41 bit. Ξεκινά με ένα κομμάτι έναρξης αυτό δεν σημαίνει τίποτα, ώστε να το παραλείψουμε. Τα πρώτα 16 bits/ 2bytes είναι το ακέραιο και το float μέρος για την υγρασία. Είναι το ίδιο για τα 2 τελευταία byte αλλά τώρα είναι για τη θερμοκρασία.
Επομένως, πρέπει μόνο να υπολογίσουμε τη διάρκεια κάθε bit και στη συνέχεια τελειώσαμε.
Στον πηγαίο κώδικα στο DHT11 θα βρείτε τη μέθοδό μου για την επίλυση αυτού του προβλήματος.
Βήμα 5: Αισθητήρες αερίου (μόνο για τους θρύλους)
Έτσι σκέφτηκα στην αρχή του έργου ότι θα ήταν μια μεγάλη ιδέα να χρησιμοποιήσω πολλούς αισθητήρες. Σκεφτείτε πριν δράσετε και αγοράστε τοπικά αυτό θα σας εξοικονομήσει πολλές ώρες ύπνου! Επειδή μπορείτε να ξεκινήσετε νωρίτερα και αυτό θα το κάνετε πιο πρόθυμα να το κάνετε.
Έχω λοιπόν 4 αισθητήρες αερίου. MQ135, MQ8, MQ4 και MQ7 όλοι αυτοί οι αισθητήρες έχουν συγκεκριμένα αέρια που μετρούν καλύτερα. Αλλά όλα αυτά είναι διαφορετικά στη διαμόρφωσή τους.
Έτσι, πρώτα χρησιμοποίησα το φύλλο δεδομένων, αυτό δεν με έκανε καθόλου επιθυμητό. Στη συνέχεια έψαξα για παραδείγματα κώδικα. Αυτό που βρήκα ήταν μια βιβλιοθήκη από το Adafruit. Προσπάθησα να το επαναλάβω όσο καλύτερα γίνεται. Λειτουργούσε με έναν από τους τέσσερις αισθητήρες.
Το άφησα να ξεκουραστεί για λίγο και επέστρεψα σε αυτό.
Αυτό που έκανα για να λειτουργήσει για αυτόν τον έναν αισθητήρα είναι:
- Χρησιμοποίησα το φύλλο δεδομένων για να σημειώσω σημεία του αερίου που ήθελα να μετρήσω. Έτσι 1 ro/rs έως 400ppm, 1,2 έως 600ppm…
- Στη συνέχεια, έβαλα όλα αυτά τα σημεία στο excell και έβγαλα τον τύπο για την καμπύλη. Το έχω αποθηκεύσει στη βάση δεδομένων μου.
- Από το φύλλο δεδομένων διάβασα επίσης την κανονική αντίσταση και την αντίσταση καθαρού αέρα. Αυτές οι τιμές αποθηκεύονται επίσης στη βάση δεδομένων.
Το έβαλα όλο αυτό σε κάποιον κώδικα, μπορείτε να το βρείτε ως τις τρεις τελευταίες συναρτήσεις στην κλάση MCP3008. Αλλά αυτό δεν έχει τελειώσει ακόμα, δυστυχώς δεν είχα αρκετό χρόνο.
Βήμα 6: Το Shiftregister, 74HC595AG
Αυτό λοιπόν είναι ένα IC. Και κάνει κάτι ιδιαίτερο, με αυτήν τη συσκευή είναι δυνατόν να χρησιμοποιηθούν λιγότερες έξοδοι GPIO για το ίδιο σήμα εξόδου. Το χρησιμοποίησα για την οθόνη LCD (Liquid Crystal Display) και τα led μου. Θα δείξω τη διεύθυνση IP στην οθόνη LCD, ώστε όλοι να μπορούν να σερφάρουν στον ιστότοπο.
Οι λυχνίες LED είναι σοφά 2 κόκκινες, 3 κίτρινες και 2 πράσινες. Αυτό θα δείξει ανά πάσα στιγμή την ποιότητα του αέρα στο δωμάτιο.
Το shiftregister είναι μια παράλληλη συσκευή εξόδου, οπότε δεν είναι δυνατή η έξοδος διαφορετικών σημάτων σε μια χρονική περίοδο. Αυτό θα ήταν δυνατό αν προγραμματιστεί από έξω, αλλά δεν υποστηρίζεται εγγενώς.
Πώς να χρησιμοποιήσετε το IC; Λοιπόν, έχετε 5 εισόδους και 9 εξόδους. 8 λογικές έξοδοι για τις 8 ακίδες και στη συνέχεια την 9η καρφίτσα για να στείλετε τα υπόλοιπα δεδομένα σε άλλο shiftregister.
Έτσι συνδέουμε τον ακροδέκτη 16 στο εξωτερικό VCC, ο επόμενος ακροδέκτης είναι η πρώτη έξοδος, οπότε για την οθόνη LCD θα τον χρειαστούμε. Το pin 14 είναι η γραμμή δεδομένων, εδώ θα στείλουμε δεδομένα. Ο 13ος ακροδέκτης είναι ο διακόπτης ενεργοποίησης, ένα χαμηλό σήμα ενεργοποιεί το IC, απαιτείται υψηλό σήμα για να τερματιστεί. Ο πείρος 12 είναι ο ακροδέκτης όπου μπορούμε να καθορίσουμε πότε στάλθηκε ένα κομμάτι, πότε τραβάτε αυτόν τον πείρο προς τα κάτω έτσι ώστε από ψηλά σε χαμηλά να διαβάζει την κατάσταση σήματος του πείρου 13 και να το αποθηκεύετε στη μνήμη του 8bit. Ο πείρος 11 είναι παρόμοιος όταν αυτός ο πείρος τοποθετηθεί ψηλά και στη συνέχεια χαμηλός, εξάγει τα 8 bit στη θύρα του. Και ο τελευταίος πείρος, ο πείρος 10 είναι η κύρια επαναφορά, αυτός ο πείρος πρέπει να παραμείνει υψηλός ή δεν θα λειτουργήσει. Η τελευταία σύνδεση είναι ο ακροδέκτης GND 8 που χρειαζόμαστε για να τον συνδέσουμε με το εξωτερικό GND.
Έτσι, τώρα συνδέστε τις καρφίτσες όπως θα σας αρέσει με το raspberry pi. Ο τρόπος που το έκανα ήταν να τα συνδέσω όσο το δυνατόν πιο κοντά μεταξύ τους για να βεβαιωθώ ότι ήξερα πού βρίσκονται.
Όταν έχετε μια σωστή έξοδο. Μπορείτε να το κολλήσετε σε ένα PCB με LED. και αντιστάσεις 220 Ohm. Συγκολλήστε την έξοδο του IC στο αντίστοιχο led. Θα πρέπει τώρα να έχετε κάτι τέτοιο.
Μπορείτε να βρείτε τον κωδικό δοκιμής μου εδώ στο Shiftregister. Όταν εργάζεστε με ένα 74HC595N δεν θα χρειαστείτε το MR για να το αφήσετε χωρίς σύνδεση.
Η οθόνη LCD είναι σχεδόν η ίδια. Είναι αρκετά εύκολο να το χρησιμοποιήσετε με το shiftregister επειδή η είσοδος για την οθόνη LCD είναι ακριβώς η είσοδος για το shiftregister.
Για την οθόνη LCD υπάρχει κάποιος άλλος κώδικας για να λειτουργήσει, αλλά είναι αρκετά ο ίδιος με τον μετατροπέα αλλαγής ταχυτήτων. Μπορείτε να βρείτε τον κωδικό δοκιμής εδώ στην οθόνη LCD.
Βήμα 7: Frontend, ένα πολύτιμο μάθημα
Έτσι, εδώ θα περιπλανηθώ, αυτό είναι ένα τμήμα του πώς πρέπει να το κάνετε. Αυτό είναι κάτι πολύ πολύτιμο που έμαθε.
Κάντε το frontend πριν το backend !!!!
Το έκανα αντίστροφα. Έκανα άχρηστες κλήσεις για τη βάση δεδομένων μου, αφιερώνω πολύ χρόνο σε αυτό.
Στη σελίδα προορισμού χρειαζόμουν την τρέχουσα θερμοκρασία και υγρασία και τις τιμές όλων των αισθητήρων αερίου σε ένα ωραίο διάγραμμα. Πρέπει επίσης να δείξω τη διεύθυνση IP του RPi.
Στη σελίδα των αισθητήρων χρειάζομαι την επιλογή ενός αισθητήρα και τον χρόνο επιλογής. Επέλεξα για την επιλογή μιας ημέρας και μετά την περίοδο από εκείνη την ημέρα. Αυτό μου το έκανε πολύ πιο εύκολο γιατί, μπορούσα να το ελέγξω περισσότερο.
Στην τελική σελίδα, στη σελίδα ρυθμίσεων είναι δυνατή η διαχείριση ορισμένων τιμών, όπως υγιή επικίνδυνα ή επικίνδυνα επίπεδα αερίου και θερμοκρασίας. Θα μπορούσατε επίσης να κάνετε επανεκκίνηση του RPi εάν αισθάνεστε την ανάγκη να το κάνετε.
Έτσι, πρώτα έφτιαξα ένα σχέδιο, ώστε να μπορώ εύκολα να ξεκινήσω να δουλεύω στο κομμάτι της κωδικοποίησης. Σταδιακά προχώρησα ένα πράγμα τη φορά. Η ανάθεση ήταν πρώτα κινητή, οπότε θα εστιάσω πρώτα σε αυτό. Στη συνέχεια, θα πάρω το δρόμο για τις μεγαλύτερες οθόνες.
Μπορείτε να βρείτε τις σελίδες, τα css και τα js στο Github μου.
Βήμα 8: Το πίσω μέρος
Αυτό το μέρος είναι το μέρος που ανακάτεψα με το frontend. Όταν έφτιαξα κάτι για το frontend το έκανα να δουλέψει στο backend. Επομένως, δεν θα χρειαστεί αναθεώρηση αργότερα. Αυτό ήταν κάτι που δεν έκανα στην αρχή και εξαιτίας αυτού έχασα σίγουρα 2 εβδομάδες χρόνου. Ηλίθιο με! Αλλά ένα μάθημα που παίρνω με χαρά σε άλλα έργα.
Έτσι, όταν φτιάχνετε backend, φτιάξτε κάτι που θα χρησιμοποιήσετε. Αλλά κάντε το μελλοντική απόδειξη κάνοντάς το επαναχρησιμοποιήσιμο και όχι σκληρά κωδικοποιημένο. Όταν χρειάζομαι τις τελευταίες 50 τιμές του DHT11, θα ελέγξω αν γίνονται τιμές; Ναι, πώς τα βάζω στη βάση δεδομένων. Πώς μπορώ να τα βγάλω από τη βάση δεδομένων. Πώς να το δείξω; Διάγραμμα, γράφημα ή απλά δεδομένα; Στη συνέχεια, κάνω μια νέα διαδρομή με τις διαφορετικές παραμέτρους και ιδιότητες, όπως ημερομηνίες, συγκεκριμένα ονόματα αισθητήρων ή αυτό που θα καλέσω. Δηλαδή καλώ όλες τις τιμές από τους αισθητήρες MQ ή καλώ όλους τους αισθητήρες με MQ στο όνομά του. Στη συνέχεια έβαλα κάποιο χειρισμό σφαλμάτων. Όταν το αίτημα από την κλήση είναι η σωστή μέθοδος μόνο τότε μπορεί να προχωρήσει αλλιώς παίρνει ένα ωραίο σφάλμα.
Επίσης εδώ είναι τα νήματα που βρίσκονται, αυτά είναι κομμάτια λογισμικού που σας επιτρέπουν να εκτελείτε παράλληλο κώδικα. Θα μπορούσατε να εκτελέσετε κλήσεις ιστότοπων, τη λειτουργία δημιουργίας αξίας και το led+shiftregister. Αυτές οι λειτουργίες εκτελούνται εντελώς ανεξάρτητα η μία από την άλλη.
Για τα led λοιπόν. Έκανα μια κατώτατη/ υγιή τιμή για το CO2. Αυτή η αξία προήλθε από πολλές κυβερνητικές πηγές. Η υγιής τιμή για τις αίθουσες διδασκαλίας είναι κάτω από 600 ppm CO2 ανά κυβικό μέτρο. Η ανθυγιεινή αξία είναι τα πάντα πάνω από 2000 ppm. Έτσι τα LED κάνουν τη γέφυρα. Εάν η τιμή του αισθητήρα MQ4 είναι 1400, υπολογίζεται αυτόματα σε ποιο επίπεδο κινδύνου βρίσκεται. 2000 - 600 = 1400 οπότε το συνολικό εύρος είναι 1400 /7 = 200. Έτσι όταν η τιμή φτάσει τα 550 εμφανίζει ένα πράσινο led. 750 δείχνει 2 πράσινα led, 950 1 κίτρινα 2 πράσινα led. Και ούτω καθεξής.
Όταν η τιμή υπερβεί τη μέση, ανοίγει το παράθυρο. Χρησιμοποίησα ένα steppenmotor λόγω της υψηλής ροπής και της ακρίβειας. Και όταν η τιμή υπερβεί το 2000, χτυπάει ένας μικρός συναγερμός. Αυτό είναι για να συναγερθεί ο κόσμος μέσα στο δωμάτιο.
Μπορούμε επίσης να ανιχνεύσουμε αέρια καπνού έτσι ώστε όταν υπάρχει φωτιά. Καταχωρεί επίσης αυτό. Όταν ξεπεράσει μια συγκεκριμένη τιμή, ο συναγερμός ενεργοποιείται και το LED αναβοσβήνει.
Η οθόνη LCD είναι κυρίως εκεί για να δείξει τη διεύθυνση IP, ώστε να μπορείτε να σερφάρετε στον ιστότοπο.
Μπορείτε να βρείτε τα πάντα + κώδικα μέσα στο Githubin μου app.py
Βήμα 9: Δημιουργία θήκης
Βρήκα μια μικρή θήκη υπολογιστή για όλα τα εξαρτήματά μου.
Έκοψα ένα φύλλο αλουμινίου στο μέγεθος. Και τρύπησα μερικές τρύπες όπου θα στηριζόταν το φύλλο. Αυτό αντιστοιχεί στις οπές της μητρικής πλακέτας.
Μετά κοίταξα πώς θα ταίριαζαν όλα μέσα στη θήκη. Άφησα τα πάντα και άρχισα να κινούμαι.
Όταν ήμουν ικανοποιημένος με το πώς θα λειτουργούσε, άρχισα να σημειώνω τις τρύπες που χρειάζομαι για τους αισθητήρες, το RPi, το PCB, τις μονάδες ισχύος και την ενότητα κινητήρα. Οι τρύπες είναι για την αναμονή του PCB, αυτό θα κάνει λίγο χώρο έτσι ώστε τα μεταλλικά μέρη να μην έρχονται σε επαφή με το φύλλο αλουμινίου. Επίσης του δίνει ωραία εμφάνιση.
Πήρα από κάθε IC ή άλλη συσκευή τις καμπίνες και τις έδεσα μεταξύ τους. Αυτό συμβαίνει γιατί μπορούσα να δω τι καλώδια είναι για τι. Τοποθέτησα το καθένα όμορφα σε ορισμένες στάσεις και χρησιμοποίησα μερικά παξιμάδια και βίδες για να κρατήσω τα πάντα όμορφα στη θέση τους.
Για να το τροφοδοτήσω όλο αυτό χρησιμοποίησα 2 μπαταρίες. Αυτά παρέχουν πολλή ισχύ, αλλά αυτές είναι ακόμα μπαταρίες, οπότε αυτές θα εξαντληθούν με τον καιρό. Τα τοποθέτησα με λίγο velcro. Χρησιμοποίησα velcro γιατί τότε μπορούσα εύκολα να αντικαταστήσω ή να ξεφορτωθώ τις μπαταρίες.
Τα steppenmotor, LCD και LED θα βγουν από την κορυφή της θήκης. Έτσι, έβαλα προσεκτικά το κάλυμμα της θήκης από πάνω και σημάδεψα τις τρύπες και τις τρύπησα με ένα τρυπάνι. Έτσι μπορούμε εύκολα να δούμε τα πάντα.
Καθώς η υπόθεση έχει τελειώσει πρέπει να συνδέσουμε τα πάντα, εδώ μπορείτε να βρείτε το σχέδιο καλωδίωσης.
Βήμα 10: Αξιολόγηση και συμπέρασμα
Αυτό λοιπόν είναι/ήταν το πρώτο μου έργο.
Φαίνεται εντάξει υποθέτω.
Έμαθα πολλά νέα πράγματα, έμαθα τη μεγάλη και την κακή πλευρά της διαχείρισης έργου. Reallyταν πραγματικά ένα πολύτιμο μάθημα. Έγειρα ότι δεν μπορείτε να περιμένετε, πρέπει πραγματικά να συνεχίσετε να δίνετε. Πρέπει να τεκμηριώνετε κάθε κίνηση (σχεδόν πολύ κίνηση) και ότι πρέπει να το κάνετε όταν το κάνατε μόλις.
Επικεντρωθείτε σε 1 πράγμα τη φορά. Θέλετε τη θερμοκρασία στην οθόνη σας; Κάνε αυτό, αυτό και αυτό. Μην περιμένετε ή προσπαθήστε να το αφήσετε να περάσει. Δεν θα βοηθήσει. Και θα σας χάσει τόσο πολύτιμο χρόνο.
Επίσης 4 εβδομάδες φαίνονται πολύς χρόνος. Αλλά λιγότερο ισχύει. Αυτό απλά δεν είναι σωστό. Έχετε μόνο 4 εβδομάδες. Οι πρώτες 2 εβδομάδες δεν είναι τόσο μεγάλη πίεση. 3 εβδομάδες που τελειώνουν και η 4η εβδομάδα χωρίς ύπνο. Έτσι δεν πρέπει να το κάνεις.
Maybeμουν ίσως λίγο φιλόδοξος: Έχω μια πολύ μικρή θήκη, δεν είναι εύκολο στη χρήση αισθητήρες, μπαταρίες … Κάντε το πιο απλό και στη συνέχεια το κάνετε σταδιακά πιο δύσκολο και δύσκολο, μόνο τότε θα έχετε ένα καλό πρωτότυπο/ προϊόν.
Συνιστάται:
MQ7-ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΡΥΠΑΝΣΗΣ ΧΡΗΣΙΜΟΠΟΙΗΣΤΕ ΤΟ ΠΡΑΓΜΑ ΜΙΛΗΣΕΤΕ ΚΑΙ NODEMCU: 4 βήματα
MQ7-ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΡΥΘΜΙΣΗΣ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΧΡΗΣΗ ΠΡΑΓΜΑΤΟΣ ΚΑΙ ΝΟΔΕΜΚΟΥ: Η ρύπανση είναι το σημαντικότερο πρόβλημα του σημερινού μας κόσμου. Αλλά πώς μπορούμε να παρακολουθούμε τη ρύπανσή μας από κοντά, τώρα είναι πολύ εύκολο ΛΟΙΠΟΝ ΑΡΧΙΖΟΥΜΕ:
Χάρτης ρύπανσης αέρα της CEL (τροποποιημένο): 7 βήματα
Χάρτης ρύπανσης του αέρα της CEL (Τροποποιημένο): Η ατμοσφαιρική ρύπανση είναι ένα παγκόσμιο ζήτημα στη σημερινή κοινωνία, είναι η αιτία για πολλές ασθένειες και προκαλεί δυσφορία. Αυτός είναι ο λόγος για τον οποίο προσπαθήσαμε να δημιουργήσουμε ένα σύστημα που θα μπορούσε να παρακολουθεί τόσο τη θέση του GPS σας όσο και την ατμοσφαιρική ρύπανση σε αυτό ακριβώς το σημείο, για να
Ανίχνευση ρύπανσης αέρα + φιλτράρισμα αέρα: 4 βήματα
Ανίχνευση ρύπανσης αέρα + φιλτράρισμα αέρα: Οι μαθητές (Aristobulus Lam, Victor Sim, Nathan Rosenzweig και Declan Loges) του German Swiss International School συνεργάστηκαν με το προσωπικό της MakerBay για να δημιουργήσουν ένα ολοκληρωμένο σύστημα μέτρησης ατμοσφαιρικής ρύπανσης και αποτελεσματικότητας φιλτραρίσματος αέρα. Αυτό
Έλεγχος φωτεινότητας Έλεγχος LED βασισμένος σε PWM χρησιμοποιώντας κουμπιά, Raspberry Pi και Scratch: 8 βήματα (με εικόνες)
Έλεγχος φωτεινότητας PWM Βασισμένος έλεγχος LED χρησιμοποιώντας κουμπιά, Raspberry Pi και Scratch: Προσπαθούσα να βρω έναν τρόπο να εξηγήσω πώς λειτουργούσε το PWM στους μαθητές μου, οπότε έθεσα τον εαυτό μου στην προσπάθεια να ελέγξω τη φωτεινότητα ενός LED χρησιμοποιώντας 2 κουμπιά - το ένα κουμπί αυξάνει τη φωτεινότητα ενός LED και το άλλο το μειώνει. Για να προχωρήσει
ESP8266 RGB LED STRIP WIFI Έλεγχος - NODEMCU Ως τηλεχειριστήριο IR για Led Strip που ελέγχεται μέσω Wifi - Έλεγχος Smartphone RGB LED STRIP: 4 βήματα
ESP8266 RGB LED STRIP WIFI Έλεγχος | NODEMCU Ως τηλεχειριστήριο IR για Led Strip που ελέγχεται μέσω Wifi | RGB LED STRIP Smartphone Control: Γεια σας παιδιά σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε το nodemcu ή το esp8266 ως τηλεχειριστήριο IR για τον έλεγχο μιας λωρίδας LED RGB και το Nodemcu θα ελέγχεται από smartphone μέσω wifi. Έτσι, βασικά μπορείτε να ελέγξετε το RGB LED STRIP με το smartphone σας