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

AirPi - Αισθητήρας ποιότητας αέρα: 8 βήματα
AirPi - Αισθητήρας ποιότητας αέρα: 8 βήματα

Βίντεο: AirPi - Αισθητήρας ποιότητας αέρα: 8 βήματα

Βίντεο: AirPi - Αισθητήρας ποιότητας αέρα: 8 βήματα
Βίντεο: Air quality sensor on Raspberry Pi 2024, Νοέμβριος
Anonim
AirPi - Αισθητήρας ποιότητας αέρα
AirPi - Αισθητήρας ποιότητας αέρα

Έχετε αναρωτηθεί ποτέ γιατί σας προκαλεί πονοκέφαλο; Και αν αυτό οφείλεται σε κακή ποιότητα αέρα; Με αυτήν τη συσκευή μπορείτε να ελέγξετε αν αυτό συμβαίνει. Αυτή η συσκευή μετρά την τιμή CO2, την τιμή TVOC, τη θερμοκρασία και την υγρασία. Μπορείτε να δείτε την ποιότητα του αέρα ζωντανά στην οθόνη LCD και να δείτε μια σαφή ένδειξη εάν γίνεται επικίνδυνος. Με αυτόν τον τρόπο μπορείτε να ανοίξετε τα παράθυρά σας εγκαίρως.

Εάν εισαγάγετε τη διεύθυνση IP - που εμφανίζεται κατά την εκκίνηση της συσκευής στο πρόγραμμα περιήγησής σας - ο ιστότοπος θα ανοίξει. Μπορείτε να δείτε πολλές πληροφορίες σχετικά με το εσωτερικό περιβάλλον, μαζί με γραφήματα των τελευταίων λεπτών / ωρών. Υπάρχει επίσης μια ζωντανή ένδειξη και μερικές πληροφορίες και συμβουλές στο ταμπλό.

Αυτό το έργο έγινε από έναν μαθητή στο Howest Kortrijk, NMCT (New Media and Communication Technology).

Βήμα 1: Υλικά

Υλικά
Υλικά

Αυτά είναι όλα όσα αγόρασα για να δημιουργήσω αυτό το έργο. Αυτό είναι ένα σχετικά φθηνό έργο, ανάλογα με το κόστος της τρισδιάστατης εκτύπωσης. Εάν μπορείτε να το εκτυπώσετε στο σχολείο, αυτό θα μπορούσε να είναι πολύ φθηνό. Διαφορετικά, εξαρτάται από το πού το εκτυπώνετε και το υλικό που το εκτυπώνετε. Θα παρατηρήσετε ότι αγόρασα πολλά χύμα, απλώς και μόνο επειδή είναι δύσκολο να βρούμε μεμονωμένες αντιστάσεις ή leds και αυτό το κάνει ακόμα πιο φθηνό. Εάν έχετε χρόνο, μπορείτε να παραγγείλετε τα περισσότερα είδη στο aliexpress.com, η παράδοση μπορεί να διαρκέσει λίγο, αλλά με αυτόν τον τρόπο μπορείτε να περιορίσετε τα έξοδά σας.

Χωρίς την εκτύπωση, τα χρήματα που ξόδεψα για αυτό το έργο είναι 81, 80 €.

Αυτά είναι τα υλικά που χρειάζεστε:

Κύκλωμα:

  • Raspberry Pi 3
  • Κάρτα SD 8 GB (ελάχιστο)
  • Αισθητήρας ποιότητας αέρα CCS811
  • Αισθητήρας θερμοκρασίας και υγρασίας DHT22
  • Ποτενσιόμετρο (LCD αντίθεσης)
  • LCD 16x2
  • Καλώδια από jumper έως θηλυκά jumper
  • Πράσινο και κόκκινο LED
  • Αντιστάσεις (2x470ohm και 1 4700ohm)

Υπόθεση:

  • Τρισδιάστατη εκτύπωση
  • Βίδες
  • Κόλλα 2 συστατικών (ή άλλη θερμή κόλλα)
  • εργαλείο κοπής νήματος

Μόνο εάν χρησιμοποιείτε PCB:

  • Συγκολλητικό σίδερο
  • Ροή (το διευκολύνει)
  • Κασσίτερος
  • Πειραματιστείτε pcb 2x4cm

Βήμα 2: Συνδέσεις

Συνδέσεις
Συνδέσεις

Συνδέστε τα καλώδια όπως παραπάνω. Μπορείτε να δείτε ένα ηλεκτρικό κύκλωμα στο αρχείο ψύξης. Δεν είναι ένα πολύ περίπλοκο κύκλωμα, αλλά αν θέλετε να το κάνετε όσο το δυνατόν μικρότερο, σίγουρα θέλετε να πάρετε ένα πείραμα PCB Board. Η καλωδίωση θα είναι η ίδια, εκτός από το GND και το Vin που θα συνδεθούν στην πλακέτα PCB. Οι αισθητήρες θα συνδέονται με θηλυκά καλώδια ή αρσενικά με συγκόλληση. Μην ξεχάσετε να κολλήσετε την αντίσταση στον αισθητήρα DHT22.

Σας συνιστώ επίσης να χρησιμοποιείτε μικρά καλώδια, 10 εκατοστά πρέπει. Διαφορετικά, το κουτί θα γεμίσει ακόμα περισσότερο με καλώδιο. Δεν χρειάζεστε πολύ μακριά αφού το μέγεθος της εκτύπωσης είναι όσο το δυνατόν μικρότερο.

Βήμα 3: Εκτύπωση 3D

Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση
Τρισδιάστατη εκτύπωση

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

Σχεδιάσαμε ακόμη και κάθε στοιχείο για να ελέγξουμε αν όλα ταιριάζουν. Το αρχείο είναι διαθέσιμο για όλους και θα θέλαμε να ακούσουμε κάποια σχόλια. Μείναμε πολύ ευχαριστημένοι με το αποτέλεσμα.

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

Ο κώδικας για αυτό το έργο βρίσκεται στο Github. Εάν έχετε χρησιμοποιήσει άλλες καρφίτσες (για παράδειγμα άλλη καρφίτσα GPIO για LED, θα πρέπει να προσαρμόσετε αυτές τις μεταβλητές. Θα υπάρχουν δύο σενάρια python, web.py για τον ιστότοπο και sensor.py για να διαβάσετε τους αισθητήρες και να ενημερώσετε Θα εισαγάγουμε την κλάση LCD από το lcd.py.

Με ένα διαμορφωμένο βατόμουρο pi μπορείτε να ξεκινήσετε. Πρώτα απ 'όλα θα πρέπει να ενημερώσετε και να αναβαθμίσετε όλα τα πακέτα:

sudo apt-get ενημέρωση && sudo apt-get αναβάθμιση

Στη συνέχεια, θα χρειαστεί να εγκαταστήσετε τα ακόλουθα πακέτα:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Τώρα δημιουργήστε ένα εικονικό περιβάλλον:

me@my -rpi: install $ python3 -m pip install -upgrade pip setuptools wheel virtualenv

me@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi:/project1 $ python3 -m venv --system-site-packages env me@my-rpi: ~/project1 $ source env/bin/ ενεργοποίηση (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Αφού γίνει αυτό, μπορείτε να κλωνοποιήσετε τον κώδικα από το GitHub στο εικονικό σας περιβάλλον. Αυτό μπορεί να γίνει με πολλούς τρόπους.

Στο conf του καταλόγου μπορείτε να βρείτε τέσσερα αρχεία που θα πρέπει να προσαρμόσετε εάν είναι απαραίτητο. Σίγουρα θα πρέπει να αλλάξετε τον χρήστη και τον κατάλογο καταλόγου σε κάθε αρχείο. Το uWSGI ini θα πρέπει να είναι εντάξει εφόσον δεν αλλάξατε τον κωδικό μου, φροντίστε να αλλάξετε το χρήστη και το virtualenv εάν είναι απαραίτητο.

Δεδομένου ότι ο αισθητήρας CCS811 χρησιμοποιήθηκε σκόπιμα για το arduino, αυτός δεν μπορεί να επικοινωνήσει μέσω του διαύλου i2c με την ταχύτητα του raspberry pi. Θα πρέπει να μειώσετε την ταχύτητα σε baudrate 10000 (χρησιμοποίησα 9600) στο αρχείο ρυθμίσεων.

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

Επειδή θέλουμε τα σενάρια python να εκτελούνται αυτόματα όταν είναι συνδεδεμένο το βατόμουρο, θα πρέπει να χρησιμοποιήσετε τις υπηρεσίες. Θα πρέπει να είναι εντάξει αν κρατήσατε τον κωδικό μου. Το μόνο που χρειάζεται να κάνετε για να τρέξουν είναι να τα ενεργοποιήσετε. Πριν το κάνετε αυτό, υπάρχει κάτι τελευταίο.

Δεδομένου ότι χρησιμοποιούμε έναν διακομιστή ιστού nginx, θα πρέπει να απενεργοποιήσουμε την προεπιλογή και να την αντικαταστήσουμε με τη δική μας διαμόρφωση. Για να γίνει αυτό, πρέπει να ακολουθηθούν αυτά τα βήματα:

  • αντιγραφή conf/nginx σε *sites-available *
  • Καταργήστε τον σύνδεσμο για την προεπιλεγμένη ρύθμιση παραμέτρων
  • Προσθέστε έναν σύνδεσμο στη νέα διαμόρφωση
  • Επανεκκινήστε το nginx για να αποθηκεύσετε τις αλλαγές

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi:/project1 $ sudo systemctl start project1-* me@my-rpi:/project1 $ sudo systemctl status project1-*

Το Nginx και το mysql πρέπει να εκτελούνται ανά πάσα στιγμή. Ξεκινούν μαζί με το βατόμουρο πι. Το σενάριο ιστού και το σενάριο αισθητήρα όχι μόνο ακόμα.

Για να γίνει αυτό, πρέπει ακόμα να ενεργοποιήσετε αυτές τις δύο υπηρεσίες με αυτές τις εντολές:

sudo systemctl ενεργοποίηση project1-flask.service

sudo systemctl ενεργοποίηση project1-sensor.service

Βήμα 5: Βάση δεδομένων

Βάση δεδομένων
Βάση δεδομένων

Η βάση δεδομένων μου αποτελείται από τρεις πίνακες. Ο χρήστης δεν έχει καμία σχέση με άλλους πίνακες. Αυτό χρησιμοποιείται μόνο για να συνδεθείτε και να παραχωρήσετε πρόσβαση στον ιστότοπο. Όταν η συσκευή είναι ενεργοποιημένη, η τιμή CO2 και η τιμή TVOC γράφονται στη βάση δεδομένων κάθε 50 δευτερόλεπτα. Η θερμοκρασία και η υγρασία κάθε 5 λεπτά. Με αυτόν τον τρόπο έχουμε μια σαφή εικόνα του παρελθόντος.

Μπορείτε να βρείτε το αρχείο SQL εδώ, αλλά για να λάβετε τη βάση δεδομένων για το raspberry pi, πρέπει να ακολουθήσετε αυτά τα βήματα:

Μετά την εγκατάσταση των πακέτων στο προηγούμενο βήμα, το mariadb/mysql θα πρέπει να εκτελείται αμέσως. Μπορείτε να το ελέγξετε με αυτήν τη γραμμή:

me@my-rpi: status $ sudo systemctl κατάσταση mysql

Για να δημιουργήσετε τη βάση δεδομένων και τους χρήστες, μπορείτε απλά να εκτελέσετε τα σενάρια sql στον κώδικα από το GitHub. Εάν το κάνατε σωστά, θα πρέπει να δείτε τους πίνακες χρησιμοποιώντας αυτήν την εντολή:

me@my-rpi: ~ $ echo 'show tables;' | mysql project1 -t -u project1 -admin -p

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

Βήμα 6: Συνδεθείτε σε Wi-Fi

Ανοίξτε το αρχείο ρυθμίσεων wpa-supplicant στο nano (δεν έχει σημασία, βεβαιωθείτε ότι μπορείτε να εργαστείτε με τον επεξεργαστή κειμένου).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Μεταβείτε στο κάτω μέρος του αρχείου και προσθέστε τα ακόλουθα (αντικαταστήστε το όνομα ssid και τον κωδικό πρόσβασης με το δικό σας):

δίκτυο = {

ssid = "ssid-name" psk = "password-name"}

Για να δημιουργήσετε έναν κρυπτογραφημένο κωδικό πρόσβασης, μπορείτε να χρησιμοποιήσετε το wpa_passphrase και απλώς να το αντιγράψετε στο wpa_supplicant.conf psk για να κάνετε τα πράγματα πιο ασφαλή.

wpa_passphrase "ssid-name" "password-name"

Εάν θέλετε να συνδεθεί αυτόματα σε αυτό το δίκτυο Wi-Fi και υπάρχουν άλλα στο αρχείο ρυθμίσεων, βεβαιωθείτε ότι έχετε αλλάξει την προτεραιότητα σε υψηλότερο επίπεδο προσθέτοντας αυτήν τη γραμμή στο δίκτυο στο αρχείο διαμόρφωσης:

προτεραιότητα = 2

Μην ξεχάσετε να διαμορφώσετε ξανά τη διεπαφή με:

wpa_cli -i wlan0 αναδιαμόρφωση

Τώρα είστε έτοιμοι και συνδεδεμένοι σε δίκτυο wifi.

Βήμα 7: Συνδυάζοντας τα πάντα μαζί

Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί

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

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

Το τρίτο βήμα είναι να βιδώσετε το pi στο κάτω μέρος. Θα χρειαστείτε 4 βίδες μήκους 7 mm με διάμετρο 3 mm. Μετά από αυτό, μπορείτε να σπρώξετε την πλακέτα PCD στην προβλεπόμενη θέση στο πάνω μέρος του κάτω μέρους. Ο αισθητήρας CCS811 μπορεί να τοποθετηθεί στην παρεχόμενη θέση στην αριστερή πλευρά και ο DHT11 μπορεί να συνδεθεί στη δεξιά πλάκα. Και οι δύο είναι απομονωμένοι και αερίζονται επαρκώς, αλλά στη συνέχεια παρατηρήσαμε ότι εξακολουθούσε να ζεσταίνεται μέσα. Περισσότερα για αυτό αργότερα.

Στη συνέχεια, πρέπει να συνδέσετε τα LED στο σωλήνα τους. Το κάναμε με κόλλα 2 συστατικών, αλλά μπορείτε να το κάνετε όπως θέλετε. Βεβαιωθείτε ότι έχουν κολλήσει εκεί.

Τώρα μπορείτε να συνδέσετε την οθόνη LCD, θα χρειαστείτε βίδες με την ίδια διάμετρο με τις προηγούμενες, αλλά λίγο περισσότερο. Τα δικά μου ήταν 1 εκατοστό. Εάν οι τέσσερις βίδες έχουν βιδωθεί, μένει μόνο ένα πράγμα που πρέπει να κάνετε. Συνδέστε το επάνω μέρος. Το μόνο που χρειάζεστε είναι τέσσερις βίδες, με την ίδια διάμετρο και αυτές είναι 2εκ. Τώρα όλα πρέπει να είναι στη θέση τους και μπορείτε να τα ξεκινήσετε.

Βήμα 8: Ξεκινήστε το

Η διαδικασία εκκίνησης αυτού του έργου είναι πολύ εύκολη:

  1. Συνδέστε το καλώδιο τροφοδοσίας στην αριστερή πλευρά της θήκης. Δεν είναι πολύ ορατό, αλλά μπορείτε να δείτε μέσα από τους αεραγωγούς. Εάν το πήρατε μία φορά, αυτό δεν θα είναι ξανά πρόβλημα.
  2. Δώστε λίγο χρόνο για να ξεκινήσετε.
  3. Η διεύθυνση IP θα εμφανιστεί στην οθόνη για δέκα δευτερόλεπτα. Το μόνο που πρέπει να κάνετε είναι να βεβαιωθείτε ότι είστε συνδεδεμένοι στο ίδιο δίκτυο και να εισαγάγετε τη διεύθυνση IP στη γραμμή διευθύνσεων του προγράμματος περιήγησής σας.
  4. Βρίσκεστε τώρα στον ιστότοπο. Δεν έχετε ακόμη λογαριασμό, οπότε δημιουργήστε λογαριασμό.
  5. Εάν είστε εγγεγραμμένος, συνδεθείτε.
  6. Εγινε! Μπορείτε να δείτε όλα τα δεδομένα στην ιστοσελίδα και η οθόνη LCD δείχνει την τρέχουσα ποιότητα αέρα.

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

Συνιστάται: